8#include <compile_time_options.h>
14 namespace EulerInitialStates
26 template <
typename Description,
int dim,
typename Number>
36 const std::string subsection)
38 , hyperbolic_system_(hyperbolic_system)
40 primitive_left_[0] = 1.4;
41 primitive_left_[1] = 0.;
42 primitive_left_[2] = 1.;
44 "primitive state left",
46 "Initial 1d primitive state (rho, u, p) on the left");
48 primitive_right_[0] = 1.4;
49 primitive_right_[1] = 0.;
50 primitive_right_[2] = 1.;
52 "primitive state right",
54 "Initial 1d primitive state (rho, u, p) on the right");
56 const auto convert_states = [&]() {
57 const auto view = hyperbolic_system_.template view<dim, Number>();
58 state_left_ = view.from_initial_state(primitive_left_);
59 state_right_ = view.from_initial_state(primitive_right_);
61 this->parse_parameters_call_back.connect(convert_states);
67 return (point[0] > 0. ? state_right_ : state_left_);
73 dealii::Tensor<1, 3, Number> primitive_left_;
74 dealii::Tensor<1, 3, Number> primitive_right_;
typename View::state_type state_type
state_type compute(const dealii::Point< dim > &point, Number) final
Contrast(const HyperbolicSystem &hyperbolic_system, const std::string subsection)
typename Description::template HyperbolicSystemView< dim, Number > View
typename Description::HyperbolicSystem HyperbolicSystem
Euler::HyperbolicSystem HyperbolicSystem