Data Structures | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
ODESolver Class Reference

Abstract base-class for ODE system solvers. More...

Inheritance diagram for ODESolver:
Inheritance graph
[legend]
Collaboration diagram for ODESolver:
Collaboration graph
[legend]

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...
 
scalarFieldabsTol ()
 
scalarFieldrelTol ()
 
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< ODESolverNew (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 ODESystemodes_
 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...
 

Detailed Description

Abstract base-class for ODE system solvers.

Source files

Definition at line 50 of file ODESolver.H.

Constructor & Destructor Documentation

◆ ODESolver() [1/3]

ODESolver ( const ODESolver )
protected

Disallow default bitwise copy construct.

◆ ODESolver() [2/3]

ODESolver ( const ODESystem ode,
const dictionary dict 
)

Construct for given ODESystem.

Definition at line 39 of file ODESolver.C.

◆ ODESolver() [3/3]

ODESolver ( const ODESystem ode,
const scalarField absTol,
const scalarField relTol 
)

Construct for given ODESystem specifying tolerances.

Definition at line 50 of file ODESolver.C.

◆ ~ODESolver()

virtual ~ODESolver ( )
inlinevirtual

Destructor.

Definition at line 157 of file ODESolver.H.

Member Function Documentation

◆ normalizeError()

Foam::scalar normalizeError ( const scalarField y0,
const scalarField y,
const scalarField err 
) const
protected

Return the nomalized scalar error.

Definition at line 67 of file ODESolver.C.

References forAll, Foam::mag(), Foam::max(), y, and Foam::y0().

Here is the call graph for this function:

◆ operator=()

void operator= ( const ODESolver )
protected

Disallow default bitwise assignment.

◆ TypeName()

TypeName ( "ODESolver"  )

Runtime type information.

◆ declareRunTimeSelectionTable()

declareRunTimeSelectionTable ( autoPtr  ,
ODESolver  ,
dictionary  ,
(const ODESystem &ode, const dictionary &dict ,
(ode, dict  
)

◆ New()

Foam::autoPtr< Foam::ODESolver > New ( const ODESystem ode,
const dictionary 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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ absTol()

scalarField& absTol ( )
inline

Definition at line 163 of file ODESolver.H.

References ODESolver::absTol_.

◆ relTol()

scalarField& relTol ( )
inline

Definition at line 168 of file ODESolver.H.

References ODESolver::relTol_.

◆ solve() [1/3]

virtual void solve ( scalar &  x,
scalarField y,
scalar &  dxTry 
) const
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.

◆ solve() [2/3]

void solve ( scalar &  x,
scalarField y,
stepState step 
) const
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.

Here is the call graph for this function:

◆ solve() [3/3]

void solve ( const scalar  xStart,
const scalar  xEnd,
scalarField y,
scalar &  dxEst 
) const
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.

Here is the call graph for this function:

Field Documentation

◆ odes_

const ODESystem& odes_
protected

Reference to ODESystem.

Definition at line 58 of file ODESolver.H.

◆ n_

label n_
protected

Size of the ODESystem.

Definition at line 61 of file ODESolver.H.

◆ absTol_

scalarField absTol_
protected

Absolute convergence tolerance per step.

Definition at line 64 of file ODESolver.H.

Referenced by ODESolver::absTol().

◆ relTol_

scalarField relTol_
protected

Relative convergence tolerance per step.

Definition at line 67 of file ODESolver.H.

Referenced by ODESolver::relTol().

◆ maxSteps_

label maxSteps_
protected

The maximum number of sub-steps allowed for the integration step.

Definition at line 70 of file ODESolver.H.


The documentation for this class was generated from the following files: