ryujin 2.5.0 revision c64172211cf21344cb9b9b0f3a1266aa6400d392
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 tau, Number tau_max=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 description-free interface of a TimeIntegrator: it advances the state vector of a Simulation by one time step.

In addition to the time step the interface holds the name and the efficiency of the time-stepping scheme.

Definition at line 31 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 107 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() is necessary before any of the following 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

Preprocess a given state vector state_vector at time t 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  tau,
Number  tau_max = std::numeric_limits< Number >::max() 
)
pure virtual

Given a reference to a previous state vector state_vector at time t perform a time step (and store the result in state_vector). The function returns the time step size tau with which the update was performed.

If tau is nonzero the step is performed with tau. If tau is 0 the time step size is chosen such that it is less than or equal to tau_max.

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

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

Definition at line 113 of file time_integrator.h.

◆ efficiency_

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

Definition at line 114 of file time_integrator.h.


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