SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
RelativisticEuler::Solutions::SmoothFlow< Dim > Class Template Reference

Smooth wave propagating in Minkowski spacetime. More...

#include <SmoothFlow.hpp>

Public Types

using options = typename smooth_flow::options
Public Types inherited from RelativisticEuler::AnalyticSolution< Dim >
template<typename DataType>
using tags

Public Member Functions

 SmoothFlow (const SmoothFlow &)=default
SmoothFlowoperator= (const SmoothFlow &)=default
 SmoothFlow (SmoothFlow &&)=default
SmoothFlowoperator= (SmoothFlow &&)=default
 SmoothFlow (const std::array< double, Dim > &mean_velocity, const std::array< double, Dim > &wavevector, double pressure, double adiabatic_index, double perturbation_size)
auto get_clone () const -> std::unique_ptr< evolution::initial_data::InitialData > override
template<typename DataType>
auto variables (const tnsr::I< DataType, Dim > &x, double t, tmpl::list< hydro::Tags::Temperature< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::Temperature< DataType > >
template<typename DataType>
auto variables (const tnsr::I< DataType, Dim > &x, double, tmpl::list< hydro::Tags::ElectronFraction< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::ElectronFraction< DataType > >
template<typename DataType, typename... Tags>
tuples::TaggedTuple< Tags... > variables (const tnsr::I< DataType, Dim > &x, const double t, tmpl::list< Tags... >) const
 Retrieve a collection of hydro variables at (x, t)
template<typename DataType, typename Tag>
tuples::TaggedTuple< Tag > variables (const tnsr::I< DataType, Dim > &x, double t, tmpl::list< Tag >) const
 Retrieve the metric variables.
template<typename DataType>
tuples::TaggedTuple< hydro::Tags::MagneticField< DataType, Dim > > variables (const tnsr::I< DataType, Dim > &x, double t, tmpl::list< hydro::Tags::MagneticField< DataType, Dim > >) const
template<typename DataType>
tuples::TaggedTuple< hydro::Tags::DivergenceCleaningField< DataType > > variables (const tnsr::I< DataType, Dim > &x, double t, tmpl::list< hydro::Tags::DivergenceCleaningField< DataType > >) const
void pup (PUP::er &) override
const EquationsOfState::IdealFluid< IsRelativistic > & equation_of_state () const
auto variables (const tnsr::I< DataType, Dim > &x, double t, tmpl::list< hydro::Tags::RestMassDensity< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::RestMassDensity< DataType > >
 Retrieve hydro variable at (x, t)
auto variables (const tnsr::I< DataType, Dim > &x, double t, tmpl::list< hydro::Tags::SpecificInternalEnergy< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::SpecificInternalEnergy< DataType > >
auto variables (const tnsr::I< DataType, Dim > &x, double, tmpl::list< hydro::Tags::Pressure< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::Pressure< DataType > >
auto variables (const tnsr::I< DataType, Dim > &x, double, tmpl::list< hydro::Tags::SpatialVelocity< DataType, Dim > >) const -> tuples::TaggedTuple< hydro::Tags::SpatialVelocity< DataType, Dim > >
auto variables (const tnsr::I< DataType, Dim > &x, double, tmpl::list< hydro::Tags::LorentzFactor< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::LorentzFactor< DataType > >
auto variables (const tnsr::I< DataType, Dim > &x, double t, tmpl::list< hydro::Tags::SpecificEnthalpy< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::SpecificEnthalpy< DataType > >
Public Member Functions inherited from hydro::TemperatureInitialization< SmoothFlow< Dim > >
auto variables (const tnsr::I< DataType, Dim > &x, tmpl::list< hydro::Tags::Temperature< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::Temperature< DataType > >

Static Public Attributes

static constexpr Options::String help
Static Public Attributes inherited from RelativisticEuler::AnalyticSolution< Dim >
static constexpr size_t volume_dim = Dim

Friends

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

Detailed Description

template<size_t Dim>
class RelativisticEuler::Solutions::SmoothFlow< Dim >

Smooth wave propagating in Minkowski spacetime.

The relativistic Euler equations in Minkowski spacetime accept a solution with constant pressure and uniform spatial velocity provided that the rest mass density satisfies the advection equation

\begin{align*}\partial_t\rho + v^i\partial_i\rho = 0, \end{align*}

and the specific internal energy is a function of the rest mass density only, \(\epsilon = \epsilon(\rho)\). For testing purposes, this class implements this solution for the case where \(\rho\) is a sine wave. The user specifies the mean flow velocity of the fluid, the wavevector of the density profile, and the amplitude \(A\) of the density profile. In Cartesian coordinates \((x, y, z)\), and using dimensionless units, the primitive variables at a given time \(t\) are then

\begin{align*}\rho(\vec{x},t) &= 1 + A \sin(\vec{k}\cdot(\vec{x} - \vec{v}t)) \\ \vec{v}(\vec{x},t) &= [v_x, v_y, v_z]^{T},\\ P(\vec{x},t) &= P, \\ \epsilon(\vec{x}, t) &= \frac{P}{(\gamma - 1)\rho}\\ \end{align*}

where we have assumed \(\epsilon\) and \(\rho\) to be related through an equation mathematically equivalent to the equation of state of an ideal gas, where the pressure is held constant.

Member Function Documentation

◆ get_clone()

template<size_t Dim>
auto RelativisticEuler::Solutions::SmoothFlow< Dim >::get_clone ( ) const -> std::unique_ptr< evolution::initial_data::InitialData >
overridevirtual

Member Data Documentation

◆ help

template<size_t Dim>
Options::String RelativisticEuler::Solutions::SmoothFlow< Dim >::help
staticconstexpr
Initial value:
= {
"Smooth flow in Minkowski spacetime."}

The documentation for this class was generated from the following file:
  • src/PointwiseFunctions/AnalyticSolutions/RelativisticEuler/SmoothFlow.hpp