47 return ( stream << mark.
time()<<
": 0x" << hex << mark.
mark_type() << dec );
99 if (first_ge !=
marks_.begin()) {
108 marks_.insert(first_ge, mark);
116 for (
unsigned int i = 0; i<=n_steps;i++) {
117 auto mark =
TimeMark(time+i*dt, type);
135 while ( ! tg.
step().
lt(first_ge->time()) || ! first_ge->match_mask(mask) ) {
146 while ( ! tg.
step().
ge(first_ge->time()) || ! first_ge->match_mask(mask) ) {
179 stream <<
"time marks:" << endl;
181 stream << *
it << endl;
void add_time_marks(double time, double dt, double end_time, TimeMark::Type type)
Type mark_type() const
Getter for mark type.
TimeMarks::iterator next(const TimeGovernor &tg, const TimeMark::Type &mask) const
Iterator over TimeMark objects in TimeMarks object (database of TimeMark objects).
TimeMarks::iterator begin(TimeMark::Type mask=TimeMark::every_type) const
Iterator for the begin mimics container-like of TimeMarks.
bool lt(double other_time) const
bool is_end() const
Returns true if the actual time is greater than or equal to the end time.
ostream & operator<<(ostream &stream, const TimeMark &mark)
TimeMark::Type type_input_
Predefined type for change of boundary condition.
const TimeStep & step(int index=-1) const
Basic time management functionality for unsteady (and steady) solvers (class Equation).
static const Type none_type
Mark Type with all bits unset.
Basic time management class.
static const Type every_type
Mark Type with all bits set.
void add(const TimeMark &mark)
Global macros to enhance readability and debugging, general constants.
bool is_current(const TimeGovernor &tg, const TimeMark::Type &mask) const
std::vector< TimeMark > marks_
TimeMarks list sorted according to the their time.
bool ge(double other_time) const
static const double time_step_precision
TimeMark::Type new_mark_type()
This class is a collection of time marks to manage various events occurring during simulation time...
TimeMark::Type next_mark_type_
MarkType that will be used at next new_time_mark() call.
double time() const
Getter for the time of the TimeMark.
Class used for marking specified times at which some events occur.
TimeMarks::iterator end(TimeMark::Type mask=TimeMark::every_type) const
Iterator for the end mimics container-like of TimeMarks.
TimeMark::Type type_fixed_time_
Predefined type for fixed time.
static const double inf_time
Infinity time used for steady case.
TimeMark::Type type_output_
Predefined type for output.
TimeMarks::iterator last(const TimeGovernor &tg, const TimeMark::Type &mask) const