Opm::TimeStepControlInterface Class Referenceabstract

#include <TimeStepControlInterface.hpp>

Inheritance diagram for Opm::TimeStepControlInterface:
Inheritance graph

Public Member Functions

virtual double computeTimeStepSize (const double dt, const int iterations, const RelativeChangeInterface &relativeChange, const AdaptiveSimulatorTimer &substepTimer) const =0
 
virtual bool timeStepAccepted (const double error, const double timeStepJustCompleted) const =0
 
virtual ~TimeStepControlInterface ()
 virtual destructor (empty) More...
 

Protected Member Functions

 TimeStepControlInterface ()
 

Detailed Description

Constructor & Destructor Documentation

◆ TimeStepControlInterface()

Opm::TimeStepControlInterface::TimeStepControlInterface ( )
inlineprotected

◆ ~TimeStepControlInterface()

virtual Opm::TimeStepControlInterface::~TimeStepControlInterface ( )
inlinevirtual

virtual destructor (empty)

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)
timeErrorobject to compute || u^n+1 - u^n || / || u^n+1 ||
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.

Referenced by Opm::NonlinearSolver< TypeTag, PhysicalModel >::step().


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