Public Member Functions | Static Public Member Functions | List of all members
integrationScheme Class Referenceabstract

Base for a set of schemes which integrate simple ODEs which arise from semi-implcit rate expressions. More...

Inheritance diagram for integrationScheme:
Inheritance graph
[legend]

Public Member Functions

 TypeName ("integrationScheme")
 
 declareRunTimeSelectionTable (autoPtr, integrationScheme, word,(),())
 
 integrationScheme ()
 
virtual autoPtr< integrationSchemeclone () const =0
 
virtual ~integrationScheme ()
 
template<class Type >
Type delta (const Type &phi, const scalar dt, const Type &Alpha, const scalar Beta) const
 
template<class Type >
Type partialDelta (const Type &phi, const scalar dt, const Type &Alpha, const scalar Beta, const Type &alphai, const scalar betai) const
 
virtual scalar dtEff (const scalar dt, const scalar Beta) const =0
 
virtual scalar sumDtEff (const scalar dt, const scalar Beta) const =0
 

Static Public Member Functions

static autoPtr< integrationSchemeNew (const word &phiName, const dictionary &dict)
 
template<class Type >
static Type explicitDelta (const Type &phi, const scalar dtEff, const Type &Alpha, const scalar Beta)
 

Detailed Description

Base for a set of schemes which integrate simple ODEs which arise from semi-implcit rate expressions.

\[ \frac{d \phi}{d t} = A - B \phi \]

The methods are defined in terms of the effective time-step $\Delta t_e$ 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.

\[ \Delta t_e = f(\Delta t, B) \]

\[ \Delta \phi = (A - B \phi^n) \Delta t_e \]

This class also facilitates integration in stages. If the explicit and implicit coefficients, $A$ and $B$, are a summation of differing contributions, $\sum \alpha_i$ and $\sum \beta_i$, then the integration can be split up to determine the effect of each contribution.

\[ \frac{d \phi_i}{d t} = \alpha_i - \beta_i \phi \]

\[ \Delta \phi_i = \alpha_i \Delta t - \beta_i \int_0^{\Delta t} \phi d t \]

\[ \Delta \phi_i = (\alpha_i - \beta_i \phi^n) \Delta t - (A - B \phi^n) \int_0^{\Delta t} t_e dt \]

These partial calculations are defined in terms of the integral of the effective time-step, $\int_0^{\Delta t} t_e dt$, which is also implemented in every derivation.

Source files

Definition at line 86 of file integrationScheme.H.

Constructor & Destructor Documentation

◆ integrationScheme()

Definition at line 33 of file integrationScheme.C.

◆ ~integrationScheme()

~integrationScheme ( )
virtual

Definition at line 39 of file integrationScheme.C.

Member Function Documentation

◆ TypeName()

TypeName ( "integrationScheme"  )

◆ declareRunTimeSelectionTable()

declareRunTimeSelectionTable ( autoPtr  ,
integrationScheme  ,
word  ,
()  ,
()   
)

◆ clone()

virtual autoPtr<integrationScheme> clone ( ) const
pure virtual

Implemented in analytical, and Euler.

◆ New()

Foam::autoPtr< Foam::integrationScheme > New ( const word phiName,
const dictionary dict 
)
static

Definition at line 28 of file integrationSchemeNew.C.

References Foam::abort(), dict, Foam::endl(), Foam::FatalIOError, FatalIOErrorInLookup, and Foam::Info.

Here is the call graph for this function:

◆ explicitDelta()

Type explicitDelta ( const Type &  phi,
const scalar  dtEff,
const Type &  Alpha,
const scalar  Beta 
)
inlinestatic

Definition at line 27 of file integrationSchemeTemplates.C.

References phi.

◆ delta()

Type delta ( const Type &  phi,
const scalar  dt,
const Type &  Alpha,
const scalar  Beta 
) const
inline

Definition at line 40 of file integrationSchemeTemplates.C.

References phi.

◆ partialDelta()

Type partialDelta ( const Type &  phi,
const scalar  dt,
const Type &  Alpha,
const scalar  Beta,
const Type &  alphai,
const scalar  betai 
) const
inline

Definition at line 53 of file integrationSchemeTemplates.C.

References phi.

◆ dtEff()

virtual scalar dtEff ( const scalar  dt,
const scalar  Beta 
) const
pure virtual

Implemented in analytical, and Euler.

◆ sumDtEff()

virtual scalar sumDtEff ( const scalar  dt,
const scalar  Beta 
) const
pure virtual

Implemented in Euler, and analytical.


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