![]() |
ryujin 2.5.0 revision c64172211cf21344cb9b9b0f3a1266aa6400d392
|
#include <include/ryujin/discretization/time_integrator.h>


Public Member Functions | |
Constructor and setup | |
| TimeIntegrator (const MPIEnsemble &mpi_ensemble, const Interface::HyperbolicSystem &hyperbolic_system, const Interface::ParabolicSystem ¶bolic_system, const Interface::HyperbolicModule< dim, Number > &hyperbolic_module, const Interface::ParabolicModule< dim, Number > ¶bolic_module, const std::string &subsection="/TimeIntegrator") | |
| void | prepare () override |
Functions for performing explicit time steps | |
| void | prepare_state_vector (StateVector< Number > &state_vector, Number t) const override |
| Number | step (StateVector< Number > &state_vector, Number t, Number tau, Number tau_max=std::numeric_limits< Number >::max()) override |
Setup | |
Functions for performing time steps | |
Additional Inherited Members | |
Protected Member Functions inherited from ryujin::Interface::TimeIntegrator< dim, Number > | |
| TimeIntegrator (const std::string &subsection) | |
Protected Attributes inherited from ryujin::Interface::TimeIntegrator< dim, Number > | |
| std::string | time_stepping_scheme_name_ |
| Number | efficiency_ |
The TimeIntegrator class implements Interface::TimeIntegrator with IMEX timestepping strategies based on explicit and diagonally-implicit Runge Kutta schemes.
Definition at line 265 of file time_integrator.h.
| ryujin::TimeIntegrator< dim, Number >::TimeIntegrator | ( | const MPIEnsemble & | mpi_ensemble, |
| const Interface::HyperbolicSystem & | hyperbolic_system, | ||
| const Interface::ParabolicSystem & | parabolic_system, | ||
| const Interface::HyperbolicModule< dim, Number > & | hyperbolic_module, | ||
| const Interface::ParabolicModule< dim, Number > & | parabolic_module, | ||
| const std::string & | subsection = "/TimeIntegrator< dim, Number >" |
||
| ) |
Constructor.
|
overridevirtual |
Prepare time integration. A call to prepare() allocates temporary storage and is necessary before any of the following time-stepping functions can be called.
Implements ryujin::Interface::TimeIntegrator< dim, Number >.
|
overridevirtual |
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.
Implements ryujin::Interface::TimeIntegrator< dim, Number >.
|
overridevirtual |
Given a reference to a previous state vector U at time t performs a time step (and store the result in U). The function returns the time step size tau with which the update was performed.
If tau is nonzero the step is performed with tau. A Restart signalled during such a step is passed on to the caller. If tau is 0 the time step size is chosen such that it is less than or equal to tau_max and the run time parameter "tau_max".
state_vector has to be prepared with the prepare_state_vector() function prior to calling the step() function. Implements ryujin::Interface::TimeIntegrator< dim, Number >.