SpECTRE  2021.08.02
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::SpecificInternalEnergy< 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 &)=delete
 
SmoothFlow & operator= (const SmoothFlow &)=delete
 
 SmoothFlow (SmoothFlow &&) noexcept=default
 
SmoothFlow & operator= (SmoothFlow &&) noexcept=default
 
 SmoothFlow (const std::array< double, 3 > &mean_velocity, const std::array< double, 3 > &wavevector, double pressure, double adiabatic_index, double perturbation_size) noexcept
 
template<typename DataType , typename... Tags>
tuples::TaggedTuple< Tags... > variables (const tnsr::I< DataType, 3 > &x, double t, tmpl::list< Tags... >) const noexcept
 Retrieve a collection of hydro variables at (x, t)
 
void pup (PUP::er &) noexcept
 
template<typename DataType >
auto variables (const tnsr::I< DataType, 3 > &x, double, tmpl::list< hydro::Tags::MagneticField< DataType, 3 > >) const noexcept -> 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 noexcept -> tuples::TaggedTuple< hydro::Tags::DivergenceCleaningField< DataType > >
 Retrieve hydro variable at (x, t)
 
- Public Member Functions inherited from RelativisticEuler::Solutions::SmoothFlow< 3 >
 SmoothFlow (const SmoothFlow &)=delete
 
 SmoothFlow (SmoothFlow &&) noexcept=default
 
 SmoothFlow (const std::array< double, Dim > &mean_velocity, const std::array< double, Dim > &wavevector, double pressure, double adiabatic_index, double perturbation_size) noexcept
 
 SmoothFlow (CkMigrateMessage *msg) noexcept
 
SmoothFlow & operator= (const SmoothFlow &)=delete
 
SmoothFlow & operator= (SmoothFlow &&) noexcept=default
 
tuples::TaggedTuple< Tags... > variables (const tnsr::I< DataType, Dim > &x, const double t, tmpl::list< Tags... >) const noexcept
 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 noexcept
 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 noexcept
 
tuples::TaggedTuple< hydro::Tags::DivergenceCleaningField< DataType > > variables (const tnsr::I< DataType, Dim > &x, double t, tmpl::list< hydro::Tags::DivergenceCleaningField< DataType > >) const noexcept
 
void pup (PUP::er &) noexcept
 

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) noexcept
 

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 Data Documentation

◆ help

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