SpECTRE  v2026.09.05
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
RiemannProblem & operator= (const RiemannProblem &)=default
 RiemannProblem (RiemannProblem &&)=default
RiemannProblem & operator= (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 evolution::initial_data::InitialData
virtual const InitialData & unwrap () const
 Unwrap wrapper types (e.g. WithNoise, which wraps analytic initial data and adds random noise) to reach the underlying analytic solution or data.
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 [90] 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