Flow123d
release_2.2.0-21-g2806cf6
|
Representation of one time step.. More...
#include <time_governor.hh>
Public Member Functions | |
TimeStep (double init_time) | |
TimeStep () | |
TimeStep (const TimeStep &other) | |
TimeStep | make_next (double new_length) const |
TimeStep | make_next (double new_lenght, double end_time) const |
unsigned int | index () const |
double | length () const |
double | end () const |
bool | gt (double other_time) const |
bool | ge (double other_time) const |
bool | lt (double other_time) const |
bool | le (double other_time) const |
bool | eq (double other_time) const |
bool | contains (double other_time) const |
bool | operator== (const TimeStep &other) |
Private Member Functions | |
bool | safe_compare (double t1, double t0) const |
Private Attributes | |
unsigned int | index_ |
Index of the step is index if the end time. Zero time step is artificial. More... | |
double | length_ |
double | end_ |
End time point of the time step. More... | |
Representation of one time step..
Time step consists of the time step length()
and from time step () time. More over we store the index of the time step within it time governor.
The reason to store both the end time and the length of the time step is to allow safe comparisons of the time with safety margin small relative to the time step length.
Definition at line 54 of file time_governor.hh.
TimeStep::TimeStep | ( | double | init_time | ) |
Constructor of the zero time step.
Definition at line 68 of file time_governor.cc.
TimeStep::TimeStep | ( | ) |
Default constructor. Creates undefined time step.
Definition at line 76 of file time_governor.cc.
TimeStep::TimeStep | ( | const TimeStep & | other | ) |
Copy constructor.
Definition at line 85 of file time_governor.cc.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Performs rounding safe comparison time > other_time, i.e. time is strictly greater than given parameter other_time with precision relative to the magnitude of the numbers time step. TODO: introduce type TimeDouble with overloaded comparison operators, use it consistently in TimeMarks.
Performs rounding safe comparison time >= other_time See
Performs rounding safe comparison time < other_time. See
Performs rounding safe comparison time <= other_time. See
Performs rounding safe comparison time (step) == other_time. See
Definition at line 98 of file time_governor.hh.
|
inline |
Getters.
Definition at line 90 of file time_governor.hh.
|
inline |
Definition at line 116 of file time_governor.hh.
|
inline |
|
inline |
TimeStep TimeStep::make_next | ( | double | new_length | ) | const |
Create subsequent time step.
Definition at line 93 of file time_governor.cc.
TimeStep TimeStep::make_next | ( | double | new_lenght, |
double | end_time | ||
) | const |
Create subsequent time step, with the explicitly specified. This allow slight discrepancy to overcome rounding errors in the case of fixed time step. Otherwise using small fixed time step, we may miss long term fixed goal time.
Definition at line 100 of file time_governor.cc.
|
inline |
Returns true if two time steps are exactly the same.
Definition at line 131 of file time_governor.hh.
|
private |
Definition at line 111 of file time_governor.cc.
|
private |
End time point of the time step.
Definition at line 149 of file time_governor.hh.
|
private |
Index of the step is index if the end time. Zero time step is artificial.
Definition at line 144 of file time_governor.hh.
|
private |
Length of the time step. Theoretically end
minus end of the previous time step. However may be slightly different due to rounding errors.
Definition at line 147 of file time_governor.hh.