109 forward(dx > 0 ? true : false),
176 virtual bool resize() = 0;
label nEqns() const
Return the number of equations to solve.
ODESolver(const ODESystem &ode, const dictionary &dict)
Construct for given ODESystem.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
scalarField & relTol()
Return access to the relative tolerance field.
Abstract base class for the systems of ordinary differential equations.
virtual bool resize()=0
Resize the ODE solver.
void operator=(const ODESolver &)=delete
Disallow default bitwise assignment.
A list of keyword definitions, which are a keyword followed by any number of values (e...
dimensionedScalar y0(const dimensionedScalar &ds)
An ODE solver for chemistry.
stepState(const scalar dx)
scalar normaliseError(const scalarField &y0, const scalarField &y, const scalarField &err) const
Return the normalised scalar error.
virtual ~ODESolver()
Destructor.
void resizeMatrix(scalarSquareMatrix &m) const
const ODESystem & odes_
Reference to ODESystem.
TypeName("ODESolver")
Runtime type information.
label maxSteps_
The maximum number of sub-steps allowed for the integration step.
const label maxN_
Maximum size of the ODESystem.
declareRunTimeSelectionTable(autoPtr, ODESolver, dictionary,(const ODESystem &ode, const dictionary &dict),(ode, dict))
virtual void solve(scalar &x, scalarField &y, const label li, scalar &dxTry) const
Solve the ODE system from the current state xStart, y.
scalarField relTol_
Relative convergence tolerance per step.
Abstract base-class for ODE system solvers.
scalarField absTol_
Absolute convergence tolerance per step.
static autoPtr< ODESolver > New(const ODESystem &ode, const dictionary &dict)
Select null constructed.
scalarField & absTol()
Return access to the absolute tolerance field.
static void resizeField(UList< Type > &f, const label n)
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
label n_
Size of the ODESystem (adjustable)