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


Public Member Functions | |
Constructor and setup | |
| ParabolicModule (const MPIEnsemble &mpi_ensemle, const OfflineData< dim, Number > &offline_data, const HyperbolicSystem &hyperbolic_system, const ParabolicSystem ¶bolic_system, const InitialValues< HyperbolicDescription, dim, Number > &initial_values, const std::string &subsection="/ParabolicModule") | |
| void | prepare () override |
Functions for performing explicit time steps | |
| void | reinit_state_vector (StateVector< Number > &state_vector) const override |
| void | prepare_state_vector (StateVector< Number > &state_vector, Number t) const override |
| Number | backward_euler_step (const StateVector< Number > &old_state_vector, StageVectors stage_state_vectors, StageWeights stage_weights, StateVector< Number > &new_state_vector, Number t, Number tau, Number tau_max=std::numeric_limits< Number >::max()) const override |
| Number | crank_nicolson_step (const StateVector< Number > &old_state_vector, StateVector< Number > &new_state_vector, Number t, Number tau, Number tau_max=std::numeric_limits< Number >::max()) const override |
Information and statistics | |
| void | print_solver_statistics (std::ostream &output) const override |
Functions for performing implicit time steps | |
Typedefs and constexpr constants | |
| using | StageVectors = typename Interface::ParabolicModule< dim, Number >::StageVectors |
| using | StageWeights = typename Interface::ParabolicModule< dim, Number >::StageWeights |
| using | HyperbolicSystem = typename HyperbolicDescription::HyperbolicSystem |
| using | View = typename HyperbolicSystem::template View< dim, Number > |
| using | ParabolicSystem = EulerPoisson::ParabolicSystem |
| using | BlockHostVector = dealii::LinearAlgebra::distributed::BlockVector< Number > |
| using | ScalarNumber = typename View::ScalarNumber |
| using | state_type = typename View::state_type |
| static constexpr auto | problem_dimension = View::problem_dimension |
Implicit backward-Euler time stepping for the parabolic limiting equation for the Euler-Poisson system
Definition at line 135 of file parabolic_module.h.
| using ryujin::EulerPoisson::ParabolicModule< HyperbolicDescription, dim, Number >::StageVectors = typename Interface::ParabolicModule<dim, Number>::StageVectors |
Definition at line 143 of file parabolic_module.h.
| using ryujin::EulerPoisson::ParabolicModule< HyperbolicDescription, dim, Number >::StageWeights = typename Interface::ParabolicModule<dim, Number>::StageWeights |
Definition at line 146 of file parabolic_module.h.
| using ryujin::EulerPoisson::ParabolicModule< HyperbolicDescription, dim, Number >::HyperbolicSystem = typename HyperbolicDescription::HyperbolicSystem |
Definition at line 149 of file parabolic_module.h.
| using ryujin::EulerPoisson::ParabolicModule< HyperbolicDescription, dim, Number >::View = typename HyperbolicSystem::template View<dim, Number> |
Definition at line 151 of file parabolic_module.h.
| using ryujin::EulerPoisson::ParabolicModule< HyperbolicDescription, dim, Number >::ParabolicSystem = EulerPoisson::ParabolicSystem |
Definition at line 153 of file parabolic_module.h.
| using ryujin::EulerPoisson::ParabolicModule< HyperbolicDescription, dim, Number >::BlockHostVector = dealii::LinearAlgebra::distributed::BlockVector<Number> |
Definition at line 155 of file parabolic_module.h.
| using ryujin::EulerPoisson::ParabolicModule< HyperbolicDescription, dim, Number >::ScalarNumber = typename View::ScalarNumber |
Definition at line 158 of file parabolic_module.h.
| using ryujin::EulerPoisson::ParabolicModule< HyperbolicDescription, dim, Number >::state_type = typename View::state_type |
Definition at line 162 of file parabolic_module.h.
| ryujin::EulerPoisson::ParabolicModule< HyperbolicDescription, dim, Number >::ParabolicModule | ( | const MPIEnsemble & | mpi_ensemle, |
| const OfflineData< dim, Number > & | offline_data, | ||
| const HyperbolicSystem & | hyperbolic_system, | ||
| const ParabolicSystem & | parabolic_system, | ||
| const InitialValues< HyperbolicDescription, dim, Number > & | initial_values, | ||
| const std::string & | subsection = "/ParabolicModule< HyperbolicDescription, dim, Number >" |
||
| ) |
Constructor.
Definition at line 31 of file parabolic_module.template.h.
References ryujin::Library< Base, Args >::create(), ryujin::EulerPoisson::no_restart, and ryujin::Library< Base, Args >::select().
|
override |
Prepare time stepping. A call to prepare() allocates temporary storage and is necessary before any of the following time-stepping functions can be called.
Definition at line 121 of file parabolic_module.template.h.
References ryujin::cg_q1, and ryujin::dg_q1.
|
override |
(Re)initialize the parabolic state vector component of the state vector.
Definition at line 233 of file parabolic_module.template.h.
|
override |
This function preprocesses a given state vector U in preparation for a high order IMEX time step. This function exists because some time stepping variants have to precompute quantities before we can perform an IMEX step. In addition, this function is called whenever we perform a mesh transfer or output operation.
Definition at line 252 of file parabolic_module.template.h.
References ryujin::EulerPoisson::correction, ryujin::dynamic_state, ryujin::EulerPoisson::full_restart, and ryujin::EulerPoisson::static_full_restart.
|
overridevirtual |
Given a reference to a previous state vector old_state_vector at time t and a time-step size tau perform an implicit backward euler step (and store the result in new_state_vector).
The function takes an optional list of states stage_state_vectors together with a list of weights stage_weights to construct a modified high-order right-hand side / flux.
Implements ryujin::Interface::ParabolicModule< dim, Number >.
Definition at line 300 of file parabolic_module.template.h.
|
overridevirtual |
Given a reference to a previous state vector old_U at time t and a time-step size tau perform an implicit Crank-Nicolson step (and store the result in new_U).
This variant is used in the TimeIntegrator class for the Strang split variants.
Implements ryujin::Interface::ParabolicModule< dim, Number >.
Definition at line 383 of file parabolic_module.template.h.
References ryujin::step.
|
override |
Print a status line with solver statistics. This function is used for constructing the status message displayed periodically in the Scheduler.
Definition at line 425 of file parabolic_module.template.h.
|
staticconstexpr |
Definition at line 160 of file parabolic_module.h.