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

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

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

Public Member Functions

 TypeName ("Rosenbrock23")
 Runtime type information. More...
 
 Rosenbrock23 (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 err_
 
scalarField dydx_
 
scalarField dfdx_
 
scalarSquareMatrix dfdy_
 
scalarSquareMatrix a_
 
labelList pivotIndices_
 

Static Private Attributes

static const scalar a21 = 1
 
static const scalar a31 = 1
 
static const scalar a32 = 0
 
static const scalar c21 = -1.0156171083877702091975600115545
 
static const scalar c31 = 4.0759956452537699824805835358067
 
static const scalar c32 = 9.2076794298330791242156818474003
 
static const scalar b1 = 1
 
static const scalar b2 = 6.1697947043828245592553615689730
 
static const scalar b3 = -0.4277225654321857332623837380651
 
static const scalar e1 = 0.5
 
static const scalar e2 = -2.9079558716805469821718236208017
 
static const scalar e3 = 0.2235406989781156962736090927619
 
static const scalar gamma = 0.43586652150845899941601945119356
 
static const scalar c2 = 0.43586652150845899941601945119356
 
static const scalar c3
 
static const scalar d1 = 0.43586652150845899941601945119356
 
static const scalar d2 = 0.24291996454816804366592249683314
 
static const scalar d3 = 2.1851380027664058511513169485832
 

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 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 Rosenbrock23.H.

Constructor & Destructor Documentation

◆ Rosenbrock23()

Rosenbrock23 ( const ODESystem ode,
const dictionary dict 
)

Construct from ODE.

Definition at line 64 of file Rosenbrock23.C.

Member Function Documentation

◆ TypeName()

TypeName ( "Rosenbrock23"  )

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 83 of file Rosenbrock23.C.

References Foam::constant::physicoChemical::c2, 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 149 of file Rosenbrock23.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 Rosenbrock23.H.

◆ k2_

scalarField k2_
mutableprivate

Definition at line 71 of file Rosenbrock23.H.

◆ k3_

scalarField k3_
mutableprivate

Definition at line 72 of file Rosenbrock23.H.

◆ err_

scalarField err_
mutableprivate

Definition at line 73 of file Rosenbrock23.H.

◆ dydx_

scalarField dydx_
mutableprivate

Definition at line 74 of file Rosenbrock23.H.

◆ dfdx_

scalarField dfdx_
mutableprivate

Definition at line 75 of file Rosenbrock23.H.

◆ dfdy_

scalarSquareMatrix dfdy_
mutableprivate

Definition at line 76 of file Rosenbrock23.H.

◆ a_

scalarSquareMatrix a_
mutableprivate

Definition at line 77 of file Rosenbrock23.H.

◆ pivotIndices_

labelList pivotIndices_
mutableprivate

Definition at line 78 of file Rosenbrock23.H.

◆ a21

const scalar a21 = 1
staticprivate

Definition at line 81 of file Rosenbrock23.H.

◆ a31

const scalar a31 = 1
staticprivate

Definition at line 81 of file Rosenbrock23.H.

◆ a32

const scalar a32 = 0
staticprivate

Definition at line 81 of file Rosenbrock23.H.

◆ c21

const scalar c21 = -1.0156171083877702091975600115545
staticprivate

Definition at line 82 of file Rosenbrock23.H.

◆ c31

const scalar c31 = 4.0759956452537699824805835358067
staticprivate

Definition at line 82 of file Rosenbrock23.H.

◆ c32

const scalar c32 = 9.2076794298330791242156818474003
staticprivate

Definition at line 82 of file Rosenbrock23.H.

◆ b1

const scalar b1 = 1
staticprivate

Definition at line 83 of file Rosenbrock23.H.

◆ b2

const scalar b2 = 6.1697947043828245592553615689730
staticprivate

Definition at line 83 of file Rosenbrock23.H.

◆ b3

const scalar b3 = -0.4277225654321857332623837380651
staticprivate

Definition at line 83 of file Rosenbrock23.H.

◆ e1

const scalar e1 = 0.5
staticprivate

Definition at line 84 of file Rosenbrock23.H.

◆ e2

const scalar e2 = -2.9079558716805469821718236208017
staticprivate

Definition at line 84 of file Rosenbrock23.H.

◆ e3

const scalar e3 = 0.2235406989781156962736090927619
staticprivate

Definition at line 84 of file Rosenbrock23.H.

◆ gamma

const scalar gamma = 0.43586652150845899941601945119356
staticprivate

Definition at line 85 of file Rosenbrock23.H.

◆ c2

const scalar c2 = 0.43586652150845899941601945119356
staticprivate

Definition at line 86 of file Rosenbrock23.H.

◆ c3

const scalar c3
staticprivate

Definition at line 86 of file Rosenbrock23.H.

◆ d1

const scalar d1 = 0.43586652150845899941601945119356
staticprivate

Definition at line 87 of file Rosenbrock23.H.

◆ d2

const scalar d2 = 0.24291996454816804366592249683314
staticprivate

Definition at line 87 of file Rosenbrock23.H.

◆ d3

const scalar d3 = 2.1851380027664058511513169485832
staticprivate

Definition at line 87 of file Rosenbrock23.H.


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