ryujin 2.5.0 revision 3a6c8d57210175dea14d8116e1fe878f349f8c1c
Loading...
Searching...
No Matches
List of all members
ryujin::Interface::TimeIntegrator< dim, Number > Class Template Referenceabstract

#include <include/ryujin/interface/time_integrator.h>

Inheritance diagram for ryujin::Interface::TimeIntegrator< dim, Number >:
Inheritance graph
[legend]
Collaboration diagram for ryujin::Interface::TimeIntegrator< dim, Number >:
Collaboration graph
[legend]

Public Member Functions

Setup
virtual void prepare ()=0
 
Functions for performing time steps
virtual void prepare_state_vector (StateVector< Number > &state_vector, Number t) const =0
 
virtual Number step (StateVector< Number > &state_vector, Number t, Number t_final=std::numeric_limits< Number >::max())=0
 

Information and statistics

std::string time_stepping_scheme_name_
 
Number efficiency_
 
 TimeIntegrator (const std::string &subsection)
 

Detailed Description

template<int dim, typename Number = double>
class ryujin::Interface::TimeIntegrator< dim, Number >

The interface of a TimeIntegrator: a time stepping scheme that advances a state vector by combining the step functions of a hyperbolic and a parabolic module.

Definition at line 29 of file time_integrator.h.

Constructor & Destructor Documentation

◆ TimeIntegrator()

template<int dim, typename Number = double>
ryujin::Interface::TimeIntegrator< dim, Number >::TimeIntegrator ( const std::string &  subsection)
inlineexplicitprotected

The name of the selected time-stepping scheme.

Note
Valid once prepare() has been called. The efficiency of the selected time-stepping scheme expressed as the ratio of step size of the combined method to step size of an elementary forward Euler step. For example, SSPRK33 has an efficiency ratio of 1 whereas ERK33 has an efficiency ratio of 3.
Valid once prepare() has been called. Constructor.

Definition at line 102 of file time_integrator.h.

Member Function Documentation

◆ prepare()

template<int dim, typename Number = double>
virtual void ryujin::Interface::TimeIntegrator< dim, Number >::prepare ( )
pure virtual

Prepare time integration. A call to prepare() allocates temporary storage and is necessary before any of the following time-stepping functions can be called.

Implemented in ryujin::TimeIntegrator< dim, Number >.

◆ prepare_state_vector()

template<int dim, typename Number = double>
virtual void ryujin::Interface::TimeIntegrator< dim, Number >::prepare_state_vector ( StateVector< Number > &  state_vector,
Number  t 
) const
pure virtual

This function preprocesses a given state vector for time stepping. It has to be called prior to step() to ensure that precomputed values are in place.

Implemented in ryujin::TimeIntegrator< dim, Number >.

◆ step()

template<int dim, typename Number = double>
virtual Number ryujin::Interface::TimeIntegrator< dim, Number >::step ( StateVector< Number > &  state_vector,
Number  t,
Number  t_final = std::numeric_limits< Number >::max() 
)
pure virtual

Given a reference to a previous state vector performs a time step (and store the result in state_vector). The function returns the chosen time step size tau. The time step size tau is selected such that $t + tau <= t_final$.

Precondition
The state_vector has to be prepared with the prepare_state_vector() function prior to calling the step() function.

Implemented in ryujin::TimeIntegrator< dim, Number >.

Member Data Documentation

◆ time_stepping_scheme_name_

template<int dim, typename Number = double>
std::string ryujin::Interface::TimeIntegrator< dim, Number >::time_stepping_scheme_name_
protected

The name of the selected time-stepping scheme.

Note
A derived class sets it in prepare().

Definition at line 113 of file time_integrator.h.

◆ efficiency_

template<int dim, typename Number = double>
Number ryujin::Interface::TimeIntegrator< dim, Number >::efficiency_
protected

The efficiency of the selected time-stepping scheme.

Note
A derived class sets it in prepare().

Definition at line 120 of file time_integrator.h.


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