40 safeScale_(
dict.getOrDefault<scalar>(
"safeScale", 0.9)),
41 alphaInc_(
dict.getOrDefault<scalar>(
"alphaIncrease", 0.2)),
42 alphaDec_(
dict.getOrDefault<scalar>(
"alphaDecrease", 0.25)),
43 minScale_(
dict.getOrDefault<scalar>(
"minScale", 0.2)),
44 maxScale_(
dict.getOrDefault<scalar>(
"maxScale", 10)),
79 err =
solve(
x,
y, dydx0_, dx, yTemp_);
84 scalar scale =
max(safeScale_*
pow(err, -alphaDec_), minScale_);
90 <<
"stepsize underflow"
101 if (err >
pow(maxScale_/safeScale_, -1.0/alphaInc_))
104 min(
max(safeScale_*
pow(err, -alphaInc_), minScale_), maxScale_)*dx;
108 dxTry = safeScale_*maxScale_*dx;
Macros for easy insertion into run-time selection tables.
virtual bool resize()
Resize the ODE solver.
static void resizeField(UList< Type > &f, const label n)
Abstract base class for the systems of ordinary differential equations.
virtual void derivatives(const scalar x, const scalarField &y, scalarField &dydx) const =0
Calculate the derivatives in dydx.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
An ODE solver for chemistry.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
errorManipArg< error, int > exit(error &err, const int errNo=1)