SpECTRE  2021.08.02
NewtonianEuler::Sources::UniformAcceleration< Dim > Struct Template Reference

Source generated from an external uniform acceleration. More...

#include <UniformAcceleration.hpp>

Public Types

using sourced_variables = tmpl::list< Tags::MomentumDensity< Dim >, Tags::EnergyDensity >
 
using argument_tags = tmpl::list< Tags::MassDensityCons, Tags::MomentumDensity< Dim > >
 

Public Member Functions

 UniformAcceleration (const UniformAcceleration &)=default
 
UniformAccelerationoperator= (const UniformAcceleration &)=default
 
 UniformAcceleration (UniformAcceleration &&) noexcept=default
 
UniformAccelerationoperator= (UniformAcceleration &&) noexcept=default
 
 UniformAcceleration (const std::array< double, Dim > &acceleration_field) noexcept
 
void pup (PUP::er &) noexcept
 
void apply (gsl::not_null< tnsr::I< DataVector, Dim > * > source_momentum_density, gsl::not_null< Scalar< DataVector > * > source_energy_density, const Scalar< DataVector > &mass_density_cons, const tnsr::I< DataVector, Dim > &momentum_density) const noexcept
 

Friends

template<size_t SpatialDim>
bool operator== (const UniformAcceleration< SpatialDim > &lhs, const UniformAcceleration< SpatialDim > &rhs) noexcept
 

Detailed Description

template<size_t Dim>
struct NewtonianEuler::Sources::UniformAcceleration< Dim >

Source generated from an external uniform acceleration.

The NewtonianEuler system with source terms is written as

\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). For an external acceleration \(a^i\), one has

\begin{align*} S(\rho) &= 0\\ S(S^i) &= \rho a^i\\ S(e) &= S_ia^i, \end{align*}

where \(\rho\) is the mass density, \(S^i\) is the momentum density, and \(e\) is the energy density.