SpECTRE
v2024.05.11
|
Compute the fluxes of the conservative variables of the Newtonian Euler system. More...
#include <Fluxes.hpp>
Public Types | |
using | return_tags = tmpl::list< ::Tags::Flux< Tags::MassDensityCons, tmpl::size_t< Dim >, Frame::Inertial >, ::Tags::Flux< Tags::MomentumDensity< Dim >, tmpl::size_t< Dim >, Frame::Inertial >, ::Tags::Flux< Tags::EnergyDensity, tmpl::size_t< Dim >, Frame::Inertial > > |
using | argument_tags = tmpl::list< Tags::MomentumDensity< Dim >, Tags::EnergyDensity, hydro::Tags::SpatialVelocity< DataVector, Dim >, hydro::Tags::Pressure< DataVector > > |
Static Public Member Functions | |
static void | apply (gsl::not_null< tnsr::I< DataVector, Dim > * > mass_density_cons_flux, gsl::not_null< tnsr::IJ< DataVector, Dim > * > momentum_density_flux, gsl::not_null< tnsr::I< DataVector, Dim > * > energy_density_flux, const tnsr::I< DataVector, Dim > &momentum_density, const Scalar< DataVector > &energy_density, const tnsr::I< DataVector, Dim > &velocity, const Scalar< DataVector > &pressure) |
Compute the fluxes of the conservative variables of the Newtonian Euler system.
The fluxes are \((\text{Dim} + 2)\) vectors of dimension \(\text{Dim}\). Denoting the flux of the conservative variable \(u\) as \(F(u)\), one has
\begin{align*} F^i(\rho) &= S^i\\ F^i(S^j) &= S^i v^j + \delta^{ij}p\\ F^i(e) &= (e + p)v^i \end{align*}
where \(S^i\) is the momentum density, \(e\) is the energy density, \(v^i\) is the velocity, \(p\) is the pressure, and \(\delta^{ij}\) is the Kronecker delta. This form of the fluxes combines conservative and primitive variables (while the velocity appears explicitly, the pressure implicitly depends, for instance, on the mass density and the specific internal energy), so the conversion from one variable set to the other must be known prior to calling this function.