![]() |
ryujin 2.1.1 revision 71cdc42292164f8095c0bd62c4ea75ebcfac58fa
|
#include <source/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< Description, dim, Number > &initial_values, const std::string &subsection="/ParabolicModule") | |
| void | prepare () |
Functions for performing explicit time steps | |
| void | reinit_state_vector (StateVector &state_vector) const |
| void | prepare_state_vector (StateVector &state_vector, Number t) const |
| template<int stages> | |
| void | backward_euler_step (const StateVector &old_state_vector, const Number old_t, std::array< std::reference_wrapper< const StateVector >, stages > stage_state_vectors, const std::array< Number, stages > stage_weights, StateVector &new_state_vector, Number tau) const |
| void | crank_nicolson_step (const StateVector &old_state_vector, const Number old_t, StateVector &new_state_vector, Number tau) const |
| void | set_id_violation_strategy (const IDViolationStrategy &strategy) const |
Information and statistics | |
| void | print_solver_statistics (std::ostream &output) const |
Typedefs and constexpr constants | |
| using | HyperbolicSystem = typename Description::HyperbolicSystem |
| using | View = typename HyperbolicSystem::template View< dim, Number > |
| using | ParabolicSystem = typename Description::ParabolicSystem |
| using | StateVector = typename View::StateVector |
| using | ScalarHostVector = Vectors::ScalarHostVector< Number > |
| 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 132 of file parabolic_module.h.
| using ryujin::EulerPoisson::ParabolicModule< Description, dim, Number >::HyperbolicSystem = typename Description::HyperbolicSystem |
Definition at line 140 of file parabolic_module.h.
| using ryujin::EulerPoisson::ParabolicModule< Description, dim, Number >::View = typename HyperbolicSystem::template View<dim, Number> |
Definition at line 142 of file parabolic_module.h.
| using ryujin::EulerPoisson::ParabolicModule< Description, dim, Number >::ParabolicSystem = typename Description::ParabolicSystem |
Definition at line 144 of file parabolic_module.h.
| using ryujin::EulerPoisson::ParabolicModule< Description, dim, Number >::StateVector = typename View::StateVector |
Definition at line 146 of file parabolic_module.h.
| using ryujin::EulerPoisson::ParabolicModule< Description, dim, Number >::ScalarHostVector = Vectors::ScalarHostVector<Number> |
Definition at line 148 of file parabolic_module.h.
| using ryujin::EulerPoisson::ParabolicModule< Description, dim, Number >::BlockHostVector = dealii::LinearAlgebra::distributed::BlockVector<Number> |
Definition at line 150 of file parabolic_module.h.
| using ryujin::EulerPoisson::ParabolicModule< Description, dim, Number >::ScalarNumber = typename View::ScalarNumber |
Definition at line 153 of file parabolic_module.h.
| using ryujin::EulerPoisson::ParabolicModule< Description, dim, Number >::state_type = typename View::state_type |
Definition at line 157 of file parabolic_module.h.
| ryujin::EulerPoisson::ParabolicModule< Description, dim, Number >::ParabolicModule | ( | const MPIEnsemble & | mpi_ensemle, |
| const OfflineData< dim, Number > & | offline_data, | ||
| const HyperbolicSystem & | hyperbolic_system, | ||
| const ParabolicSystem & | parabolic_system, | ||
| const InitialValues< Description, dim, Number > & | initial_values, | ||
| const std::string & | subsection = "/ParabolicModule< Description, dim, Number >" |
||
| ) |
Constructor.
Definition at line 32 of file parabolic_module.template.h.
References ryujin::EulerPoisson::no_restart.
| void ryujin::EulerPoisson::ParabolicModule< Description, dim, Number >::prepare | ( | ) |
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 135 of file parabolic_module.template.h.
References ryujin::cg_q1, and ryujin::dg_q1.
| void ryujin::EulerPoisson::ParabolicModule< Description, dim, Number >::reinit_state_vector | ( | StateVector & | state_vector | ) | const |
(Re)initialize the parabolic state vector component of the state vector.
Definition at line 242 of file parabolic_module.template.h.
| void ryujin::EulerPoisson::ParabolicModule< Description, dim, Number >::prepare_state_vector | ( | StateVector & | state_vector, |
| Number | t | ||
| ) | const |
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 260 of file parabolic_module.template.h.
References ryujin::EulerPoisson::correction, ryujin::EulerPoisson::full_restart, and ryujin::EulerPoisson::static_full_restart.
| void ryujin::EulerPoisson::ParabolicModule< Description, dim, Number >::backward_euler_step | ( | const StateVector & | old_state_vector, |
| const Number | old_t, | ||
| std::array< std::reference_wrapper< const StateVector >, stages > | stage_state_vectors, | ||
| const std::array< Number, stages > | stage_weights, | ||
| StateVector & | new_state_vector, | ||
| Number | tau | ||
| ) | const |
Given a reference to a previous state vector old_U at time old_t and a time-step size tau perform an implicit backward euler step (and store the result in new_U).
The function takes an optional array of states stage_U together with a an array of weights stage_weights to construct a modified high-order right-hand side / flux.
Definition at line 295 of file parabolic_module.template.h.
| void ryujin::EulerPoisson::ParabolicModule< Description, dim, Number >::crank_nicolson_step | ( | const StateVector & | old_state_vector, |
| const Number | old_t, | ||
| StateVector & | new_state_vector, | ||
| Number | tau | ||
| ) | const |
Given a reference to a previous state vector old_U at time old_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.
Definition at line 313 of file parabolic_module.template.h.
|
inline |
Sets the invariant domain violation strategy.
Definition at line 242 of file parabolic_module.h.
| void ryujin::EulerPoisson::ParabolicModule< Description, dim, Number >::print_solver_statistics | ( | std::ostream & | output | ) | const |
Print a status line with solver statistics. This function is used for constructing the status message displayed periodically in the TimeLoop.
Definition at line 348 of file parabolic_module.template.h.
|
staticconstexpr |
Definition at line 155 of file parabolic_module.h.