41#ifndef Foam_ODESolver_H
42#define Foam_ODESolver_H
120 forward(dx > 0 ? true : false),
183 virtual bool resize() = 0;
186 static inline void resizeField(UList<Type>&
f,
const label
n);
stepState(const scalar dx)
declareRunTimeSelectionTable(autoPtr, ODESolver, dictionary,(const ODESystem &ode, const dictionary &dict),(ode, dict))
void operator=(const ODESolver &)=delete
No copy assignment.
scalarField absTol_
Absolute convergence tolerance per step.
TypeName("ODESolver")
Runtime type information.
label nEqns() const noexcept
The number of equations to solve.
scalar normalizeError(const scalarField &y0, const scalarField &y, const scalarField &err) const
Return the nomalized scalar error.
scalarField relTol_
Relative convergence tolerance per step.
const label maxN_
Maximum size of the ODESystem.
ODESolver(const ODESolver &)=delete
No copy construct.
label n_
Size of the ODESystem (adjustable).
const ODESystem & odes_
Reference to ODESystem.
void resizeMatrix(scalarSquareMatrix &m) const
scalarField & absTol() noexcept
Access to the absolute tolerance field.
label maxSteps_
The maximum number of sub-steps allowed for the integration step.
virtual bool resize()=0
Resize the ODE solver.
static autoPtr< ODESolver > New(const ODESystem &ode, const dictionary &dict)
Select null constructed.
virtual ~ODESolver()=default
Destructor.
static void resizeField(UList< Type > &f, const label n)
scalarField & relTol() noexcept
Access to the relative tolerance field.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
An ODE solver for chemistry.
dimensionedScalar y0(const dimensionedScalar &ds)
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
SquareMatrix< scalar > scalarSquareMatrix
#define declareRunTimeSelectionTable(ptrWrapper, baseType, argNames, argList, parList)
Declare a run-time selection (variables and adder classes).
Basic run-time type information using word as the type's name. Used to enhance the standard RTTI to c...
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.