Public Member Functions | List of all members
Euler< Type > Class Template Reference

Euler-implicit integration. More...

Inheritance diagram for Euler< Type >:
Inheritance graph
[legend]
Collaboration diagram for Euler< Type >:
Collaboration graph
[legend]

Public Member Functions

 TypeName ("Euler")
 Runtime type information. More...
 
 Euler (const word &phiName, const dictionary &dict)
 Construct from components. More...
 
 Euler (const Euler &is)
 Copy constructor. More...
 
virtual autoPtr< IntegrationScheme< Type > > clone () const
 Construct and return clone. More...
 
virtual ~Euler ()
 Destructor. More...
 
virtual IntegrationScheme< Type >::integrationResult integrate (const Type &phi, const scalar dt, const Type &alphaBeta, const scalar beta) const
 Perform the integration. More...
 
 TypeName ("Euler")
 Runtime type information. More...
 
 Euler (const ODESystem &ode, const dictionary &dict)
 Construct from ODESystem. More...
 
virtual ~Euler ()
 Destructor. More...
 
virtual bool resize ()
 Resize the ODE solver. More...
 
virtual 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...
 
virtual 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...
 
label nEqns () const
 Return the number of equations to solve. More...
 
scalarFieldabsTol ()
 Return access to the absolute tolerance field. More...
 
scalarFieldrelTol ()
 Return access to the relative tolerance field. More...
 
template<class Type >
void resizeField (UList< Type > &f) const
 
void resizeMatrix (scalarSquareMatrix &m) const
 
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...
 
bool resize (const label n)
 Resize the ODE solver. More...
 
void solve (const ODESystem &ode, scalar &x, scalarField &y, scalar &dxTry) const
 Solve the ODE system and the update the state. More...
 
- Public Member Functions inherited from IntegrationScheme< Type >
 TypeName ("integrationScheme")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, IntegrationScheme, dictionary,(const word &phiName, const dictionary &dict),(phiName, dict))
 Declare runtime constructor selection table. More...
 
 IntegrationScheme (const word &phiName, const dictionary &dict)
 Construct from components. More...
 
 IntegrationScheme (const IntegrationScheme &is)
 Copy constructor. More...
 
virtual ~IntegrationScheme ()
 Destructor. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from ODESolver
static autoPtr< ODESolverNew (const ODESystem &ode, const dictionary &dict)
 Select null constructed. More...
 
template<class Type >
static void resizeField (UList< Type > &f, const label n)
 
- Static Public Member Functions inherited from IntegrationScheme< Type >
static autoPtr< IntegrationSchemeNew (const word &phiName, const dictionary &dict)
 Return a reference to the selected radiation model. 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...
 
const label maxN_
 Maximum size of the ODESystem. More...
 
label n_
 Size of the ODESystem (adjustable) 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

template<class Type>
class Foam::Euler< Type >

Euler-implicit integration.

Euler ODE solver of order (0)1.

The method calculates the new state from:

\[ y_{n+1} = y_n + \delta_x f \]

The error is estimated directly from the change in the solution, i.e. the difference between the 0th and 1st order solutions:

\[ err_{n+1} = y_{n+1} - y_n \]

Source files

Definition at line 46 of file Euler.H.

Constructor & Destructor Documentation

◆ Euler() [1/3]

Euler ( const word phiName,
const dictionary dict 
)

Construct from components.

Definition at line 32 of file Euler.C.

◆ Euler() [2/3]

Euler ( const Euler< Type > &  is)

Copy constructor.

Definition at line 42 of file Euler.C.

◆ ~Euler() [1/2]

~Euler ( )
virtual

Destructor.

Definition at line 51 of file Euler.C.

References Euler< Type >::integrate().

Referenced by Euler< Type >::clone().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Euler() [3/3]

Euler ( const ODESystem ode,
const dictionary dict 
)

Construct from ODESystem.

Definition at line 40 of file Euler.C.

◆ ~Euler() [2/2]

virtual ~Euler ( )
inlinevirtual

Destructor.

Definition at line 82 of file Euler.H.

References Euler< Type >::resize(), Euler< Type >::solve(), ODESolver::solve(), x, y, and Foam::y0().

Here is the call graph for this function:

Member Function Documentation

◆ TypeName() [1/2]

TypeName ( "Euler< Type >"  )

Runtime type information.

◆ clone()

virtual autoPtr<IntegrationScheme<Type> > clone ( ) const
inlinevirtual

Construct and return clone.

Implements IntegrationScheme< Type >.

Definition at line 65 of file Euler.H.

References beta(), Euler< Type >::integrate(), phi, and Euler< Type >::~Euler().

Here is the call graph for this function:

◆ integrate()

Foam::IntegrationScheme< Type >::integrationResult integrate ( const Type &  phi,
const scalar  dt,
const Type &  alphaBeta,
const scalar  beta 
) const
virtual

Perform the integration.

Implements IntegrationScheme< Type >.

Definition at line 60 of file Euler.C.

References IntegrationScheme< Type >::integrationResult::average(), and IntegrationScheme< Type >::integrationResult::value().

Referenced by Euler< Type >::clone(), and Euler< Type >::~Euler().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TypeName() [2/2]

TypeName ( "Euler< Type >"  )

Runtime type information.

◆ resize()

bool resize ( )
virtual

Resize the ODE solver.

Implements ODESolver.

Definition at line 50 of file Euler.C.

References ODESolver::n_, adaptiveSolver::resize(), ODESolver::resize(), ODESolver::resizeField(), and Euler< Type >::solve().

Referenced by Euler< Type >::~Euler().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ solve() [1/2]

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 68 of file Euler.C.

References forAll, and ODESolver::normalizeError().

Referenced by Euler< Type >::resize(), and Euler< Type >::~Euler().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ solve() [2/2]

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 93 of file Euler.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: