9 #include "DataStructures/DataBox/Tag.hpp"
12 #include "Evolution/Systems/NewtonianEuler/Characteristics.hpp"
13 #include "Evolution/Systems/NewtonianEuler/TagsDeclarations.hpp"
14 #include "NumericalAlgorithms/DiscontinuousGalerkin/Protocols.hpp"
17 #include "Utilities/ProtocolHelpers.hpp"
38 namespace NumericalFluxes {
120 template <
size_t Dim,
typename Frame>
139 using options = tmpl::list<>;
141 "Compute the HLLC flux for the Newtonian Euler system."};
144 void pup(PUP::er& ) noexcept {}
146 using variables_tags =
147 tmpl::list<Tags::MassDensityCons, Tags::MomentumDensity<Dim>,
150 using package_field_tags = tmpl::list<
157 NormalVelocity, LargestIngoingSpeed, LargestOutgoingSpeed>;
158 using package_extra_tags = tmpl::list<>;
160 using argument_tags = tmpl::list<
172 packaged_n_dot_f_momentum_density,
175 gsl::not_null<tnsr::I<DataVector, Dim, Frame>*> packaged_momentum_density,
178 gsl::not_null<tnsr::i<DataVector, Dim, Frame>*> packaged_face_normal,
183 const tnsr::I<DataVector, Dim, Frame>& normal_dot_flux_momentum_density,
186 const tnsr::I<DataVector, Dim, Frame>& momentum_density,
188 const tnsr::I<DataVector, Dim, Frame>& velocity,
191 const tnsr::i<DataVector, Dim, Frame>& interface_unit_normal)
const
197 normal_dot_numerical_flux_momentum_density,
199 normal_dot_numerical_flux_energy_density,
201 const tnsr::I<DataVector, Dim, Frame>&
202 normal_dot_flux_momentum_density_int,
205 const tnsr::I<DataVector, Dim, Frame>& momentum_density_int,
208 const tnsr::i<DataVector, Dim, Frame>& interface_unit_normal,
213 const tnsr::I<DataVector, Dim, Frame>&
214 minus_normal_dot_flux_momentum_density_ext,
217 const tnsr::I<DataVector, Dim, Frame>& momentum_density_ext,
220 const tnsr::i<DataVector, Dim, Frame>& minus_interface_unit_normal,