Abstract base-class for ODE system solvers. More...
Data Structures | |
class | stepState |
Public Member Functions | |
TypeName ("ODESolver") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, ODESolver, dictionary,(const ODESystem &ode, const dictionary &dict),(ode, dict)) | |
ODESolver (const ODESystem &ode, const dictionary &dict) | |
Construct for given ODESystem. More... | |
ODESolver (const ODESystem &ode, const scalarField &absTol, const scalarField &relTol) | |
Construct for given ODESystem specifying tolerances. More... | |
virtual | ~ODESolver () |
Destructor. More... | |
scalarField & | absTol () |
scalarField & | relTol () |
virtual void | solve (scalar &x, scalarField &y, scalar &dxTry) const |
Solve the ODE system as far as possible upto dxTry. More... | |
virtual void | solve (scalar &x, scalarField &y, stepState &step) const |
Solve the ODE system as far as possible upto dxTry. More... | |
virtual void | solve (const scalar xStart, const scalar xEnd, scalarField &y, scalar &dxEst) const |
Solve the ODE system from xStart to xEnd, update the state. More... | |
Static Public Member Functions | |
static autoPtr< ODESolver > | New (const ODESystem &ode, const dictionary &dict) |
Select null constructed. More... | |
Protected Member Functions | |
scalar | normalizeError (const scalarField &y0, const scalarField &y, const scalarField &err) const |
Return the nomalized scalar error. More... | |
ODESolver (const ODESolver &) | |
Disallow default bitwise copy construct. More... | |
void | operator= (const ODESolver &) |
Disallow default bitwise assignment. More... | |
Protected Attributes | |
const ODESystem & | odes_ |
Reference to ODESystem. More... | |
label | n_ |
Size of the ODESystem. More... | |
scalarField | absTol_ |
Absolute convergence tolerance per step. More... | |
scalarField | relTol_ |
Relative convergence tolerance per step. More... | |
label | maxSteps_ |
The maximum number of sub-steps allowed for the integration step. More... | |
ODESolver | ( | const ODESystem & | ode, |
const dictionary & | dict | ||
) |
Construct for given ODESystem.
Definition at line 39 of file ODESolver.C.
ODESolver | ( | const ODESystem & | ode, |
const scalarField & | absTol, | ||
const scalarField & | relTol | ||
) |
Construct for given ODESystem specifying tolerances.
Definition at line 50 of file ODESolver.C.
|
inlinevirtual |
Destructor.
Definition at line 157 of file ODESolver.H.
|
protected |
Return the nomalized scalar error.
Definition at line 67 of file ODESolver.C.
References forAll, Foam::mag(), Foam::max(), y, and Foam::y0().
|
protected |
Disallow default bitwise assignment.
TypeName | ( | "ODESolver" | ) |
Runtime type information.
declareRunTimeSelectionTable | ( | autoPtr | , |
ODESolver | , | ||
dictionary | , | ||
(const ODESystem &ode, const dictionary &dict) | , | ||
(ode, dict) | |||
) |
|
static |
Select null constructed.
Definition at line 31 of file ODESolverNew.C.
References dict, Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::Info, and Foam::nl.
Referenced by main().
|
inline |
Definition at line 163 of file ODESolver.H.
References ODESolver::absTol_.
|
inline |
Definition at line 168 of file ODESolver.H.
References ODESolver::relTol_.
|
inlinevirtual |
Solve the ODE system as far as possible upto dxTry.
adjusting the step as necessary to provide a solution within the specified tolerance. Update the state and return an estimate for the next step in dxTry
Reimplemented in Rosenbrock34, RKDP45, RKF45, SIBS, RKCK45, rodas34, rodas23, Rosenbrock23, Rosenbrock12, EulerSI, and Trapezoid.
Definition at line 178 of file ODESolver.H.
References ODESolver::stepState::dxTry, x, and y.
|
virtual |
Solve the ODE system as far as possible upto dxTry.
adjusting the step as necessary to provide a solution within the specified tolerance. Update the state and return an estimate for the next step in dxTry
Reimplemented in seulex.
Definition at line 86 of file ODESolver.C.
References ODESolver::stepState::dxDid, ODESolver::stepState::dxTry, Foam::solve(), x, and y.
|
virtual |
Solve the ODE system from xStart to xEnd, update the state.
and return an estimate for the next step in dxTry
Definition at line 99 of file ODESolver.C.
References ODESolver::stepState::dxDid, ODESolver::stepState::dxTry, Foam::exit(), Foam::FatalError, FatalErrorInFunction, ODESolver::stepState::first, ODESolver::stepState::last, ODESolver::stepState::prevReject, ODESolver::stepState::reject, Foam::solve(), x, and y.
|
protected |
Reference to ODESystem.
Definition at line 58 of file ODESolver.H.
|
protected |
Size of the ODESystem.
Definition at line 61 of file ODESolver.H.
|
protected |
Absolute convergence tolerance per step.
Definition at line 64 of file ODESolver.H.
Referenced by ODESolver::absTol().
|
protected |
Relative convergence tolerance per step.
Definition at line 67 of file ODESolver.H.
Referenced by ODESolver::relTol().
|
protected |
The maximum number of sub-steps allowed for the integration step.
Definition at line 70 of file ODESolver.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.