|
SpECTRE
2021.08.02
|
Source generating a modified isentropic vortex. More...
#include <VortexPerturbation.hpp>
Public Types | |
| using | sourced_variables = tmpl::conditional_t< Dim==3, tmpl::list< Tags::MassDensityCons, Tags::MomentumDensity< Dim >, Tags::EnergyDensity >, tmpl::list<> > |
| using | argument_tags = tmpl::conditional_t< Dim==3, tmpl::list<::Tags::AnalyticSolution< NewtonianEuler::Solutions::IsentropicVortex< Dim > >, domain::Tags::Coordinates< 3, Frame::Inertial >, ::Tags::Time >, tmpl::list<> > |
Public Member Functions | |
| VortexPerturbation (const VortexPerturbation &)=default | |
| VortexPerturbation & | operator= (const VortexPerturbation &)=default |
| VortexPerturbation (VortexPerturbation &&) noexcept=default | |
| VortexPerturbation & | operator= (VortexPerturbation &&) noexcept=default |
| void | pup (PUP::er &) noexcept |
| void | apply () const noexcept |
| void | apply (gsl::not_null< Scalar< DataVector > * > source_mass_density_cons, gsl::not_null< tnsr::I< DataVector, Dim > * > source_momentum_density, gsl::not_null< Scalar< DataVector > * > source_energy_density, const NewtonianEuler::Solutions::IsentropicVortex< Dim > &vortex, const tnsr::I< DataVector, Dim > &x, double time) const noexcept |
Source generating a modified isentropic vortex.
If Solutions::IsentropicVortex is modifed so that the flow velocity along the \(z-\)axis is not a constant but a function of \(z\), the new vortex will be a solution to the 3-D Newtonian Euler equations with a source term,
\begin{align*} \partial_t\rho + \partial_i F^i(\rho) &= S(\rho)\\ \partial_t S^i + \partial_j F^{j}(S^i) &= S(S^i)\\ \partial_t e + \partial_i F^i(e) &= S(e), \end{align*}
where \(F^i(u)\) is the volume flux of the conserved quantity \(u\) (see ComputeFluxes), and
\begin{align*} S(\rho) &= \rho \dfrac{dv_z}{dz}\\ S(S_x) &= S_x \dfrac{dv_z}{dz}\\ S(S_y) &= S_y \dfrac{dv_z}{dz}\\ S(S_z) &= 2S_z \dfrac{dv_z}{dz}\\ S(e) &= \left(e + p + v_z S_z\right)\dfrac{dv_z}{dz}, \end{align*}
where \(\rho\) is the mass density of the vortex, \(S_i\) is its momentum density, \(e\) is its energy density, \(v_z = v_z(z)\) is the \(z-\)component of its velocity, and \(p\) is its pressure. These quantities are readily obtained from the primitive variables, whose expressions are those in Solutions::IsentropicVortex