SpECTRE  v2024.04.12
grmhd::AnalyticData::SlabJet Class Reference

Analytic initial data for a slab jet. More...

#include <SlabJet.hpp>

Classes

struct  AdiabaticIndex
 
struct  AmbientDensity
 
struct  AmbientElectronFraction
 
struct  AmbientPressure
 
struct  InletRadius
 
struct  JetDensity
 
struct  JetElectronFraction
 
struct  JetPressure
 
struct  JetVelocity
 
struct  MagneticField
 

Public Types

using equation_of_state_type = EquationsOfState::IdealFluid< true >
 
using options = tmpl::list< AdiabaticIndex, AmbientDensity, AmbientPressure, AmbientElectronFraction, JetDensity, JetPressure, JetElectronFraction, JetVelocity, InletRadius, MagneticField >
 
- Public Types inherited from grmhd::AnalyticDataBase
template<typename DataType >
using tags = tmpl::push_back< typename gr::AnalyticSolution< 3 >::template tags< DataType >, hydro::Tags::RestMassDensity< DataType >, hydro::Tags::ElectronFraction< DataType >, hydro::Tags::SpecificInternalEnergy< DataType >, hydro::Tags::Temperature< DataType >, hydro::Tags::Pressure< DataType >, hydro::Tags::SpatialVelocity< DataType, 3 >, hydro::Tags::MagneticField< DataType, 3 >, hydro::Tags::DivergenceCleaningField< DataType >, hydro::Tags::LorentzFactor< DataType >, hydro::Tags::SpecificEnthalpy< DataType > >
 

Public Member Functions

 SlabJet (const SlabJet &)=default
 
SlabJetoperator= (const SlabJet &)=default
 
 SlabJet (SlabJet &&)=default
 
SlabJetoperator= (SlabJet &&)=default
 
 SlabJet (double adiabatic_index, double ambient_density, double ambient_pressure, double ambient_electron_fraction, double jet_density, double jet_pressure, double jet_electron_fraction, std::array< double, 3 > jet_velocity, double inlet_radius, std::array< double, 3 > magnetic_field)
 
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< tmpl::list_contains_v< gr::analytic_solution_tags< 3, DataType >, Tag > > = nullptr>
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< hydro::Tags::Temperature< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::Temperature< DataType > >
 Retrieve the GRMHD variables at a given position.
 
virtual auto get_clone () const -> std::unique_ptr< InitialData >=0
 
- Public Member Functions inherited from hydro::TemperatureInitialization< SlabJet >
auto variables (const tnsr::I< DataType, Dim > &x, tmpl::list< hydro::Tags::Temperature< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::Temperature< DataType > >
 
auto variables (const tnsr::I< DataType, Dim > &x, const double t, tmpl::list< hydro::Tags::Temperature< DataType > >) const -> tuples::TaggedTuple< hydro::Tags::Temperature< DataType > >
 
auto variables (ExtraVars &extra_variables, const tnsr::I< DataType, Dim > &x, Args &... extra_args, 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 SlabJet &lhs, const SlabJet &rhs)
 
bool operator!= (const SlabJet &lhs, const SlabJet &rhs)
 

Detailed Description

Analytic initial data for a slab jet.

This test problem is described in [102], Section 7.4 and Fig. 13. It involves a high Lorentz factor jet injected into an ambient fluid with an initially uniform magnetic field.

The parameters used in [102] are:

AdiabaticIndex: 4. / 3.
AmbientDensity: 10.
AmbientPressure: 0.01
JetDensity: 0.1
JetPressure: 0.01
# u^i = [20, 0, 0] or W = sqrt(401)
JetVelocity: [0.9987523388778445, 0., 0.]
InletRadius: 1.
MagneticField: [1., 0., 0.]

In [102] an artificial dissipation of \(\eta_u=0.2\) and \(\eta_b=0.15\) is used, which we don't use here (yet).

Note
The inlet is currently modeled as the region of the domain where \(x <= 0\) and \(|y| <= \mathrm{inlet_radius}\). Since this class only sets the initial data, no fluid will flow into the domain during the evolution. This has to be modeled as a boundary condition and is not implemented yet.

Member Function Documentation

◆ get_clone()

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

Member Data Documentation

◆ help

constexpr Options::String grmhd::AnalyticData::SlabJet::help
staticconstexpr
Initial value:
= {
"Analytic initial data for a jet test."}

The documentation for this class was generated from the following file: