opm-simulators
Loading...
Searching...
No Matches
Opm::AdaptiveTimeStepping< TypeTag > Class Template Reference

Public Types

using TuningUpdateCallback = std::function< bool(const double, const double, const int)>
 

Public Member Functions

 AdaptiveTimeStepping (const UnitSystem &unitSystem, const SimulatorReport &full_report, const double max_next_tstep=-1.0, const bool terminalOutput=true)
 contructor taking parameter object
 
 AdaptiveTimeStepping (double max_next_tstep, const Tuning &tuning, const UnitSystem &unitSystem, const SimulatorReport &full_report, const bool terminalOutput=true)
 contructor
 
bool operator== (const AdaptiveTimeStepping< TypeTag > &rhs)
 
void setSuggestedNextStep (const double x)
 
double suggestedNextStep () const
 
const TimeStepControlInterfacetimeStepControl () const
 
template<class Solver >
SimulatorReport step (const SimulatorTimer &simulator_timer, Solver &solver, const bool is_event, const TuningUpdateCallback &tuning_updater)
 step method that acts like the solver::step method in a sub cycle of time steps
 
void updateTUNING (double max_next_tstep, const Tuning &tuning)
 
void updateNEXTSTEP (double max_next_tstep)
 
template<class Serializer >
void serializeOp (Serializer &serializer)
 
SimulatorReportreport ()
 

Static Public Member Functions

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

Protected Types

using TimeStepController = std::unique_ptr< TimeStepControlInterface >
 

Protected Member Functions

void init_ (const UnitSystem &unitSystem)
 

Protected Attributes

TimeStepControlType time_step_control_type_ {TimeStepControlType::PIDAndIterationCount}
 type of time step control object
 
TimeStepController time_step_control_ {}
 time step control object
 
double restart_factor_ {}
 factor to multiply time step with when solver fails to converge
 
double growth_factor_ {}
 factor to multiply time step when solver recovered from failed convergence
 
double max_growth_ {}
 factor that limits the maximum growth of a time step
 
double max_time_step_ {}
 maximal allowed time step size in days
 
double min_time_step_ {}
 minimal allowed time step size before throwing
 
bool ignore_convergence_failure_ {false}
 continue instead of stop when minimum time step is reached
 
int solver_restart_max_ {}
 how many restart of solver are allowed
 
bool solver_verbose_ {false}
 solver verbosity
 
bool timestep_verbose_ {false}
 timestep verbosity
 
double suggested_next_timestep_ {}
 suggested size of next timestep
 
bool full_timestep_initially_ {false}
 beginning with the size of the time step from data file
 
double timestep_after_event_ {}
 suggested size of timestep after an event
 
bool use_newton_iteration_ {false}
 use newton iteration count for adaptive time step control
 
double min_time_step_before_shutting_problematic_wells_ {}
 < shut problematic wells when time step size in days are less than this
 
SimulatorReport report_ {}
 

Constructor & Destructor Documentation

◆ AdaptiveTimeStepping()

template<class TypeTag >
Opm::AdaptiveTimeStepping< TypeTag >::AdaptiveTimeStepping ( double  max_next_tstep,
const Tuning tuning,
const UnitSystem unit_system,
const SimulatorReport report,
const bool  terminal_output = true 
)

contructor

Parameters
max_next_tstepMaximum next time step allowed
tuningPointer to ecl TUNING keyword
unit_systemUnit system to use
reportSimulator report to use
terminal_outputTrue to print to terminal

Member Function Documentation

◆ step()

template<class TypeTag >
template<class Solver >
SimulatorReport Opm::AdaptiveTimeStepping< TypeTag >::step ( const SimulatorTimer simulator_timer,
Solver &  solver,
const bool  is_event,
const TuningUpdateCallback &  tuning_updater 
)

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

Parameters
simulator_timerSimulator timer
solverSolver to use
is_eventTrue if this is an event
tuning_updaterFunction used to update TUNING parameters before each time step. ACTIONX might change tuning.

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