Base for a set of schemes which integrate simple ODEs which arise from semi-implicit rate expressions. More...
Public Member Functions | |
TypeName ("integrationScheme") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, integrationScheme, word,(),()) | |
Declare runtime constructor selection table. More... | |
integrationScheme () | |
Construct. More... | |
virtual autoPtr< integrationScheme > | clone () const =0 |
Construct and return clone. More... | |
virtual | ~integrationScheme () |
Destructor. More... | |
template<class Type > | |
Type | delta (const Type &phi, const scalar dt, const Type &Alpha, const scalar Beta) const |
Perform the integration. More... | |
template<class Type > | |
Type | partialDelta (const Type &phi, const scalar dt, const Type &Alpha, const scalar Beta, const Type &alphai, const scalar betai) const |
Perform a part of the integration. More... | |
virtual scalar | dtEff (const scalar dt, const scalar Beta) const =0 |
Return the integration effective time step. More... | |
virtual scalar | sumDtEff (const scalar dt, const scalar Beta) const =0 |
Return the integral of the effective time step. More... | |
Static Public Member Functions | |
static autoPtr< integrationScheme > | New (const word &phiName, const dictionary &dict) |
Select an integration scheme. More... | |
template<class Type > | |
static Type | explicitDelta (const Type &phi, const scalar dtEff, const Type &Alpha, const scalar Beta) |
Perform the integration explicitly. More... | |
Base for a set of schemes which integrate simple ODEs which arise from semi-implicit rate expressions.
The methods are defined in terms of the effective time-step by which the explicit rate is multiplied. The effective time-step is a function of the actual time step and the implicit coefficient, which must be implemented in each derived scheme.
This class also facilitates integration in stages. If the explicit and implicit coefficients, and , are a summation of differing contributions, and , then the integration can be split up to determine the effect of each contribution.
These partial calculations are defined in terms of the integral of the effective time-step, , which is also implemented in every derivation.
Definition at line 88 of file integrationScheme.H.
Construct.
Definition at line 38 of file integrationScheme.C.
|
virtual |
Destructor.
Definition at line 44 of file integrationScheme.C.
TypeName | ( | "integrationScheme" | ) |
Runtime type information.
declareRunTimeSelectionTable | ( | autoPtr | , |
integrationScheme | , | ||
word | , | ||
() | , | ||
() | |||
) |
Declare runtime constructor selection table.
|
pure virtual |
Construct and return clone.
Implemented in Euler, and analytical.
|
static |
Select an integration scheme.
Definition at line 31 of file integrationSchemeNew.C.
References dict, Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::Info, and Foam::nl.
|
inlinestatic |
Perform the integration explicitly.
Definition at line 31 of file integrationSchemeTemplates.C.
References integrationScheme::dtEff().
|
inline |
Perform the integration.
Definition at line 44 of file integrationSchemeTemplates.C.
|
inline |
Perform a part of the integration.
Definition at line 57 of file integrationSchemeTemplates.C.
|
pure virtual |
Return the integration effective time step.
Implemented in Euler, and analytical.
Referenced by integrationScheme::explicitDelta().
|
pure virtual |
Return the integral of the effective time step.
Implemented in Euler, and analytical.