8#include <compile_time_options.h>
14 namespace EulerInitialStates
28 template <
typename Description,
int dim,
typename Number>
38 const std::string subsection)
40 , hyperbolic_system_(hyperbolic_system)
43 if constexpr (!View::have_gamma) {
44 this->add_parameter(
"gamma", gamma_,
"The ratio of specific heats");
48 this->add_parameter(
"jet width",
50 "The width of the jet coming out of boundary");
54 jet_state_[2] = 0.4127;
56 "primitive jet state",
58 "Initial primitive state (rho, u, p) for jet state");
60 ambient_state_[0] = 5.0;
61 ambient_state_[1] = 0.0;
62 ambient_state_[2] = 0.4127;
64 "primitive ambient right",
66 "Initial primitive state (rho, u, p) for ambient state");
68 const auto convert_states = [&]() {
69 const auto view = hyperbolic_system_.template view<dim, Number>();
70 state_left_ = view.from_initial_state(jet_state_);
71 state_right_ = view.from_initial_state(ambient_state_);
73 this->parse_parameters_call_back.connect(convert_states);
79 return (point[0] < 1.e-12 && std::abs(point[1]) <= jet_width_
90 dealii::Tensor<1, 3, Number> jet_state_;
91 dealii::Tensor<1, 3, Number> ambient_state_;
typename View::state_type state_type
state_type compute(const dealii::Point< dim > &point, Number) final
AstroJet(const HyperbolicSystem &hyperbolic_system, const std::string subsection)
typename Description::template HyperbolicSystemView< dim, Number > View
typename Description::HyperbolicSystem HyperbolicSystem
Euler::HyperbolicSystem HyperbolicSystem