40 const std::string &subsection)
41 :
InitialState<Description, dim, Number>(
"radial contrast",
43 , hyperbolic_system_(hyperbolic_system)
45 primitive_inner_[0] = 1.4;
46 primitive_inner_[1] = 0.0;
47 if constexpr (View::have_energy_equation)
48 primitive_inner_[2] = 1.;
49 this->add_parameter(
"primitive state inner",
51 "1d primitive state [rho, u, p] on the inner disk "
52 "(or [rho, u] for the barotropic Euler module)");
54 primitive_outer_[0] = 1.4;
55 primitive_outer_[1] = 0.0;
56 if constexpr (View::have_energy_equation)
57 primitive_outer_[2] = 1.;
59 "primitive state outer",
61 "1d primitive state [rho, u, p] on the outer annulus (or [rho, u] "
62 "for the barotropic Euler module)");
65 this->add_parameter(
"radius", radius_,
"Radius of radial area");
67 const auto convert_states = [&]() {
68 const auto view = hyperbolic_system_.template view<dim, Number>();
69 state_inner_ = view.from_initial_state(primitive_inner_);
70 state_outer_ = view.from_initial_state(primitive_outer_);
72 this->parse_parameters_call_back.connect(convert_states);