21#ifndef OPM_TIMESTEPCONTROL_HEADER_INCLUDED
22#define OPM_TIMESTEPCONTROL_HEADER_INCLUDED
24#include <opm/simulators/timestepping/TimeStepControlInterface.hpp>
31 enum class TimeStepControlType {
46 static constexpr TimeStepControlType Type = TimeStepControlType::SimpleIterationCount;
64 template<
class Serializer>
76 const int target_iterations_ = 0;
77 const double decayrate_ = 0.0;
78 const double growthrate_ = 0.0;
79 const bool verbose_ =
false;
99 static constexpr TimeStepControlType Type = TimeStepControlType::PID;
112 template<
class Serializer>
123 const double tol_ = 1
e-3;
124 mutable std::vector< double > errors_{};
126 const bool verbose_ =
false;
139 static constexpr TimeStepControlType Type = TimeStepControlType::PIDAndIterationCount;
149 const double tol = 1
e-3,
158 template<
class Serializer>
171 const int target_iterations_;
172 const double decayDampingFactor_;
173 const double growthDampingFactor_;
174 const double minTimeStepBasedOnIterations_;
189 static constexpr TimeStepControlType Type = TimeStepControlType::HardCodedTimeStep;
201 template<
class Serializer>
211 std::vector<double> subStepTime_;
Definition AquiferInterface.hpp:35
HardcodedTimeStepControl Input generated from summary file using the ert application:
Definition TimeStepControl.hpp:187
double computeTimeStepSize(const double dt, const int, const RelativeChangeInterface &, const double simulationTimeElapsed) const
compute new time step size suggestions based on the PID controller
Definition TimeStepControl.cpp:137
PID controller based adaptive time step control as above that also takes an target iteration into acc...
Definition TimeStepControl.hpp:136
double computeTimeStepSize(const double dt, const int iterations, const RelativeChangeInterface &relativeChange, const double) const
compute new time step size suggestions based on the PID controller
Definition TimeStepControl.cpp:252
PID controller based adaptive time step control as suggested in: Turek and Kuzmin.
Definition TimeStepControl.hpp:97
double computeTimeStepSize(const double dt, const int, const RelativeChangeInterface &relativeChange, const double) const
compute new time step size suggestions based on the PID controller
Definition TimeStepControl.cpp:173
RelativeChangeInterface.
Definition TimeStepControlInterface.hpp:32
A simple iteration count based adaptive time step control.
Definition TimeStepControl.hpp:44
double computeTimeStepSize(const double dt, const int iterations, const RelativeChangeInterface &, const double) const
compute new time step size suggestions based on the PID controller
Definition TimeStepControl.cpp:76
TimeStepControlInterface.
Definition TimeStepControlInterface.hpp:49
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition BlackoilPhases.hpp:27