134 dealii::LinearAlgebra::distributed::BlockVector<Number>;
157 const std::string &subsection =
"ParabolicModule");
200 template <
int stages>
206 const std::array<Number, stages> stage_weights,
225 id_violation_strategy_ = strategy;
266 bool use_gmg_velocity_;
267 bool use_gmg_internal_energy_;
270 bool tolerance_linfty_norm_;
272 unsigned int gmg_max_iter_vel_;
273 unsigned int gmg_max_iter_en_;
274 double gmg_smoother_range_vel_;
275 double gmg_smoother_range_en_;
276 double gmg_smoother_max_eig_vel_;
277 double gmg_smoother_max_eig_en_;
278 unsigned int gmg_smoother_degree_;
279 unsigned int gmg_smoother_n_cg_iter_;
280 unsigned int gmg_min_level_;
289 static constexpr unsigned int order_fe = 1;
290 static constexpr unsigned int order_quad = 2;
294 dealii::ObserverPointer<const HyperbolicSystem> hyperbolic_system_;
295 dealii::ObserverPointer<const ParabolicSystem> parabolic_system_;
296 dealii::ObserverPointer<const ryujin::OfflineData<dim, Number>>
298 dealii::ObserverPointer<
304 mutable unsigned int cycle_;
306 mutable unsigned int n_restarts_;
307 mutable unsigned int n_corrections_;
308 mutable unsigned int n_warnings_;
309 mutable double n_iterations_velocity_;
310 mutable double n_iterations_internal_energy_;
312 mutable dealii::MatrixFree<dim, Number> matrix_free_;
320 mutable dealii::MGLevelObject<dealii::MatrixFree<dim, float>>
322 mutable dealii::MGConstrainedDoFs mg_constrained_dofs_;
323 mutable dealii::MGLevelObject<
324 dealii::LinearAlgebra::distributed::Vector<float>>
327 mutable dealii::MGLevelObject<VelocityMatrix<dim, float, Number>>
328 level_velocity_matrices_;
330 mutable dealii::MGLevelObject<EnergyMatrix<dim, float, Number>>
331 level_energy_matrices_;
333 mutable dealii::mg::SmootherRelaxation<
334 dealii::PreconditionChebyshev<
336 dealii::LinearAlgebra::distributed::BlockVector<float>,
338 dealii::LinearAlgebra::distributed::BlockVector<float>>
339 mg_smoother_velocity_;
341 mutable dealii::mg::SmootherRelaxation<
342 dealii::PreconditionChebyshev<
344 dealii::LinearAlgebra::distributed::Vector<float>>,
345 dealii::LinearAlgebra::distributed::Vector<float>>
367 const bool crank_nicolson_extrapolation)
const;
void backward_euler_step(const StateVector< Number > &old_state_vector, const Number old_t, std::array< std::reference_wrapper< const StateVector< Number > >, stages > stage_state_vectors, const std::array< Number, stages > stage_weights, StateVector< Number > &new_state_vector, Number tau) const