12 using namespace dealii;
14 template <
typename Description,
int dim,
typename Number>
17 std::map<std::string, dealii::Timer> &computing_timer,
22 const std::string &subsection )
23 : ParameterAcceptor(subsection)
25 , parabolic_solver_(mpi_ensemble,
38 template <
typename Description,
int dim,
typename Number>
42 std::cout <<
"ParabolicModule<Description, dim, Number>::prepare()"
46 parabolic_solver_.prepare();
52 template <
typename Description,
int dim,
typename Number>
57 std::array<std::reference_wrapper<const StateVector>,
59 const std::array<Number, stages> ,
66 dealii::ExcMessage(
"The parabolic system is the identity. This "
67 "function should have never been called."));
72 AssertThrow(stages == 0,
73 dealii::ExcMessage(
"Although IMEX schemes are implemented, "
74 "the high order fluxes are not. "));
76 const bool reinit_gmg = cycle_++ % 4 == 0;
77 parabolic_solver_.backward_euler_step(old_state_vector,
81 id_violation_strategy_,
83 n_restarts_ = parabolic_solver_.n_restarts();
84 n_warnings_ = parabolic_solver_.n_warnings();
89 template <
typename Description,
int dim,
typename Number>
91 std::ostream &output)
const
94 parabolic_solver_.print_solver_statistics(output);
typename View::StateVector StateVector
typename Description::ParabolicSystem ParabolicSystem
ParabolicModule(const MPIEnsemble &mpi_ensemble, std::map< std::string, dealii::Timer > &computing_timer, 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")
typename Description::HyperbolicSystem HyperbolicSystem
void 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 print_solver_statistics(std::ostream &output) const
static constexpr bool is_identity