opm-simulators
Loading...
Searching...
No Matches
Opm::TimeStepControlInterface Class Referenceabstract

TimeStepControlInterface. More...

#include <TimeStepControlInterface.hpp>

Inheritance diagram for Opm::TimeStepControlInterface:
Opm::General3rdOrderController Opm::HardcodedTimeStepControl Opm::PIDTimeStepControl Opm::SimpleIterationCountTimeStepControl Opm::PIDAndIterationCountTimeStepControl

Public Member Functions

virtual double computeTimeStepSize (const double dt, const int iterations, const RelativeChangeInterface &relativeChange, const AdaptiveSimulatorTimer &substepTimer) const =0
 compute new time step size suggestions based on the PID controller
 
virtual bool timeStepAccepted (const double error, const double timeStepJustCompleted) const =0
 For the general 3rd order controller, the internal shifting of errors and time steps happens here, and hence this method needs to be called for (after) each time step.
 
virtual ~TimeStepControlInterface ()
 virtual destructor (empty)
 

Detailed Description

Member Function Documentation

◆ computeTimeStepSize()

virtual double Opm::TimeStepControlInterface::computeTimeStepSize ( const double  dt,
const int  iterations,
const RelativeChangeInterface relativeChange,
const AdaptiveSimulatorTimer substepTimer 
) const
pure virtual

compute new time step size suggestions based on the PID controller

Parameters
dttime step size used in the current step
iterationsnumber of iterations used (linear/nonlinear)
relativeChangeRelative change handler
substepTimerSub step timer
Returns
suggested time step size for the next step

Implemented in Opm::SimpleIterationCountTimeStepControl, Opm::PIDAndIterationCountTimeStepControl, Opm::General3rdOrderController, Opm::HardcodedTimeStepControl, and Opm::PIDTimeStepControl.

◆ timeStepAccepted()

virtual bool Opm::TimeStepControlInterface::timeStepAccepted ( const double  error,
const double  timeStepJustCompleted 
) const
pure virtual

For the general 3rd order controller, the internal shifting of errors and time steps happens here, and hence this method needs to be called for (after) each time step.

Implemented in Opm::General3rdOrderController, Opm::SimpleIterationCountTimeStepControl, Opm::PIDTimeStepControl, Opm::PIDAndIterationCountTimeStepControl, and Opm::HardcodedTimeStepControl.


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