SpECTRE  v2025.03.17
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
grmhd::Solutions::SmoothFlow Class Reference

Periodic GrMhd solution in Minkowski spacetime. More...

#include <SmoothFlow.hpp>

Public Types

using options = smooth_flow::options
 
- Public Types inherited from RelativisticEuler::Solutions::SmoothFlow< 3 >
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, 3 > &mean_velocity, const std::array< double, 3 > &wavevector, double pressure, double adiabatic_index, double perturbation_size)
 
auto get_clone () const -> std::unique_ptr< evolution::initial_data::InitialData > override
 
template<typename DataType , typename... Tags>
tuples::TaggedTuple< Tags... > variables (const tnsr::I< DataType, 3 > &x, double t, tmpl::list< Tags... >) const
 Retrieve a collection of hydro variables at (x, t)
 
void pup (PUP::er &) override
 
template<typename DataType >
auto variables (const tnsr::I< DataType, 3 > &x, double, tmpl::list< hydro::Tags::MagneticField< DataType, 3 > >) const -> tuples::TaggedTuple< hydro::Tags::MagneticField< DataType, 3 > >
 Retrieve hydro variable at (x, t)
 
template<typename DataType >
auto variables (const tnsr::I< DataType, 3 > &x, double, tmpl::list< hydro::Tags::DivergenceCleaningField< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::DivergenceCleaningField< DataType > >
 Retrieve hydro variable at (x, t)
 
- Public Member Functions inherited from RelativisticEuler::Solutions::SmoothFlow< 3 >
 SmoothFlow (const SmoothFlow &)=default
 
 SmoothFlow (SmoothFlow &&)=default
 
 SmoothFlow (const std::array< double, Dim > &mean_velocity, const std::array< double, Dim > &wavevector, double pressure, double adiabatic_index, double perturbation_size)
 
SmoothFlowoperator= (const SmoothFlow &)=default
 
SmoothFlowoperator= (SmoothFlow &&)=default
 
auto get_clone () const -> std::unique_ptr< evolution::initial_data::InitialData > override
 
auto variables (const tnsr::I< DataType, Dim > &x, double t, tmpl::list< hydro::Tags::Temperature< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::Temperature< DataType > >
 
auto variables (const tnsr::I< DataType, Dim > &x, double, tmpl::list< hydro::Tags::ElectronFraction< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::ElectronFraction< DataType > >
 
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)
 
tuples::TaggedTuple< Tag > variables (const tnsr::I< DataType, Dim > &x, double t, tmpl::list< Tag >) const
 Retrieve the metric variables.
 
tuples::TaggedTuple< hydro::Tags::MagneticField< DataType, Dim > > variables (const tnsr::I< DataType, Dim > &x, double t, tmpl::list< hydro::Tags::MagneticField< DataType, Dim > >) const
 
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::Solutions::SmoothFlow< 3 >
static constexpr Options::String help
 
- Static Public Attributes inherited from RelativisticEuler::AnalyticSolution< Dim >
static constexpr size_t volume_dim = Dim
 

Friends

bool operator== (const SmoothFlow &lhs, const SmoothFlow &rhs)
 

Detailed Description

Periodic GrMhd solution in Minkowski spacetime.

An analytic solution to the 3-D GrMhd system. The user specifies the mean flow velocity of the fluid, the wavevector of the density profile, and the amplitude A of the density profile. The magnetic field is taken to be zero everywhere. In Cartesian coordinates (x,y,z), and using dimensionless units, the primitive quantities 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)ρB(x,t)=[0,0,0]T

Member Function Documentation

◆ get_clone()

auto grmhd::Solutions::SmoothFlow::get_clone ( ) const -> std::unique_ptr< evolution::initial_data::InitialData >
overridevirtual

Member Data Documentation

◆ help

constexpr Options::String grmhd::Solutions::SmoothFlow::help
staticconstexpr
Initial value:
= {
"Periodic smooth flow in Minkowski spacetime with zero magnetic field."}

The documentation for this class was generated from the following file: