Public Member Functions | Private Attributes | Static Private Attributes
rodas23 Class Reference

L-stable, stiffly-accurate embedded Rosenbrock ODE solver of order (2)3. More...

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

Public Member Functions

 TypeName ("rodas23")
 Runtime type information. More...
 
 rodas23 (const ODESystem &ode, const dictionary &dict)
 Construct from ODE. More...
 
scalar solve (const scalar x0, const scalarField &y0, const scalarField &dydx0, const scalar dx, scalarField &y) const
 Solve a single step dx and return the error. More...
 
void solve (scalar &x, scalarField &y, scalar &dxTry) const
 Solve the ODE system and the update the state. More...
 
virtual void solve (scalar &x, scalarField &y, scalar &dxTry) const
 Inherit solve from ODESolver. More...
 
virtual void solve (scalar &x, scalarField &y, stepState &step) const
 Inherit solve from ODESolver. More...
 
virtual void solve (const scalar xStart, const scalar xEnd, scalarField &y, scalar &dxEst) const
 Inherit solve from ODESolver. More...
 
- Public Member Functions inherited from ODESolver
 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, 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...
 
- Public Member Functions inherited from adaptiveSolver
 adaptiveSolver (const ODESystem &ode, const dictionary &dict)
 Construct from ODESystem. More...
 
virtual ~adaptiveSolver ()
 Destructor. More...
 
void solve (const ODESystem &ode, scalar &x, scalarField &y, scalar &dxTry) const
 Solve the ODE system and the update the state. More...
 

Private Attributes

scalarField k1_
 
scalarField k2_
 
scalarField k3_
 
scalarField dy_
 
scalarField err_
 
scalarField dydx_
 
scalarField dfdx_
 
scalarSquareMatrix dfdy_
 
scalarSquareMatrix a_
 
labelList pivotIndices_
 

Static Private Attributes

static const scalar c3 = 1
 
static const scalar d1 = 1.0/2.0
 
static const scalar d2 = 3.0/2.0
 
static const scalar a31 = 2
 
static const scalar a41 = 2
 
static const scalar c21 = 4
 
static const scalar c31 = 1
 
static const scalar c32 = -1
 
static const scalar c41 = 1
 
static const scalar c42 = -1
 
static const scalar c43 = -8.0/3.0
 
static const scalar gamma = 1.0/2.0
 

Additional Inherited Members

- Static Public Member Functions inherited from ODESolver
static autoPtr< ODESolverNew (const ODESystem &ode, const dictionary &dict)
 Select null constructed. More...
 
- Protected Member Functions inherited from ODESolver
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 inherited from ODESolver
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

L-stable, stiffly-accurate embedded Rosenbrock ODE solver of order (2)3.

References:

    Sandu et al,
    "Benchmarking stiff ODE solvers for atmospheric chemistry problems II
     Rosenbrock solvers",
     A. Sandu,
     J.G. Verwer,
     J.G. Blom,
     E.J. Spee,
     G.R. Carmichael,
     F.A. Potra,
     Atmospheric Environment, Volume 31, 1997, Issue 20, Pages 3459-3472
Source files

Definition at line 63 of file rodas23.H.

Constructor & Destructor Documentation

◆ rodas23()

rodas23 ( const ODESystem ode,
const dictionary dict 
)

Construct from ODE.

Definition at line 54 of file rodas23.C.

Member Function Documentation

◆ TypeName()

TypeName ( "rodas23"  )

Runtime type information.

◆ solve() [1/5]

Foam::scalar solve ( const scalar  x0,
const scalarField y0,
const scalarField dydx0,
const scalar  dx,
scalarField y 
) const
virtual

Solve a single step dx and return the error.

Implements adaptiveSolver.

Definition at line 74 of file rodas23.C.

References forAll, Foam::LUBacksubstitute(), Foam::LUDecompose(), y, and Foam::y0().

Here is the call graph for this function:

◆ solve() [2/5]

void solve ( scalar &  x,
scalarField y,
scalar &  dxTry 
) const
virtual

Solve the ODE system and the update the state.

Reimplemented from ODESolver.

Definition at line 154 of file rodas23.C.

References adaptiveSolver::solve(), x, and y.

Here is the call graph for this function:

◆ solve() [3/5]

virtual void solve
inline

Inherit solve from ODESolver.

Definition at line 178 of file ODESolver.H.

◆ solve() [4/5]

void solve

Inherit solve from ODESolver.

Definition at line 86 of file ODESolver.C.

◆ solve() [5/5]

void solve

Inherit solve from ODESolver.

Definition at line 99 of file ODESolver.C.

Field Documentation

◆ k1_

scalarField k1_
mutableprivate

Definition at line 70 of file rodas23.H.

◆ k2_

scalarField k2_
mutableprivate

Definition at line 71 of file rodas23.H.

◆ k3_

scalarField k3_
mutableprivate

Definition at line 72 of file rodas23.H.

◆ dy_

scalarField dy_
mutableprivate

Definition at line 73 of file rodas23.H.

◆ err_

scalarField err_
mutableprivate

Definition at line 74 of file rodas23.H.

◆ dydx_

scalarField dydx_
mutableprivate

Definition at line 75 of file rodas23.H.

◆ dfdx_

scalarField dfdx_
mutableprivate

Definition at line 76 of file rodas23.H.

◆ dfdy_

scalarSquareMatrix dfdy_
mutableprivate

Definition at line 77 of file rodas23.H.

◆ a_

scalarSquareMatrix a_
mutableprivate

Definition at line 78 of file rodas23.H.

◆ pivotIndices_

labelList pivotIndices_
mutableprivate

Definition at line 79 of file rodas23.H.

◆ c3

const scalar c3 = 1
staticprivate

Definition at line 82 of file rodas23.H.

◆ d1

const scalar d1 = 1.0/2.0
staticprivate

Definition at line 83 of file rodas23.H.

◆ d2

const scalar d2 = 3.0/2.0
staticprivate

Definition at line 83 of file rodas23.H.

◆ a31

const scalar a31 = 2
staticprivate

Definition at line 84 of file rodas23.H.

◆ a41

const scalar a41 = 2
staticprivate

Definition at line 85 of file rodas23.H.

◆ c21

const scalar c21 = 4
staticprivate

Definition at line 86 of file rodas23.H.

◆ c31

const scalar c31 = 1
staticprivate

Definition at line 86 of file rodas23.H.

◆ c32

const scalar c32 = -1
staticprivate

Definition at line 86 of file rodas23.H.

◆ c41

const scalar c41 = 1
staticprivate

Definition at line 87 of file rodas23.H.

◆ c42

const scalar c42 = -1
staticprivate

Definition at line 87 of file rodas23.H.

◆ c43

const scalar c43 = -8.0/3.0
staticprivate

Definition at line 87 of file rodas23.H.

◆ gamma

const scalar gamma = 1.0/2.0
staticprivate

Definition at line 88 of file rodas23.H.


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