11 #include "Evolution/Systems/RelativisticEuler/Valencia/BoundaryCorrections/BoundaryCorrection.hpp"
12 #include "Evolution/Systems/RelativisticEuler/Valencia/Tags.hpp"
13 #include "NumericalAlgorithms/DiscontinuousGalerkin/Formulation.hpp"
16 #include "PointwiseFunctions/GeneralRelativity/Tags.hpp"
17 #include "PointwiseFunctions/Hydro/EquationsOfState/EquationOfState.hpp"
18 #include "PointwiseFunctions/Hydro/Tags.hpp"
66 using options = tmpl::list<>;
68 "Computes the Rusanov or local Lax-Friedrichs boundary correction term "
69 "for the Valencia formulation of the relativistic Euler/hydrodynamics "
80 explicit Rusanov(CkMigrateMessage* msg) noexcept;
81 using PUP::able::register_constructor;
84 void pup(PUP::er& p)
override;
88 using dg_package_field_tags =
89 tmpl::list<Tags::TildeD, Tags::TildeTau, Tags::TildeS<Dim>,
93 using dg_package_data_temporary_tags =
96 using dg_package_data_primitive_tags =
97 tmpl::list<hydro::Tags::RestMassDensity<DataVector>,
101 using dg_package_data_volume_tags =
102 tmpl::list<hydro::Tags::EquationOfStateBase>;
104 template <
size_t ThermodynamicDim>
105 double dg_package_data(
113 packaged_normal_dot_flux_tilde_s,
117 const tnsr::i<DataVector, Dim, Frame::Inertial>& tilde_s,
119 const tnsr::I<DataVector, Dim, Frame::Inertial>& flux_tilde_d,
120 const tnsr::I<DataVector, Dim, Frame::Inertial>& flux_tilde_tau,
121 const tnsr::Ij<DataVector, Dim, Frame::Inertial>& flux_tilde_s,
124 const tnsr::I<DataVector, Dim, Frame::Inertial>&
shift,
129 const tnsr::I<DataVector, Dim, Frame::Inertial>& spatial_velocity,
131 const tnsr::i<DataVector, Dim, Frame::Inertial>& normal_covector,
132 const tnsr::I<DataVector, Dim, Frame::Inertial>& normal_vector,
133 const std::optional<tnsr::I<DataVector, Dim, Frame::Inertial>>&
137 equation_of_state)
const noexcept;
139 void dg_boundary_terms(
143 boundary_correction_tilde_s,
146 const tnsr::i<DataVector, Dim, Frame::Inertial>& tilde_s_int,
149 const tnsr::i<DataVector, Dim, Frame::Inertial>&
150 normal_dot_flux_tilde_s_int,
154 const tnsr::i<DataVector, Dim, Frame::Inertial>& tilde_s_ext,
157 const tnsr::i<DataVector, Dim, Frame::Inertial>&
158 normal_dot_flux_tilde_s_ext,