SpECTRE  v2026.09.05
Loading...
Searching...
No Matches
ForceFree::Solutions::ExactWald Class Reference

An exact electrovacuum force-free solution of Maxwell's equations in the Schwarzschild spacetime by Wald [218]. More...

#include <ExactWald.hpp>

Classes

struct  MagneticFieldAmplitude

Public Types

using options = tmpl::list<MagneticFieldAmplitude>

Public Member Functions

 ExactWald (const ExactWald &)=default
ExactWald & operator= (const ExactWald &)=default
 ExactWald (ExactWald &&)=default
ExactWald & operator= (ExactWald &&)=default
 ExactWald (double magnetic_field_amplitude)
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, const double t, tmpl::list< Tags... >) const
 Retrieve a collection of EM variables at (x, t)
template<typename Tag>
tuples::TaggedTuple< Tag > variables (const tnsr::I< DataVector, 3 > &x, double t, 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 ExactWald &lhs, const ExactWald &rhs)
auto variables (const tnsr::I< DataVector, 3 > &x, double t, tmpl::list< Tags::TildeE >) const -> tuples::TaggedTuple< Tags::TildeE >
 Retrieve the EM variables at (x,t).
auto variables (const tnsr::I< DataVector, 3 > &x, double t, 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, double t, tmpl::list< Tags::TildePsi >) -> tuples::TaggedTuple< Tags::TildePsi >
 Retrieve the EM variables at (x,t).
static auto variables (const tnsr::I< DataVector, 3 > &x, double t, tmpl::list< Tags::TildePhi >) -> tuples::TaggedTuple< Tags::TildePhi >
 Retrieve the EM variables at (x,t).
static auto variables (const tnsr::I< DataVector, 3 > &x, double t, tmpl::list< Tags::TildeQ >) -> tuples::TaggedTuple< Tags::TildeQ >
 Retrieve the EM variables at (x,t).

Detailed Description

An exact electrovacuum force-free solution of Maxwell's equations in the Schwarzschild spacetime by Wald [218].

The solution is given in terms of the electromagnetic 4-potential

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

where \(B_0\) is the vector potential amplitude, \(\phi^\mu = \partial_\phi\), \(t^\mu = \partial_t\), and \(a\) is the (dimensionless) spin of the black hole. The case \(a=0\) is force-free outside the horizon.

Note
This solution is not force-free inside the horizon; the condition \(E_iB^i = 0\) is still satisfied, but \(B^2 > E^2\) is not.

In the spherical Kerr-Schild coordinates, the only nonzero component of vector potential is

\begin{equation} A_\phi = \frac{B_0}{2}r^2 \sin^2 \theta. \end{equation}

Computing magnetic fields,

\begin{align} \tilde{B}^r & = \partial_\theta A_\phi = B_0 r^2 \sin\theta\cos\theta \\ \tilde{B}^\theta & = - \partial_r A_\phi = -B_0 r \sin^2 \theta \\ \tilde{B}^\phi &= 0 , \end{align}

Transformation to the Cartesian coordinates gives

\begin{equation} \tilde{B}^x = 0 , \quad \tilde{B}^y = 0 , \quad \tilde{B}^z = B_0 . \end{equation}

Electric fields are given by

\begin{equation} E_i = F_{ia}n^a = \frac{1}{\alpha}(F_{i0} - F_{ij}\beta^j) . \end{equation}

We omit the derivation and write out results below:

\begin{equation} \tilde{E}^x = - \frac{2 M B_0 y}{r^2}, \quad \tilde{E}^y = \frac{2 M B_0 x}{r^2}, \quad \tilde{E}^z = 0 \end{equation}

Note that \(\tilde{B}^i \equiv \sqrt{\gamma}B^i\), \(\tilde{E}^i \equiv \sqrt{\gamma}E^i\), and \(\gamma = 1 + 2M/r\) in the (Cartesian) Kerr-Schild coordinates. We use \(M=1\) Schwarzschild black hole in the Kerr-Schild coordinates (see the documentation of gr::Solutions::KerrSchild).

Member Function Documentation

◆ get_clone()

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

Member Data Documentation

◆ help

Options::String ForceFree::Solutions::ExactWald::help
staticconstexpr
Initial value:
{
"Exact vacuum solution of Maxwell's equations in Schwarzschild BH "
"spacetime by Wald (1974)."}

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