133 dealii::LinearAlgebra::distributed::BlockVector<Number>;
156 const std::string &subsection =
"ParabolicModule");
198 template <
int stages>
202 std::array<std::reference_wrapper<const StateVector>,
203 stages> stage_state_vectors,
204 const std::array<Number, stages> stage_weights,
223 id_violation_strategy_ = strategy;
264 bool use_gmg_velocity_;
265 bool use_gmg_internal_energy_;
268 bool tolerance_linfty_norm_;
270 unsigned int gmg_max_iter_vel_;
271 unsigned int gmg_max_iter_en_;
272 double gmg_smoother_range_vel_;
273 double gmg_smoother_range_en_;
274 double gmg_smoother_max_eig_vel_;
275 double gmg_smoother_max_eig_en_;
276 unsigned int gmg_smoother_degree_;
277 unsigned int gmg_smoother_n_cg_iter_;
278 unsigned int gmg_min_level_;
287 static constexpr unsigned int order_fe = 1;
288 static constexpr unsigned int order_quad = 2;
292 dealii::ObserverPointer<const HyperbolicSystem> hyperbolic_system_;
293 dealii::ObserverPointer<const ParabolicSystem> parabolic_system_;
294 dealii::ObserverPointer<const ryujin::OfflineData<dim, Number>>
296 dealii::ObserverPointer<
302 mutable unsigned int cycle_;
304 mutable unsigned int n_restarts_;
305 mutable unsigned int n_corrections_;
306 mutable unsigned int n_warnings_;
307 mutable double n_iterations_velocity_;
308 mutable double n_iterations_internal_energy_;
310 mutable dealii::MatrixFree<dim, Number> matrix_free_;
318 mutable dealii::MGLevelObject<dealii::MatrixFree<dim, float>>
320 mutable dealii::MGConstrainedDoFs mg_constrained_dofs_;
321 mutable dealii::MGLevelObject<
322 dealii::LinearAlgebra::distributed::Vector<float>>
325 mutable dealii::MGLevelObject<VelocityMatrix<dim, float, Number>>
326 level_velocity_matrices_;
328 mutable dealii::MGLevelObject<EnergyMatrix<dim, float, Number>>
329 level_energy_matrices_;
331 mutable dealii::mg::SmootherRelaxation<
332 dealii::PreconditionChebyshev<
334 dealii::LinearAlgebra::distributed::BlockVector<float>,
336 dealii::LinearAlgebra::distributed::BlockVector<float>>
337 mg_smoother_velocity_;
339 mutable dealii::mg::SmootherRelaxation<
340 dealii::PreconditionChebyshev<
342 dealii::LinearAlgebra::distributed::Vector<float>>,
343 dealii::LinearAlgebra::distributed::Vector<float>>
365 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