Flow123d  jenkins-Flow123d-linux-release-multijob-282
Public Member Functions | Private Member Functions | Private Attributes | List of all members
TimeStep Class Reference

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 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...
 

Detailed Description

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 64 of file time_governor.hh.

Constructor & Destructor Documentation

TimeStep::TimeStep ( double  init_time)

Constructor of the zero time step.

Definition at line 76 of file time_governor.cc.

TimeStep::TimeStep ( )

Default constructor. Creates undefined time step.

Definition at line 84 of file time_governor.cc.

TimeStep::TimeStep ( const TimeStep other)

Copy constructor.

Definition at line 93 of file time_governor.cc.

Member Function Documentation

double TimeStep::end ( ) const
inline

Definition at line 102 of file time_governor.hh.

Here is the caller graph for this function:

bool TimeStep::ge ( double  other_time) const
inline

Definition at line 114 of file time_governor.hh.

Here is the caller graph for this function:

TimeStep::gt ( double  other_time) const
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

Definition at line 108 of file time_governor.hh.

Here is the caller graph for this function:

unsigned int TimeStep::index ( ) const
inline

Getters.

Definition at line 100 of file time_governor.hh.

Here is the caller graph for this function:

bool TimeStep::le ( double  other_time) const
inline

Definition at line 126 of file time_governor.hh.

double TimeStep::length ( ) const
inline

Definition at line 101 of file time_governor.hh.

Here is the caller graph for this function:

bool TimeStep::lt ( double  other_time) const
inline

Definition at line 120 of file time_governor.hh.

Here is the caller graph for this function:

TimeStep TimeStep::make_next ( double  new_length) const

Create subsequent time step.

Definition at line 101 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 108 of file time_governor.cc.

bool TimeStep::operator== ( const TimeStep other)
inline

Returns true if two time steps are exactly the same.

Definition at line 132 of file time_governor.hh.

bool TimeStep::safe_compare ( double  t1,
double  t0 
) const
private

Definition at line 119 of file time_governor.cc.

Here is the caller graph for this function:

Member Data Documentation

double TimeStep::end_
private

End time point of the time step.

Definition at line 150 of file time_governor.hh.

unsigned int TimeStep::index_
private

Index of the step is index if the end time. Zero time step is artificial.

Definition at line 145 of file time_governor.hh.

double TimeStep::length_
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 148 of file time_governor.hh.


The documentation for this class was generated from the following files: