L-stable embedded Rosenbrock ODE solver of order (2)3. More...
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... | |
![]() | |
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, 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... | |
![]() | |
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 autoPtr< ODESolver > | New (const ODESystem &ode, const dictionary &dict) |
Select null constructed. More... | |
![]() | |
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... | |
![]() | |
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... | |
L-stable embedded Rosenbrock ODE solver of order (2)3.
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
Definition at line 63 of file Rosenbrock23.H.
Rosenbrock23 | ( | const ODESystem & | ode, |
const dictionary & | dict | ||
) |
Construct from ODE.
Definition at line 64 of file Rosenbrock23.C.
TypeName | ( | "Rosenbrock23" | ) |
Runtime type information.
|
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().
|
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.
|
inline |
Inherit solve from ODESolver.
Definition at line 178 of file ODESolver.H.
void solve |
Inherit solve from ODESolver.
Definition at line 86 of file ODESolver.C.
void solve |
Inherit solve from ODESolver.
Definition at line 99 of file ODESolver.C.
|
mutableprivate |
Definition at line 70 of file Rosenbrock23.H.
|
mutableprivate |
Definition at line 71 of file Rosenbrock23.H.
|
mutableprivate |
Definition at line 72 of file Rosenbrock23.H.
|
mutableprivate |
Definition at line 73 of file Rosenbrock23.H.
|
mutableprivate |
Definition at line 74 of file Rosenbrock23.H.
|
mutableprivate |
Definition at line 75 of file Rosenbrock23.H.
|
mutableprivate |
Definition at line 76 of file Rosenbrock23.H.
|
mutableprivate |
Definition at line 77 of file Rosenbrock23.H.
|
mutableprivate |
Definition at line 78 of file Rosenbrock23.H.
|
staticprivate |
Definition at line 81 of file Rosenbrock23.H.
|
staticprivate |
Definition at line 81 of file Rosenbrock23.H.
|
staticprivate |
Definition at line 81 of file Rosenbrock23.H.
|
staticprivate |
Definition at line 82 of file Rosenbrock23.H.
|
staticprivate |
Definition at line 82 of file Rosenbrock23.H.
|
staticprivate |
Definition at line 82 of file Rosenbrock23.H.
|
staticprivate |
Definition at line 83 of file Rosenbrock23.H.
|
staticprivate |
Definition at line 83 of file Rosenbrock23.H.
|
staticprivate |
Definition at line 83 of file Rosenbrock23.H.
|
staticprivate |
Definition at line 84 of file Rosenbrock23.H.
|
staticprivate |
Definition at line 84 of file Rosenbrock23.H.
|
staticprivate |
Definition at line 84 of file Rosenbrock23.H.
|
staticprivate |
Definition at line 85 of file Rosenbrock23.H.
|
staticprivate |
Definition at line 86 of file Rosenbrock23.H.
|
staticprivate |
Definition at line 86 of file Rosenbrock23.H.
|
staticprivate |
Definition at line 87 of file Rosenbrock23.H.
|
staticprivate |
Definition at line 87 of file Rosenbrock23.H.
|
staticprivate |
Definition at line 87 of file Rosenbrock23.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.