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

Initial conditions for relativistic MHD Riemann problems. More...

#include <RiemannProblem.hpp>

Classes

struct  AdiabaticIndex
struct  Lapse
struct  LeftMagneticField
struct  LeftPressure
struct  LeftRestMassDensity
struct  LeftSpatialVelocity
struct  RightMagneticField
struct  RightPressure
struct  RightRestMassDensity
struct  RightSpatialVelocity
struct  ShiftX

Public Types

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

Public Member Functions

 RiemannProblem (const RiemannProblem &)=default
RiemannProblemoperator= (const RiemannProblem &)=default
 RiemannProblem (RiemannProblem &&)=default
RiemannProblemoperator= (RiemannProblem &&)=default
 RiemannProblem (double adiabatic_index, double left_rest_mass_density, double right_rest_mass_density, double left_pressure, double right_pressure, const std::array< double, 3 > &left_spatial_velocity, const std::array< double, 3 > &right_spatial_velocity, const std::array< double, 3 > &left_magnetic_field, const std::array< double, 3 > &right_magnetic_field, double lapse, double shift)
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>
tuples::TaggedTuple< Tag > variables (const tnsr::I< DataType, 3 > &x, tmpl::list< Tag >) const
 Retrieve the metric variables.
const EquationsOfState::IdealFluid< true > & equation_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 the GRMHD variables at a given position.
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 the GRMHD variables at a given position.
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 the GRMHD variables at a given position.
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 the GRMHD variables at a given position.
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 the GRMHD variables at a given position.
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 the GRMHD variables at a given position.
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 the GRMHD variables at a given position.
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 the GRMHD variables at a given position.
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 the GRMHD variables at a given position.
template<typename DataType>
auto variables (const tnsr::I< DataType, 3 > &x, tmpl::list< gr::Tags::Lapse< DataType > >) const -> tuples::TaggedTuple< gr::Tags::Lapse< DataType > >
 Retrieve the GRMHD variables at a given position.
template<typename DataType>
auto variables (const tnsr::I< DataType, 3 > &x, tmpl::list< gr::Tags::Shift< DataType, 3 > >) const -> tuples::TaggedTuple< gr::Tags::Shift< DataType, 3 > >
 Retrieve the GRMHD variables at a given position.
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 the GRMHD variables at a given position.
Public Member Functions inherited from hydro::TemperatureInitialization< RiemannProblem >
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

Friends

bool operator== (const RiemannProblem &lhs, const RiemannProblem &rhs)
bool operator!= (const RiemannProblem &lhs, const RiemannProblem &rhs)

Detailed Description

Initial conditions for relativistic MHD Riemann problems.

The standard problems were first collected in [10]. A complete Riemann solver for the RMHD equations is presented in [88] and can be downloaded from https://www.brunogiacomazzo.org/?page_id=395

The domain is from \([-0.5,0.5]^3\) with periodic boundary conditions in \(y\) and \(z\). The problems are usually run at a resolution of 1600 finite difference/finite volume grid points and the initial discontinuity is located at \(x=0\).

While the problems were originally run in Minkowski space, changing the lapse \(\alpha\) to a non-unity constant value and/or the shift \(\beta^x\) to a non-zero constant value allows testing some of the metric terms in the evolution equations in a fairly simple setup.

Below are the initial conditions for the 5 different Balsara Riemann problems. Please note that RP5 has a different final time than the rest, and that RP1 has a different adiabatic index than the rest.

RP1:

RP2:

RP3:

RP4:

RP5:

Member Typedef Documentation

◆ options

using grmhd::AnalyticData::RiemannProblem::options

Member Function Documentation

◆ get_clone()

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

Member Data Documentation

◆ help

Options::String grmhd::AnalyticData::RiemannProblem::help
staticconstexpr
Initial value:
= {
"Analytic initial data for a GRMHD Riemann problem. The fluid variables "
"are set homogeneously on either half of the domain left and right of "
"x=0."}

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