#include <TimeStepControl.hpp>
|
| General3rdOrderController ()=default |
|
| General3rdOrderController (const double tolerance, const double safetyFactor, const bool rejectCompletedStep, const std::string &toleranceTestVersion, const double maxReductionTimeStep, const std::string ¶meters, const bool verbose) |
| constructor More...
|
|
double | computeTimeStepSize (const double dt, const int, const RelativeChangeInterface &, const AdaptiveSimulatorTimer &substepTimer) const override |
|
double | timeStepFactor (const std::array< double, 3 > &errors, const std::array< double, 3 > &timeSteps) const |
|
bool | timeStepAccepted (const double error, const double timeStepJustCompleted) const override |
|
template<class Serializer > |
void | serializeOp (Serializer &serializer) |
|
bool | operator== (const General3rdOrderController &) const |
|
General 3rd order controller
◆ General3rdOrderController() [1/2]
Opm::General3rdOrderController::General3rdOrderController |
( |
| ) |
|
|
default |
◆ General3rdOrderController() [2/2]
Opm::General3rdOrderController::General3rdOrderController |
( |
const double |
tolerance, |
|
|
const double |
safetyFactor, |
|
|
const bool |
rejectCompletedStep, |
|
|
const std::string & |
toleranceTestVersion, |
|
|
const double |
maxReductionTimeStep, |
|
|
const std::string & |
parameters, |
|
|
const bool |
verbose |
|
) |
| |
constructor
- Parameters
-
tolerance | tolerance for the relative changes of the numerical solution to be accepted in one time step |
safetyFactor | multiplied with tolerance to ensure that target relative change is lower than tolerance |
rejectCompletedStep | if true, discard the recently completed time step and try again |
toleranceTestVersion | the test used to decide if a time step should be rejected |
maxReductionTimeStep | limits the reduction in time step size for control error filtering |
parameters | parameter values for the controller formula |
verbose | if true, get some output |
◆ computeTimeStepSize()
compute new time step size suggestions based on the PID controller - Parameters
-
dt | time step size used in the current step |
iterations | number of iterations used (linear/nonlinear) |
relativeChange | Relative change handler |
substepTimer | Sub step timer |
- Returns
- suggested time step size for the next step
Implements Opm::TimeStepControlInterface.
◆ operator==()
◆ serializationTestObject()
◆ serializeOp()
template<class Serializer >
void Opm::General3rdOrderController::serializeOp |
( |
Serializer & |
serializer | ) |
|
|
inline |
References alpha_, beta_, controllerVersion_, errors_, maxReductionTimeStep_, rejectCompletedStep_, safetyFactor_, timeSteps_, tolerance_, toleranceTestVersion_, and verbose_.
◆ timeStepAccepted()
bool Opm::General3rdOrderController::timeStepAccepted |
( |
const double |
error, |
|
|
const double |
timeStepJustCompleted |
|
) |
| const |
|
overridevirtual |
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
Implements Opm::TimeStepControlInterface.
◆ timeStepFactor()
double Opm::General3rdOrderController::timeStepFactor |
( |
const std::array< double, 3 > & |
errors, |
|
|
const std::array< double, 3 > & |
timeSteps |
|
) |
| const |
◆ alpha_
std::array<double, 2> Opm::General3rdOrderController::alpha_ {0.75, 0.25} |
|
mutableprotected |
◆ beta_
std::array<double, 3> Opm::General3rdOrderController::beta_ {0.125, 0.25, 0.125} |
|
mutableprotected |
◆ controllerVersion_
◆ errors_
std::array<double, 3> Opm::General3rdOrderController::errors_ {} |
|
mutableprotected |
◆ maxReductionTimeStep_
const double Opm::General3rdOrderController::maxReductionTimeStep_ = 0.1 |
|
protected |
◆ rejectCompletedStep_
const bool Opm::General3rdOrderController::rejectCompletedStep_ = false |
|
protected |
◆ safetyFactor_
const double Opm::General3rdOrderController::safetyFactor_ = 0.8 |
|
protected |
◆ timeSteps_
std::array<double, 3> Opm::General3rdOrderController::timeSteps_ {} |
|
mutableprotected |
◆ tolerance_
const double Opm::General3rdOrderController::tolerance_ = 0.1 |
|
protected |
◆ toleranceTestVersion_
◆ Type
◆ verbose_
const bool Opm::General3rdOrderController::verbose_ = false |
|
protected |
The documentation for this class was generated from the following file:
|