#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) |
|
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 |
|
) |
| |
◆ 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) |
timeError | object to compute || u^n+1 - u^n || / || u^n+1 || |
- 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:
|