A time loop with a check point mechanism.
|
| template<class... Args> |
| | CheckPointTimeLoop (Args &&... args) |
| |
| void | advanceTimeStep () override |
| | Advance time step.
|
| |
| Scalar | maxTimeStepSize () const override |
| | The current maximum time step size.
|
| |
| template<class ScalarOrDuration1, class ScalarOrDuration2 = Scalar> |
| void | setPeriodicCheckPoint (ScalarOrDuration1 interval, ScalarOrDuration2 offset=0.0) |
| | Set a periodic check point.
|
| |
| void | disablePeriodicCheckPoints () |
| | disable periodic check points
|
| |
| void | removeAllCheckPoints () |
| | remove all check points
|
| |
| bool | isCheckPoint () const |
| | Whether now is a time checkpoint.
|
| |
| template<class ScalarOrDuration> |
| void | setCheckPoint (ScalarOrDuration t) |
| | add a checkpoint to the queue
|
| |
| template<class ScalarOrDuration> |
| void | setCheckPoint (const std::initializer_list< ScalarOrDuration > &checkPoints) |
| | add checkpoints to the queue from a list of time points
|
| |
| template<class ForwardIterator> |
| void | setCheckPoint (ForwardIterator first, ForwardIterator last) |
| | add checkpoints to the queue from a container from the first iterator to the last iterator
|
| |
| Scalar | timeStepSizeToNextCheckPoint () const |
| | Return the time step size to exactly reach the next check point In case there is no check point in the future, the largest representable scalar is returned.
|
| |
| void | setTimeStepSize (std::chrono::duration< Rep, Period > dt) |
| | Set the current time step size to a given value.
|
| |
|
| void | start () |
| | Tells the time loop to start tracking the time.
|
| |
| double | stop () |
| | Tells the time loop to stop tracking the time.
|
| |
| void | resetTimer () |
| | Reset the timer.
|
| |
| template<class Rep1, class Period1, class Rep2, class Period2, class Rep3, class Period3> |
| void | reset (std::chrono::duration< Rep1, Period1 > startTime, std::chrono::duration< Rep2, Period2 > dt, std::chrono::duration< Rep3, Period3 > tEnd, bool verbose=true) |
| | Reset the time loop.
|
| |
| void | reset (Scalar startTime, Scalar dt, Scalar tEnd, bool verbose=true) |
| | Reset the time loop.
|
| |
| template<class ScalarOrDuration> |
| void | setTime (ScalarOrDuration t) |
| | Set the current simulated time, don't change the current time step index.
|
| |
| template<class ScalarOrDuration> |
| void | setTime (ScalarOrDuration t, int stepIdx) |
| | Set the current simulated time and the time step index.
|
| |
| Scalar | time () const final |
| | Return the time \(\mathrm{[s]}\) before the time integration. To get the time after the time integration you have to add timeStepSize() to time().
|
| |
| Scalar | endTime () const |
| | Returns the number of (simulated) seconds which the simulation runs.
|
| |
| void | setEndTime (Scalar t) |
| | Set the time of simulated seconds at which the simulation runs.
|
| |
| double | wallClockTime () const |
| | Returns the current wall clock time (cpu time) spend in this time loop.
|
| |
| void | setTimeStepSize (Scalar dt) final |
| | Set the current time step size to a given value.
|
| |
| template<class ScalarOrDuration> |
| void | setMaxTimeStepSize (ScalarOrDuration maxDt) |
| | Set the maximum time step size to a given value.
|
| |
| Scalar | timeStepSize () const final |
| | Returns the suggested time step length \(\mathrm{[s]}\) so that we don't miss the beginning of the next episode or cross the end of the simulation.
|
| |
| int | timeStepIndex () const |
| | Returns number of time steps which have been executed since the beginning of the simulation.
|
| |
| Scalar | previousTimeStepSize () const |
| | The previous time step size.
|
| |
| void | setFinished (bool finished=true) |
| | Specify whether the simulation is finished.
|
| |
| bool | finished () const override |
| | Returns true if the simulation is finished.
|
| |
| bool | willBeFinished () const |
| | Returns true if the simulation is finished after the time level is incremented by the current time step size.
|
| |
| void | reportTimeStep () const |
| | State info on cpu time.
|
| |
| template<class Communicator = Dune::Communication<typename Dune::MPIHelper::MPICommunicator>> |
| void | finalize (const Communicator &comm=Dune::MPIHelper::getCommunication()) |
| | Print final status and stops tracking the time.
|
| |
| bool | verbose () const |
| | If the time loop has verbose output.
|
| |
| void | setVerbose (bool verbose=true) |
| | Sets time loop verbosity.
|
| |
| static constexpr Scalar | baseEps_ = 1e-10 |
| |
| Dune::Timer | timer_ |
| |
| Scalar | time_ |
| |
| Scalar | endTime_ |
| |
| Scalar | startTime_ |
| |
| Scalar | timeStepSize_ |
| |
| Scalar | previousTimeStepSize_ |
| |
| Scalar | userSetMaxTimeStepSize_ |
| |
| Scalar | timeAfterLastTimeStep_ |
| |
| Scalar | timeStepWallClockTime_ |
| |
| int | timeStepIdx_ |
| |
| bool | finished_ |
| |
| bool | verbose_ |
| |