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: