Simulation timer for adaptive time stepping. More...
#include <AdaptiveSimulatorTimer.hpp>
Public Member Functions | |
AdaptiveSimulatorTimer (const SimulatorTimerInterface &timer, const double lastStepTaken, const double maxTimeStep=std::numeric_limits< double >::max()) | |
constructor taking a simulator timer to determine start and end time | |
AdaptiveSimulatorTimer & | operator++ () |
advance time by currentStepLength | |
void | advance () |
advance time by currentStepLength | |
void | provideTimeStepEstimate (const double dt_estimate) |
provide and estimate for new time step size | |
bool | initialStep () const |
Whether this is the first step. | |
int | currentStepNum () const |
int | reportStepNum () const |
return current report step | |
double | currentStepLength () const |
double | totalTime () const |
double | simulationTimeElapsed () const |
bool | done () const |
double | averageStepLength () const |
return average step length used so far | |
double | maxStepLength () const |
return max step length used so far | |
double | minStepLength () const |
return min step length used so far | |
double | stepLengthTaken () const |
Previous step length. | |
void | report (std::ostream &os) const |
report start and end time as well as used steps so far | |
boost::posix_time::ptime | startDateTime () const |
start date time of simulation | |
bool | lastStepFailed () const |
Return true if last time step failed. | |
void | setLastStepFailed (bool lastStepFailed) |
tell the timestepper whether timestep failed or not | |
virtual std::unique_ptr < SimulatorTimerInterface > | clone () const |
return copy of object | |
Protected Attributes | |
const boost::posix_time::ptime | start_date_time_ |
const double | start_time_ |
const double | total_time_ |
const int | report_step_ |
const double | max_time_step_ |
double | current_time_ |
double | dt_ |
int | current_step_ |
std::vector< double > | steps_ |
bool | lastStepFailed_ |
Simulation timer for adaptive time stepping.
Opm::AdaptiveSimulatorTimer::AdaptiveSimulatorTimer | ( | const SimulatorTimerInterface & | timer, | |
const double | lastStepTaken, | |||
const double | maxTimeStep = std::numeric_limits<double>::max() | |||
) |
constructor taking a simulator timer to determine start and end time
timer | in case of sub stepping this is the outer timer | |
lastStepTaken | last suggested time step | |
maxTimeStep | maximum time step allowed |
double Opm::AdaptiveSimulatorTimer::currentStepLength | ( | ) | const [virtual] |
Implements Opm::SimulatorTimerInterface.
int Opm::AdaptiveSimulatorTimer::currentStepNum | ( | ) | const [virtual] |
Implements Opm::SimulatorTimerInterface.
bool Opm::AdaptiveSimulatorTimer::done | ( | ) | const [virtual] |
Implements Opm::SimulatorTimerInterface.
double Opm::AdaptiveSimulatorTimer::simulationTimeElapsed | ( | ) | const [virtual] |
Implements Opm::SimulatorTimerInterface.
double Opm::AdaptiveSimulatorTimer::stepLengthTaken | ( | ) | const [virtual] |
Previous step length.
This is the length of the step that was taken to arrive at this time.
Implements Opm::SimulatorTimerInterface.
double Opm::AdaptiveSimulatorTimer::totalTime | ( | ) | const |