![]() |
ryujin 2.1.1 revision ee5cbcbf2346c1299c942d0e1f13b46449973c18
|
#include <source/time_integrator.h>


Public Types | |
Typedefs and constexpr constants | |
| using | HyperbolicSystem = typename Description::HyperbolicSystem |
| using | ParabolicSystem = typename Description::ParabolicSystem |
| using | View = typename HyperbolicSystem::template View< dim, Number > |
| using | StateVector = typename View::StateVector |
Public Member Functions | |
Constructor and setup | |
| TimeIntegrator (const MPIEnsemble &mpi_ensemble, const OfflineData< dim, Number > &offline_data, const HyperbolicModule< Description, dim, Number > &hyperbolic_module, const ParabolicModule< Description, dim, Number > ¶bolic_module, const std::string &subsection="/TimeIntegrator") | |
| void | prepare () |
Functions for performing explicit time steps | |
| void | prepare_state_vector (StateVector &state_vector, Number t) const |
| Number | step (StateVector &state_vector, Number t, Number t_final=std::numeric_limits< Number >::max()) |
Information and statistics | |
| const auto & | time_stepping_scheme () const |
| const auto & | efficiency () const |
The TimeIntegrator class implements IMEX timestepping strategies based on explicit and diagonally-implicit Runge Kutta schemes.
Definition at line 253 of file time_integrator.h.
| using ryujin::TimeIntegrator< Description, dim, Number >::HyperbolicSystem = typename Description::HyperbolicSystem |
Definition at line 261 of file time_integrator.h.
| using ryujin::TimeIntegrator< Description, dim, Number >::ParabolicSystem = typename Description::ParabolicSystem |
Definition at line 262 of file time_integrator.h.
| using ryujin::TimeIntegrator< Description, dim, Number >::View = typename HyperbolicSystem::template View<dim, Number> |
Definition at line 264 of file time_integrator.h.
| using ryujin::TimeIntegrator< Description, dim, Number >::StateVector = typename View::StateVector |
Definition at line 266 of file time_integrator.h.
| ryujin::TimeIntegrator< Description, dim, Number >::TimeIntegrator | ( | const MPIEnsemble & | mpi_ensemble, |
| const OfflineData< dim, Number > & | offline_data, | ||
| const HyperbolicModule< Description, dim, Number > & | hyperbolic_module, | ||
| const ParabolicModule< Description, dim, Number > & | parabolic_module, | ||
| const std::string & | subsection = "/TimeIntegrator< Description, dim, Number >" |
||
| ) |
Constructor.
Definition at line 38 of file time_integrator.template.h.
References ryujin::cruise_control, ryujin::erk_33, and ryujin::strang_erk_33_cn.
| void ryujin::TimeIntegrator< Description, dim, Number >::prepare | ( | ) |
Prepare time integration. A call to prepare() allocates temporary storage and is necessary before any of the following time-stepping functions can be called.
Definition at line 94 of file time_integrator.template.h.
References ryujin::erk_11, ryujin::erk_22, ryujin::erk_33, ryujin::erk_43, ryujin::erk_54, ryujin::imex_11, ryujin::imex_22, ryujin::imex_33, ryujin::ssprk_22, ryujin::ssprk_33, ryujin::strang_erk_33_cn, ryujin::strang_erk_43_cn, and ryujin::strang_ssprk_33_cn.
| void ryujin::TimeIntegrator< Description, dim, Number >::prepare_state_vector | ( | StateVector & | state_vector, |
| Number | t | ||
| ) | const |
This function preprocesses a given state vector U for time stepping. It has to be called prior to step() to ensure that precomputed values are in place.
Definition at line 240 of file time_integrator.template.h.
| Number ryujin::TimeIntegrator< Description, dim, Number >::step | ( | StateVector & | state_vector, |
| Number | t, | ||
| Number | t_final = std::numeric_limits<Number>::max() |
||
| ) |
Given a reference to a previous state vector U performs an explicit time step (and store the result in U). The function returns the chosen time step size tau. The time step size tau is selected such that $t + tau <= t_final$.
state_vector has to be prepared with the prepare_state_vector() function prior to calling the step() function. Definition at line 257 of file time_integrator.template.h.
References ryujin::erk_11, ryujin::ssprk_22, and ryujin::ssprk_33.
|
inline |
The selected time-stepping scheme.
Definition at line 338 of file time_integrator.h.
|
inline |
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.
Definition at line 346 of file time_integrator.h.