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::General3rdOrderController, Opm::HardcodedTimeStepControl, Opm::PIDAndIterationCountTimeStepControl, Opm::PIDTimeStepControl, and Opm::SimpleIterationCountTimeStepControl.

◆ 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::HardcodedTimeStepControl, Opm::PIDAndIterationCountTimeStepControl, Opm::PIDTimeStepControl, and Opm::SimpleIterationCountTimeStepControl.


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