#include <AdaptiveTimeStepping.hpp>

Public Member Functions

 AdaptiveTimeStepping ()=default
 
 AdaptiveTimeStepping (const UnitSystem &unitSystem, const double max_next_tstep=-1.0, const bool terminalOutput=true)
 contructor taking parameter object More...
 
 AdaptiveTimeStepping (double max_next_tstep, const Tuning &tuning, const UnitSystem &unitSystem, const bool terminalOutput=true)
 contructor taking parameter object More...
 
template<class Solver >
SimulatorReport step (const SimulatorTimer &simulatorTimer, Solver &solver, const bool isEvent, const std::vector< int > *fipnum=nullptr, const std::function< bool()> tuningUpdater=[](){return false;})
 step method that acts like the solver::step method in a sub cycle of time steps More...
 
double suggestedNextStep () const
 Returns the simulator report for the failed substeps of the last report step. More...
 
void setSuggestedNextStep (const double x)
 
void updateTUNING (double max_next_tstep, const Tuning &tuning)
 
void updateNEXTSTEP (double max_next_tstep)
 
template<class Serializer >
void serializeOp (Serializer &serializer)
 
bool operator== (const AdaptiveTimeStepping< TypeTag > &rhs)
 

Static Public Member Functions

static void registerParameters ()
 
static AdaptiveTimeStepping< TypeTag > serializationTestObjectHardcoded ()
 
static AdaptiveTimeStepping< TypeTag > serializationTestObjectPID ()
 
static AdaptiveTimeStepping< TypeTag > serializationTestObjectPIDIt ()
 
static AdaptiveTimeStepping< TypeTag > serializationTestObjectSimple ()
 

Protected Types

using TimeStepController = std::unique_ptr< TimeStepControlInterface >
 

Protected Member Functions

void init_ (const UnitSystem &unitSystem)
 

Protected Attributes

TimeStepControlType timeStepControlType_
 type of time step control object More...
 
TimeStepController timeStepControl_
 time step control object More...
 
double restartFactor_
 factor to multiply time step with when solver fails to converge More...
 
double growthFactor_
 factor to multiply time step when solver recovered from failed convergence More...
 
double maxGrowth_
 factor that limits the maximum growth of a time step More...
 
double maxTimeStep_
 maximal allowed time step size in days More...
 
double minTimeStep_
 minimal allowed time step size before throwing More...
 
bool ignoreConvergenceFailure_
 continue instead of stop when minimum time step is reached More...
 
int solverRestartMax_
 how many restart of solver are allowed More...
 
bool solverVerbose_
 solver verbosity More...
 
bool timestepVerbose_
 timestep verbosity More...
 
double suggestedNextTimestep_
 suggested size of next timestep More...
 
bool fullTimestepInitially_
 beginning with the size of the time step from data file More...
 
double timestepAfterEvent_
 suggested size of timestep after an event More...
 
bool useNewtonIteration_
 use newton iteration count for adaptive time step control More...
 
double minTimeStepBeforeShuttingProblematicWells_
 

Member Typedef Documentation

◆ TimeStepController

template<class TypeTag >
using Opm::AdaptiveTimeStepping< TypeTag >::TimeStepController = std::unique_ptr<TimeStepControlInterface>
protected

Constructor & Destructor Documentation

◆ AdaptiveTimeStepping() [1/3]

template<class TypeTag >
Opm::AdaptiveTimeStepping< TypeTag >::AdaptiveTimeStepping ( )
default

◆ AdaptiveTimeStepping() [2/3]

template<class TypeTag >
Opm::AdaptiveTimeStepping< TypeTag >::AdaptiveTimeStepping ( const UnitSystem &  unitSystem,
const double  max_next_tstep = -1.0,
const bool  terminalOutput = true 
)
inline

contructor taking parameter object

References Opm::AdaptiveTimeStepping< TypeTag >::init_().

◆ AdaptiveTimeStepping() [3/3]

template<class TypeTag >
Opm::AdaptiveTimeStepping< TypeTag >::AdaptiveTimeStepping ( double  max_next_tstep,
const Tuning &  tuning,
const UnitSystem &  unitSystem,
const bool  terminalOutput = true 
)
inline

contructor taking parameter object

Parameters
tuningPointer to ecl TUNING keyword
timeStepcurrent report step

References Opm::AdaptiveTimeStepping< TypeTag >::init_().

Member Function Documentation

◆ init_()

◆ operator==()

◆ registerParameters()

template<class TypeTag >
static void Opm::AdaptiveTimeStepping< TypeTag >::registerParameters ( )
inlinestatic

◆ serializationTestObjectHardcoded()

template<class TypeTag >
static AdaptiveTimeStepping< TypeTag > Opm::AdaptiveTimeStepping< TypeTag >::serializationTestObjectHardcoded ( )
inlinestatic

◆ serializationTestObjectPID()

template<class TypeTag >
static AdaptiveTimeStepping< TypeTag > Opm::AdaptiveTimeStepping< TypeTag >::serializationTestObjectPID ( )
inlinestatic

◆ serializationTestObjectPIDIt()

template<class TypeTag >
static AdaptiveTimeStepping< TypeTag > Opm::AdaptiveTimeStepping< TypeTag >::serializationTestObjectPIDIt ( )
inlinestatic

◆ serializationTestObjectSimple()

template<class TypeTag >
static AdaptiveTimeStepping< TypeTag > Opm::AdaptiveTimeStepping< TypeTag >::serializationTestObjectSimple ( )
inlinestatic

◆ serializeOp()

◆ setSuggestedNextStep()

template<class TypeTag >
void Opm::AdaptiveTimeStepping< TypeTag >::setSuggestedNextStep ( const double  x)
inline

◆ step()

template<class TypeTag >
template<class Solver >
SimulatorReport Opm::AdaptiveTimeStepping< TypeTag >::step ( const SimulatorTimer simulatorTimer,
Solver &  solver,
const bool  isEvent,
const std::vector< int > *  fipnum = nullptr,
const std::function< bool()>  tuningUpdater = [](){return false;} 
)
inline

step method that acts like the solver::step method in a sub cycle of time steps

Parameters
tuningUpdaterFunction used to update TUNING parameters before each time step. ACTIONX might change tuning.

◆ suggestedNextStep()

template<class TypeTag >
double Opm::AdaptiveTimeStepping< TypeTag >::suggestedNextStep ( ) const
inline

Returns the simulator report for the failed substeps of the last report step.

References Opm::AdaptiveTimeStepping< TypeTag >::suggestedNextTimestep_.

◆ updateNEXTSTEP()

template<class TypeTag >
void Opm::AdaptiveTimeStepping< TypeTag >::updateNEXTSTEP ( double  max_next_tstep)
inline

◆ updateTUNING()

Member Data Documentation

◆ fullTimestepInitially_

template<class TypeTag >
bool Opm::AdaptiveTimeStepping< TypeTag >::fullTimestepInitially_
protected

beginning with the size of the time step from data file

Referenced by Opm::AdaptiveTimeStepping< TypeTag >::operator==(), and Opm::AdaptiveTimeStepping< TypeTag >::serializeOp().

◆ growthFactor_

template<class TypeTag >
double Opm::AdaptiveTimeStepping< TypeTag >::growthFactor_
protected

◆ ignoreConvergenceFailure_

template<class TypeTag >
bool Opm::AdaptiveTimeStepping< TypeTag >::ignoreConvergenceFailure_
protected

continue instead of stop when minimum time step is reached

Referenced by Opm::AdaptiveTimeStepping< TypeTag >::operator==(), and Opm::AdaptiveTimeStepping< TypeTag >::serializeOp().

◆ maxGrowth_

template<class TypeTag >
double Opm::AdaptiveTimeStepping< TypeTag >::maxGrowth_
protected

◆ maxTimeStep_

template<class TypeTag >
double Opm::AdaptiveTimeStepping< TypeTag >::maxTimeStep_
protected

◆ minTimeStep_

template<class TypeTag >
double Opm::AdaptiveTimeStepping< TypeTag >::minTimeStep_
protected

minimal allowed time step size before throwing

Referenced by Opm::AdaptiveTimeStepping< TypeTag >::operator==(), and Opm::AdaptiveTimeStepping< TypeTag >::serializeOp().

◆ minTimeStepBeforeShuttingProblematicWells_

template<class TypeTag >
double Opm::AdaptiveTimeStepping< TypeTag >::minTimeStepBeforeShuttingProblematicWells_
protected

◆ restartFactor_

template<class TypeTag >
double Opm::AdaptiveTimeStepping< TypeTag >::restartFactor_
protected

◆ solverRestartMax_

template<class TypeTag >
int Opm::AdaptiveTimeStepping< TypeTag >::solverRestartMax_
protected

◆ solverVerbose_

template<class TypeTag >
bool Opm::AdaptiveTimeStepping< TypeTag >::solverVerbose_
protected

◆ suggestedNextTimestep_

◆ timestepAfterEvent_

template<class TypeTag >
double Opm::AdaptiveTimeStepping< TypeTag >::timestepAfterEvent_
protected

◆ timeStepControl_

template<class TypeTag >
TimeStepController Opm::AdaptiveTimeStepping< TypeTag >::timeStepControl_
protected

◆ timeStepControlType_

template<class TypeTag >
TimeStepControlType Opm::AdaptiveTimeStepping< TypeTag >::timeStepControlType_
protected

◆ timestepVerbose_

template<class TypeTag >
bool Opm::AdaptiveTimeStepping< TypeTag >::timestepVerbose_
protected

timestep verbosity

Referenced by Opm::AdaptiveTimeStepping< TypeTag >::serializeOp().

◆ useNewtonIteration_

template<class TypeTag >
bool Opm::AdaptiveTimeStepping< TypeTag >::useNewtonIteration_
protected

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