Public Member Functions | List of all members
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...
 
- 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...
 

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 ( const ODESystem ode,
const dictionary dict 
)

Construct from ODE.

Definition at line 64 of file Rosenbrock23.C.

References Rosenbrock23::solve().

Here is the call graph for this function:

Member Function Documentation

TypeName ( "Rosenbrock23"  )

Runtime type information.

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 ODESystem::derivatives(), forAll, ODESystem::jacobian(), Foam::LUBacksubstitute(), Foam::LUDecompose(), ODESolver::n_, ODESolver::normalizeError(), and ODESolver::odes_.

Referenced by Rosenbrock23::Rosenbrock23().

Here is the call graph for this function:

Here is the caller graph for this function:

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 ODESolver::odes_, and adaptiveSolver::solve().

Here is the call graph for this function:


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