SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
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
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, 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
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
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
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
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
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::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

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:
  • src/PointwiseFunctions/AnalyticSolutions/GrMhd/SmoothFlow.hpp