SpECTRE  v2025.03.17
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
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 = implementation defined
 

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
 
virtual auto get_clone () const -> std::unique_ptr< InitialData >=0
 
- 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 > >
 
auto variables (const tnsr::I< DataType, Dim > &x, const double t, tmpl::list< hydro::Tags::Temperature< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::Temperature< DataType > >
 
auto variables (ExtraVars &extra_variables, const tnsr::I< DataType, Dim > &x, Args &... extra_args, 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

tρ+viiρ=0,

and the specific internal energy is a function of the rest mass density only, ϵ=ϵ(ρ). For testing purposes, this class implements this solution for the case where ρ 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

ρ(x,t)=1+Asin(k(xvt))v(x,t)=[vx,vy,vz]T,P(x,t)=P,ϵ(x,t)=P(γ1)ρ

where we have assumed ϵ and ρ 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>
constexpr 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: