12 namespace EulerInitialStates
26 template <
typename Description,
int dim,
typename Number>
36 const std::string subsection)
38 , hyperbolic_system_(hyperbolic_system)
41 if constexpr (!View::have_gamma) {
42 this->add_parameter(
"gamma", gamma_,
"The ratio of specific heats");
46 this->add_parameter(
"jet width",
48 "The width of the jet coming out of boundary");
52 jet_state_[2] = 0.4127;
54 "primitive jet state",
56 "Initial primitive state (rho, u, p) for jet state");
58 ambient_state_[0] = 5.0;
59 ambient_state_[1] = 0.0;
60 ambient_state_[2] = 0.4127;
62 "primitive ambient right",
64 "Initial primitive state (rho, u, p) for ambient state");
66 const auto convert_states = [&]() {
67 const auto view = hyperbolic_system_.template view<dim, Number>();
68 state_left_ = view.from_initial_state(jet_state_);
69 state_right_ = view.from_initial_state(ambient_state_);
71 this->parse_parameters_call_back.connect(convert_states);
77 return (point[0] < 1.e-12 && std::abs(point[1]) <= jet_width_
88 dealii::Tensor<1, 3, Number> jet_state_;
89 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