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

Foam::SIBS. More...

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

Public Member Functions

 TypeName ("SIBS")
 Runtime type information. More...
 
 SIBS (const ODESystem &ode, const dictionary &dict)
 Construct from ODE. More...
 
void solve (scalar &x, scalarField &y, scalar &dxTry) const
 Solve the ODE system as far as possible upto dxTry. 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...
 

Private Member Functions

void SIMPR (const scalar xStart, const scalarField &y, const scalarField &dydx, const scalarField &dfdx, const scalarSquareMatrix &dfdy, const scalar deltaX, const label nSteps, scalarField &yEnd) const
 
void polyExtrapolate (const label iest, const scalar xest, const scalarField &yest, scalarField &yz, scalarField &dy, scalarField &x_p, scalarRectangularMatrix &d_p) const
 

Private Attributes

scalarField a_
 
scalarSquareMatrix alpha_
 
scalarRectangularMatrix d_p_
 
scalarField x_p_
 
scalarField err_
 
scalarField yTemp_
 
scalarField ySeq_
 
scalarField yErr_
 
scalarField dydx0_
 
scalarField dfdx_
 
scalarSquareMatrix dfdy_
 
label first_
 
label kMax_
 
label kOpt_
 
scalar epsOld_
 
scalar xNew_
 

Static Private Attributes

static const label kMaxX_ = 7
 
static const label iMaxX_ = kMaxX_ + 1
 
static const label nSeq_ [iMaxX_] = {2, 6, 10, 14, 22, 34, 50, 70}
 
static const scalar safe1 = 0.25
 
static const scalar safe2 = 0.7
 
static const scalar redMax = 1.0e-5
 
static const scalar redMin = 0.7
 
static const scalar scaleMX = 0.1
 

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

Foam::SIBS.

Bader, G. and Deuflhard, P. "A Semi-Implicit Mid-Point Rule for Stiff Systems of Ordinary Differential Equations." Numer. Math. 41, 373-398, 1983.

Source files

Definition at line 54 of file SIBS.H.

Constructor & Destructor Documentation

◆ SIBS()

SIBS ( const ODESystem ode,
const dictionary dict 
)

Construct from ODE.

Definition at line 49 of file SIBS.C.

Member Function Documentation

◆ SIMPR()

void SIMPR ( const scalar  xStart,
const scalarField y,
const scalarField dydx,
const scalarField dfdx,
const scalarSquareMatrix dfdy,
const scalar  deltaX,
const label  nSteps,
scalarField yEnd 
) const
private

Definition at line 31 of file SIMPR.C.

References Foam::constant::universal::h, Foam::LUBacksubstitute(), Foam::LUDecompose(), x, and y.

Here is the call graph for this function:

◆ polyExtrapolate()

void polyExtrapolate ( const label  iest,
const scalar  xest,
const scalarField yest,
scalarField yz,
scalarField dy,
scalarField x_p,
scalarRectangularMatrix d_p 
) const
private

Definition at line 31 of file polyExtrapolate.C.

References Foam::constant::universal::c, delta, f1, n, and x.

◆ TypeName()

TypeName ( "SIBS"  )

Runtime type information.

◆ solve()

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

Definition at line 72 of file SIBS.C.

References Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::constant::universal::h, k, Foam::mag(), Foam::max(), Foam::min(), Foam::pow(), Foam::sqr(), x, and y.

Here is the call graph for this function:

Field Documentation

◆ kMaxX_

const label kMaxX_ = 7
staticprivate

Definition at line 60 of file SIBS.H.

◆ iMaxX_

const label iMaxX_ = kMaxX_ + 1
staticprivate

Definition at line 60 of file SIBS.H.

◆ nSeq_

const label nSeq_ = {2, 6, 10, 14, 22, 34, 50, 70}
staticprivate

Definition at line 61 of file SIBS.H.

◆ safe1

const scalar safe1 = 0.25
staticprivate

Definition at line 63 of file SIBS.H.

◆ safe2

const scalar safe2 = 0.7
staticprivate

Definition at line 63 of file SIBS.H.

◆ redMax

const scalar redMax = 1.0e-5
staticprivate

Definition at line 63 of file SIBS.H.

◆ redMin

const scalar redMin = 0.7
staticprivate

Definition at line 63 of file SIBS.H.

◆ scaleMX

const scalar scaleMX = 0.1
staticprivate

Definition at line 63 of file SIBS.H.

◆ a_

scalarField a_
mutableprivate

Definition at line 65 of file SIBS.H.

◆ alpha_

scalarSquareMatrix alpha_
mutableprivate

Definition at line 66 of file SIBS.H.

◆ d_p_

scalarRectangularMatrix d_p_
mutableprivate

Definition at line 67 of file SIBS.H.

◆ x_p_

scalarField x_p_
mutableprivate

Definition at line 68 of file SIBS.H.

◆ err_

scalarField err_
mutableprivate

Definition at line 69 of file SIBS.H.

◆ yTemp_

scalarField yTemp_
mutableprivate

Definition at line 71 of file SIBS.H.

◆ ySeq_

scalarField ySeq_
mutableprivate

Definition at line 72 of file SIBS.H.

◆ yErr_

scalarField yErr_
mutableprivate

Definition at line 73 of file SIBS.H.

◆ dydx0_

scalarField dydx0_
mutableprivate

Definition at line 74 of file SIBS.H.

◆ dfdx_

scalarField dfdx_
mutableprivate

Definition at line 75 of file SIBS.H.

◆ dfdy_

scalarSquareMatrix dfdy_
mutableprivate

Definition at line 76 of file SIBS.H.

◆ first_

label first_
mutableprivate

Definition at line 78 of file SIBS.H.

◆ kMax_

label kMax_
private

Definition at line 78 of file SIBS.H.

◆ kOpt_

label kOpt_
private

Definition at line 78 of file SIBS.H.

◆ epsOld_

scalar epsOld_
mutableprivate

Definition at line 79 of file SIBS.H.

◆ xNew_

scalar xNew_
private

Definition at line 79 of file SIBS.H.


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