SpECTRE
v2024.04.12
|
Magnetized fluid disk orbiting a Kerr black hole. More...
#include <MagnetizedFmDisk.hpp>
Classes | |
struct | BFieldNormGridRes |
Grid resolution used in magnetic field normalization. More... | |
struct | InversePlasmaBeta |
The maximum-magnetic-pressure-to-maximum-fluid-pressure ratio. More... | |
struct | ThresholdDensity |
The rest mass density (in units of the maximum rest mass density in the disk) below which the matter in the disk is initially unmagetized. More... | |
Public Types | |
template<typename DataType > | |
using | tags = tmpl::push_back< typename gr::AnalyticSolution< 3 >::template tags< DataType >, hydro::Tags::RestMassDensity< 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 > > |
using | options = tmpl::push_back< FmDisk::options, ThresholdDensity, InversePlasmaBeta, BFieldNormGridRes > |
using | equation_of_state_type = typename FmDisk::equation_of_state_type |
Public Member Functions | |
MagnetizedFmDisk (const MagnetizedFmDisk &)=default | |
MagnetizedFmDisk & | operator= (const MagnetizedFmDisk &)=default |
MagnetizedFmDisk (MagnetizedFmDisk &&)=default | |
MagnetizedFmDisk & | operator= (MagnetizedFmDisk &&)=default |
MagnetizedFmDisk (double bh_mass, double bh_dimless_spin, double inner_edge_radius, double max_pressure_radius, double polytropic_constant, double polytropic_exponent, double threshold_density, double inverse_plasma_beta, size_t normalization_grid_res=BFieldNormGridRes::suggested_value()) | |
auto | get_clone () const -> std::unique_ptr< evolution::initial_data::InitialData > override |
void | pup (PUP::er &) override |
const equation_of_state_type & | equation_of_state () const |
template<typename DataType , typename... Tags> | |
tuples::TaggedTuple< Tags... > | variables (const tnsr::I< DataType, 3 > &x, tmpl::list< Tags... >) const |
The variables in Cartesian Kerr-Schild coordinates at (x, t) . | |
template<typename DataType , typename Tag > | |
tuples::TaggedTuple< Tag > | variables (const tnsr::I< DataType, 3 > &x, tmpl::list< Tag >) const |
The variables in Cartesian Kerr-Schild coordinates at (x, t) . | |
virtual auto | get_clone () const -> std::unique_ptr< InitialData >=0 |
Static Public Attributes | |
static constexpr size_t | volume_dim = 3_st |
static constexpr Options::String | help |
Friends | |
bool | operator== (const MagnetizedFmDisk &lhs, const MagnetizedFmDisk &rhs) |
Magnetized fluid disk orbiting a Kerr black hole.
In the context of simulating accretion disks, this class implements a widely used (e.g. [73], [152], [190]) initial setup for the GRMHD variables, consisting of a Fishbone-Moncrief disk [64] (see also RelativisticEuler::Solutions::FishboneMoncriefDisk), threaded by a weak poloidal magnetic field. The magnetic field is constructed from an axially symmetric toroidal magnetic potential which, in Kerr ("spherical Kerr-Schild") coordinates, has the form
\begin{align*} A_\phi(r,\theta) \propto \text{max}(\rho(r,\theta) - \rho_\text{thresh}, 0), \end{align*}
where \(\rho_\text{thresh}\) is a user-specified threshold density that confines the magnetic flux to exist inside of the fluid disk only. A commonly used value for this parameter is \(\rho_\text{thresh} = 0.2\rho_\text{max}\), where \(\rho_\text{max}\) is the maximum value of the rest mass density in the disk. Using this potential, the Eulerian magnetic field takes the form
\begin{align*} B^r = \frac{F_{\theta\phi}}{\sqrt{\gamma}},\quad B^\theta = \frac{F_{\phi r}}{\sqrt{\gamma}},\quad B^\phi = 0, \end{align*}
where \(F_{ij} = \partial_i A_j - \partial_j A_i\) are the spatial components of the Faraday tensor, and \(\gamma\) is the determinant of the spatial metric. The magnetic field is then normalized so that the plasma- \(\beta\) parameter, \(\beta = 2p/b^2\), equals some value specified by the user. Here, \(p\) is the fluid pressure, and
\begin{align*} b^2 = b^\mu b_\mu = \frac{B_iB^i}{W^2} + (B^iv_i)^2 \end{align*}
is the norm of the magnetic field in the fluid frame, with \(v_i\) being the spatial velocity, and \(W\) the Lorentz factor.
|
overridevirtual |
Implements evolution::initial_data::InitialData.
|
staticconstexpr |