155 const std::string &subsection =
"ParabolicModule");
197 template <
int stages>
201 std::array<std::reference_wrapper<const StateVector>,
202 stages> stage_state_vectors,
203 const std::array<Number, stages> stage_weights,
222 id_violation_strategy_ = strategy;
263 bool use_gmg_velocity_;
264 bool use_gmg_internal_energy_;
267 bool tolerance_linfty_norm_;
269 unsigned int gmg_max_iter_vel_;
270 unsigned int gmg_max_iter_en_;
271 double gmg_smoother_range_vel_;
272 double gmg_smoother_range_en_;
273 double gmg_smoother_max_eig_vel_;
274 double gmg_smoother_max_eig_en_;
275 unsigned int gmg_smoother_degree_;
276 unsigned int gmg_smoother_n_cg_iter_;
277 unsigned int gmg_min_level_;
286 static constexpr unsigned int order_fe = 1;
287 static constexpr unsigned int order_quad = 2;
291 dealii::ObserverPointer<const HyperbolicSystem> hyperbolic_system_;
292 dealii::ObserverPointer<const ParabolicSystem> parabolic_system_;
293 dealii::ObserverPointer<const ryujin::OfflineData<dim, Number>>
295 dealii::ObserverPointer<
301 mutable unsigned int cycle_;
303 mutable unsigned int n_restarts_;
304 mutable unsigned int n_corrections_;
305 mutable unsigned int n_warnings_;
306 mutable double n_iterations_velocity_;
307 mutable double n_iterations_internal_energy_;
309 mutable dealii::MatrixFree<dim, Number> matrix_free_;
317 mutable dealii::MGLevelObject<dealii::MatrixFree<dim, float>>
319 mutable dealii::MGConstrainedDoFs mg_constrained_dofs_;
320 mutable dealii::MGLevelObject<
321 dealii::LinearAlgebra::distributed::Vector<float>>
324 mutable dealii::MGLevelObject<VelocityMatrix<dim, float, Number>>
325 level_velocity_matrices_;
327 mutable dealii::MGLevelObject<EnergyMatrix<dim, float, Number>>
328 level_energy_matrices_;
330 mutable dealii::mg::SmootherRelaxation<
331 dealii::PreconditionChebyshev<
333 dealii::LinearAlgebra::distributed::BlockVector<float>,
335 dealii::LinearAlgebra::distributed::BlockVector<float>>
336 mg_smoother_velocity_;
338 mutable dealii::mg::SmootherRelaxation<
339 dealii::PreconditionChebyshev<
341 dealii::LinearAlgebra::distributed::Vector<float>>,
342 dealii::LinearAlgebra::distributed::Vector<float>>
364 const bool crank_nicolson_extrapolation)
const;
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