SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
grmhd::AnalyticData::OrszagTangVortex Class Reference

Analytic initial data for the relativistic Orszag-Tang vortex. More...

#include <OrszagTangVortex.hpp>

Public Types

using equation_of_state_type = EquationsOfState::IdealFluid<true>
using options = tmpl::list<>
Public Types inherited from grmhd::AnalyticDataBase
template<typename DataType>
using tags

Public Member Functions

 OrszagTangVortex (const OrszagTangVortex &)=default
OrszagTangVortexoperator= (const OrszagTangVortex &)=default
 OrszagTangVortex (OrszagTangVortex &&)=default
OrszagTangVortexoperator= (OrszagTangVortex &&)=default
auto get_clone () const -> std::unique_ptr< evolution::initial_data::InitialData > override
template<typename DataType, typename Tag1, typename Tag2, typename... Tags>
tuples::TaggedTuple< Tag1, Tag2, Tags... > variables (const tnsr::I< DataType, 3 > &x, tmpl::list< Tag1, Tag2, Tags... >) const
 Retrieve a collection of hydrodynamic variables at position x.
template<typename DataType, typename Tag, Requires< not tmpl::list_contains_v< tmpl::push_back< hydro::grmhd_tags< DataType >, hydro::Tags::SpecificEnthalpy< DataType > >, Tag > > = nullptr>
tuples::TaggedTuple< Tag > variables (const tnsr::I< DataType, 3 > &x, tmpl::list< Tag >) const
 Retrieve the metric variables.
const equation_of_state_typeequation_of_state () const
void pup (PUP::er &) override
template<typename DataType>
auto variables (const tnsr::I< DataType, 3 > &x, tmpl::list< hydro::Tags::RestMassDensity< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::RestMassDensity< DataType > >
 Retrieve hydro variable at x
template<typename DataType>
auto variables (const tnsr::I< DataType, 3 > &x, tmpl::list< hydro::Tags::ElectronFraction< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::ElectronFraction< DataType > >
 Retrieve hydro variable at x
template<typename DataType>
auto variables (const tnsr::I< DataType, 3 > &x, tmpl::list< hydro::Tags::SpecificInternalEnergy< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::SpecificInternalEnergy< DataType > >
 Retrieve hydro variable at x
template<typename DataType>
auto variables (const tnsr::I< DataType, 3 > &x, tmpl::list< hydro::Tags::Pressure< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::Pressure< DataType > >
 Retrieve hydro variable at x
template<typename DataType>
auto variables (const tnsr::I< DataType, 3 > &x, tmpl::list< hydro::Tags::SpatialVelocity< DataType, 3 > >) const -> tuples::TaggedTuple< hydro::Tags::SpatialVelocity< DataType, 3 > >
 Retrieve hydro variable at x
template<typename DataType>
auto variables (const tnsr::I< DataType, 3 > &x, tmpl::list< hydro::Tags::MagneticField< DataType, 3 > >) const -> tuples::TaggedTuple< hydro::Tags::MagneticField< DataType, 3 > >
 Retrieve hydro variable at x
template<typename DataType>
auto variables (const tnsr::I< DataType, 3 > &x, tmpl::list< hydro::Tags::DivergenceCleaningField< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::DivergenceCleaningField< DataType > >
 Retrieve hydro variable at x
template<typename DataType>
auto variables (const tnsr::I< DataType, 3 > &x, tmpl::list< hydro::Tags::LorentzFactor< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::LorentzFactor< DataType > >
 Retrieve hydro variable at x
template<typename DataType>
auto variables (const tnsr::I< DataType, 3 > &x, tmpl::list< hydro::Tags::SpecificEnthalpy< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::SpecificEnthalpy< DataType > >
 Retrieve hydro variable at x
template<typename DataType>
auto variables (const tnsr::I< DataType, 3 > &x, tmpl::list< hydro::Tags::Temperature< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::Temperature< DataType > >
 Retrieve hydro variable at x
Public Member Functions inherited from hydro::TemperatureInitialization< OrszagTangVortex >
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 grmhd::AnalyticDataBase
static constexpr size_t volume_dim = 3_st

Detailed Description

Analytic initial data for the relativistic Orszag-Tang vortex.

The relativistic version of the Orszag-Tang vortex is a 2-dimensional test case for relativistic MHD systems (see, e.g., [18]). It describes the flow of an ideal fluid with adiabatic index \(5/3\). The initial conditions (and hence the states at later times) are periodic in both \(x\) and \(y\) with period 1. The initial conditions are:

\begin{align*}\rho &= \frac{25}{36 \pi} \\ p &= \frac{5}{12 \pi} \\ v_x &= -\frac{1}{2} \sin(2 \pi y) \\ v_y &= \frac{1}{2} \sin(2 \pi x) \\ B_x &= -\frac{1}{\sqrt{4 \pi}} \sin(2 \pi y) \\ B_y &= \frac{1}{\sqrt{4 \pi}} \sin(4 \pi x) \end{align*}

with \(\rho\) the rest mass density, \(p\) the pressure, \(v_i\) the spatial velocity, and \(B_i\) the magnetic field.

Note
We do not currently support 2-dimensional RMHD, so this class provides 3-dimensional data with no \(z\)-dependence.
Note
There are multiple errors in the description of this test problem in the original SpECTRE paper [117] and there is a sign error in the velocity in [18]. Despite these errors, the actual tests performed for those papers matched the standard problem as presented here.

Member Function Documentation

◆ get_clone()

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

Member Data Documentation

◆ help

Options::String grmhd::AnalyticData::OrszagTangVortex::help
staticconstexpr
Initial value:
= {
"The relativistic Orszag-Tang vortex"}

The documentation for this class was generated from the following file:
  • src/PointwiseFunctions/AnalyticData/GrMhd/OrszagTangVortex.hpp