SpECTRE  v2024.04.12
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 = tmpl::push_back< typename gr::AnalyticSolution< Dim >::template tags< DataType >, hydro::Tags::RestMassDensity< DataType >, hydro::Tags::ElectronFraction< DataType >, hydro::Tags::SpecificInternalEnergy< DataType >, hydro::Tags::Temperature< DataType >, hydro::Tags::Pressure< DataType >, hydro::Tags::SpatialVelocity< DataType, Dim >, hydro::Tags::MagneticField< DataType, Dim >, hydro::Tags::DivergenceCleaningField< DataType >, hydro::Tags::LorentzFactor< DataType >, hydro::Tags::SpecificEnthalpy< DataType > >
 

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

\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}\\ \vec{B}(\vec{x},t) &= [0, 0, 0]^{T} \end{align*}

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: