SpECTRE  v2026.09.05
Loading...
Searching...
No Matches
ForceFree::AnalyticData::MagnetosphericWald Class Reference

The magnetospheric Wald problem proposed in [123]. More...

#include <MagnetosphericWald.hpp>

Classes

struct  Spin

Public Types

using options = tmpl::list<Spin>

Public Member Functions

 MagnetosphericWald (const MagnetosphericWald &)=default
MagnetosphericWald & operator= (const MagnetosphericWald &)=default
 MagnetosphericWald (MagnetosphericWald &&)=default
MagnetosphericWald & operator= (MagnetosphericWald &&)=default
 MagnetosphericWald (double spin, const Options::Context &context={})
auto get_clone () const -> std::unique_ptr< evolution::initial_data::InitialData > override
void pup (PUP::er &p) override
template<typename... Tags>
tuples::TaggedTuple< Tags... > variables (const tnsr::I< DataVector, 3 > &x, tmpl::list< Tags... >) const
 Retrieve a collection of EM variables at position x.
template<typename Tag>
tuples::TaggedTuple< Tag > variables (const tnsr::I< DataVector, 3 > &x, tmpl::list< Tag >) const
 Retrieve the metric variables.
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.

Static Public Attributes

static constexpr Options::String help

Friends

bool operator== (const MagnetosphericWald &lhs, const MagnetosphericWald &rhs)
auto variables (const tnsr::I< DataVector, 3 > &x, tmpl::list< Tags::TildeB >) const -> tuples::TaggedTuple< Tags::TildeB >
 Retrieve the EM variables at (x,t).
static auto variables (const tnsr::I< DataVector, 3 > &x, tmpl::list< Tags::TildeE >) -> tuples::TaggedTuple< Tags::TildeE >
 Retrieve the EM variables at (x,t).
static auto variables (const tnsr::I< DataVector, 3 > &x, tmpl::list< Tags::TildePsi >) -> tuples::TaggedTuple< Tags::TildePsi >
 Retrieve the EM variables at (x,t).
static auto variables (const tnsr::I< DataVector, 3 > &x, tmpl::list< Tags::TildePhi >) -> tuples::TaggedTuple< Tags::TildePhi >
 Retrieve the EM variables at (x,t).
static auto variables (const tnsr::I< DataVector, 3 > &x, tmpl::list< Tags::TildeQ >) -> tuples::TaggedTuple< Tags::TildeQ >
 Retrieve the EM variables at (x,t).

Detailed Description

The magnetospheric Wald problem proposed in [123].

This is an initial value problem that evolves the magnetosphere of a rotating black hole. The initial condition is given as same as the exact Wald solution [218] (see also documentation of ForceFree::Solutions::ExactWald)

\begin{equation} A_\mu = \frac{B_0}{2}(\phi_\mu + 2a t_\mu) , \end{equation}

but electric field is set to zero at \(t=0\).

In the cartesian projection of the spherical Kerr-Schild coordinates (which we use in the code for representing tensors), initial magnetic fields is given as

\begin{align}\tilde{B}^{x} &= a B_0 z \left[ (ax-ry) \left\{ \frac{1}{r^4} + \frac{2M r (r^2-a^2)}{(r^4+a^2z^2)^2} \right\} + a M r x \left\{ \frac{r^2-z^2}{r^4(r^4+a^2z^2)} - \frac{4(r^2+z^2)}{(r^4+a^2z^2)^2} \right\} \right] \\ \tilde{B}^{y} &= a B_0 z \left[ (rx+ay) \left\{ \frac{1}{r^4} + \frac{2M r (r^2-a^2)}{(r^4+a^2z^2)^2} \right\} + a M r y \left\{ \frac{r^2-z^2}{r^4(r^4+a^2z^2)} - \frac{4(r^2+z^2)}{(r^4+a^2z^2)^2} \right\} \right] \\ \tilde{B}^{z} &= B_0 \left[ 1 + \frac{a^2z^2}{r^4} + \frac{M a^2}{r^3}\left\{ 1 - \frac{z^2(a^2+z^2)(5r^4+a^2z^2)}{(r^4+a^2z^2)^2} \right\} \right] . \end{align}

where \(M\) and \(a\) are mass and (dimensionless) spin of the Kerr black hole, \(B_0\) is the amplitude of magnetic field, and \(r\) is the radial coordinate defined in the spherical Kerr-Schild coordinate system (see the documentation of gr::Solutions::SphericalKerrSchild). All other variables are set to zero at \(t=0\).

There is no known exact solution to this problem, but numerical simulations [123] [173] [74] report that the system converges to a steady state with an equatorial current sheet inside the ergosphere.

Note
We set \(M=1\) and \(B_0=1\) in the initial data to fix scales.

Member Function Documentation

◆ get_clone()

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

Member Data Documentation

◆ help

Options::String ForceFree::AnalyticData::MagnetosphericWald::help
staticconstexpr
Initial value:
{
"Magnetospheric Wald initial value problem"}

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