56 const auto view = hyperbolic_system_.template view<dim, Number>();
58 if constexpr (View::have_gamma) {
59 gamma_ = view.gamma();
63 dealii::Point<2> point_bar;
64 point_bar[0] = point[0] - mach_number_ * t;
65 point_bar[1] = point[1];
67 const Number r_square = Number(point_bar.norm_square());
69 const Number factor = beta_ / Number(2. * M_PI) *
70 exp(Number(0.5) - Number(0.5) * r_square);
72 const Number T = Number(1.) - (gamma_ - Number(1.)) /
73 (Number(2.) * gamma_) * factor *
76 const Number u = mach_number_ - factor * Number(point_bar[1]);
77 const Number v = factor * Number(point_bar[0]);
79 const Number rho =
ryujin::pow(T, Number(1.) / (Number(gamma_ - 1.)));
82 p / (gamma_ - Number(1.)) + Number(0.5) * rho * (u * u + v * v);
84 AssertThrow(dim > 1, dealii::ExcNotImplemented());
89 if constexpr (dim >= 2)
91 if constexpr (View::have_energy_equation)