SpECTRE  v2024.05.11
gr::Solutions::KerrSchild Class Reference

Kerr black hole in Kerr-Schild coordinates. More...

#include <KerrSchild.hpp>


struct  Center
class  IntermediateComputer
class  IntermediateVars
struct  internal_tags
struct  Mass
struct  Spin

Public Types

using options = tmpl::list< Mass, Spin, Center >
template<typename DataType , typename Frame = Frame::Inertial>
using tags = tmpl::flatten< tmpl::list< AnalyticSolution< 3_st >::tags< DataType, Frame >, gr::Tags::DerivDetSpatialMetric< DataType, 3, Frame >, gr::Tags::TraceExtrinsicCurvature< DataType >, gr::Tags::SpatialChristoffelFirstKind< DataType, 3, Frame >, gr::Tags::SpatialChristoffelSecondKind< DataType, 3, Frame >, gr::Tags::TraceSpatialChristoffelSecondKind< DataType, 3, Frame >, gr::Tags::SpacetimeChristoffelSecondKind< DataType, 3, Frame > > >
template<typename DataType , typename Frame = ::Frame::Inertial>
using CachedBuffer = CachedTempBuffer< internal_tags::x_minus_center< DataType, Frame >, internal_tags::a_dot_x< DataType >, internal_tags::a_dot_x_squared< DataType >, internal_tags::half_xsq_minus_asq< DataType >, internal_tags::r_squared< DataType >, internal_tags::r< DataType >, internal_tags::a_dot_x_over_rsquared< DataType >, internal_tags::deriv_log_r_denom< DataType >, internal_tags::deriv_log_r< DataType, Frame >, internal_tags::H_denom< DataType >, internal_tags::H< DataType >, internal_tags::deriv_H_temp1< DataType >, internal_tags::deriv_H_temp2< DataType >, internal_tags::deriv_H< DataType, Frame >, internal_tags::denom< DataType >, internal_tags::a_dot_x_over_r< DataType >, internal_tags::null_form< DataType, Frame >, internal_tags::deriv_null_form< DataType, Frame >, internal_tags::lapse_squared< DataType >, gr::Tags::Lapse< DataType >, internal_tags::deriv_lapse_multiplier< DataType >, internal_tags::shift_multiplier< DataType >, gr::Tags::Shift< DataType, 3, Frame >, DerivShift< DataType, Frame >, gr::Tags::SpatialMetric< DataType, 3, Frame >, gr::Tags::InverseSpatialMetric< DataType, 3, Frame >, DerivSpatialMetric< DataType, Frame >, ::Tags::dt< gr::Tags::SpatialMetric< DataType, 3, Frame > >, gr::Tags::ExtrinsicCurvature< DataType, 3, Frame >, gr::Tags::SpatialChristoffelFirstKind< DataType, 3, Frame >, gr::Tags::SpatialChristoffelSecondKind< DataType, 3, Frame > >
- Public Types inherited from gr::AnalyticSolution< 3_st >
using DerivLapse = ::Tags::deriv< gr::Tags::Lapse< DataType >, tmpl::size_t< volume_dim >, Frame >
using DerivShift = ::Tags::deriv< gr::Tags::Shift< DataType, volume_dim, Frame >, tmpl::size_t< volume_dim >, Frame >
using DerivSpatialMetric = ::Tags::deriv< gr::Tags::SpatialMetric< DataType, volume_dim, Frame >, tmpl::size_t< volume_dim >, Frame >
using tags = tmpl::list< gr::Tags::Lapse< DataType >, ::Tags::dt< gr::Tags::Lapse< DataType > >, DerivLapse< DataType, Frame >, gr::Tags::Shift< DataType, volume_dim, Frame >, ::Tags::dt< gr::Tags::Shift< DataType, volume_dim, Frame > >, DerivShift< DataType, Frame >, gr::Tags::SpatialMetric< DataType, volume_dim, Frame >, ::Tags::dt< gr::Tags::SpatialMetric< DataType, volume_dim, Frame > >, DerivSpatialMetric< DataType, Frame >, gr::Tags::SqrtDetSpatialMetric< DataType >, gr::Tags::ExtrinsicCurvature< DataType, volume_dim, Frame >, gr::Tags::InverseSpatialMetric< DataType, volume_dim, Frame > >

Public Member Functions

 KerrSchild (double mass, const std::array< double, 3 > &dimensionless_spin, const std::array< double, 3 > &center, const Options::Context &context={})
 KerrSchild (CkMigrateMessage *)
 KerrSchild (const KerrSchild &)=default
KerrSchildoperator= (const KerrSchild &)=default
 KerrSchild (KerrSchild &&)=default
KerrSchildoperator= (KerrSchild &&)=default
template<typename DataType , typename Frame , typename... Tags>
tuples::TaggedTuple< Tags... > variables (const tnsr::I< DataType, volume_dim, Frame > &x, double, tmpl::list< Tags... >) const
void pup (PUP::er &p)
double mass () const
const std::array< double, volume_dim > & center () const
const std::array< double, volume_dim > & dimensionless_spin () const
bool zero_spin () const

Static Public Attributes

static constexpr Options::String help
- Static Public Attributes inherited from gr::AnalyticSolution< 3_st >
static constexpr size_t volume_dim

Detailed Description

Kerr black hole in Kerr-Schild coordinates.


The metric is \(g_{\mu\nu} = \eta_{\mu\nu} + 2 H l_\mu l_\nu\), where \(\eta_{\mu\nu}\) is the Minkowski metric, \(H\) is a scalar function, and \(l_\mu\) is the outgoing null vector. \(H\) and \(l_\mu\) are known functions of the coordinates and of the mass and spin vector.

The following are input file options that can be specified:

  • Mass (default: 1.)
  • Center (default: {0,0,0})
  • Spin (default: {0,0,0})

Kerr-Schild Coordinates

A Kerr-Schild coordinate system is defined by

\begin{equation} g_{\mu\nu} \equiv \eta_{\mu\nu} + 2 H l_\mu l_\nu, \end{equation}

where \(H\) is a scalar function of the coordinates, \(\eta_{\mu\nu}\) is the Minkowski metric, and \(l^\mu\) is a null vector. Note that the form of the metric along with the nullness of \(l^\mu\) allows one to raise and lower indices of \(l^\mu\) using \(\eta_{\mu\nu}\), and that \(l^t l^t = l_t l_t = l^i l_i\). Note also that

\begin{equation} g^{\mu\nu} \equiv \eta^{\mu\nu} - 2 H l^\mu l^\nu, \end{equation}

and that \(\sqrt{-g}=1\). Also, \(l_\mu\) is a geodesic with respect to both the physical metric and the Minkowski metric:

\begin{equation} l^\mu \partial_\mu l_\nu = l^\mu\nabla_\mu l_\nu = 0. \end{equation}

The corresponding 3+1 quantities are

\begin{eqnarray} g_{i j} &=& \delta_{i j} + 2 H l_i l_j,\\ g^{i j} &=& \delta^{i j} - {2 H l^i l^j \over 1+2H l^t l^t},\\ {\rm det} g_{i j}&=& 1+2H l^t l^t,\\ \partial_k ({\rm det} g_{i j})&=& 2 l^t l^t \partial_k H,\\ \beta^i &=& - {2 H l^t l^i \over 1+2H l^t l^t},\\ N &=& \left(1+2 H l^t l^t\right)^{-1/2},\quad\hbox{(lapse)}\\ \alpha &=& \left(1+2 H l^t l^t\right)^{-1}, \quad\hbox{(densitized lapse)}\\ K_{i j} &=& - \left(1+2 H l^t l^t\right)^{1/2} \left[l_i l_j \partial_{t} H + 2 H l_{(i} \partial_{t} l_{j)}\right] \nonumber \\ &&-2\left(1+2 H l^t l^t\right)^{-1/2} \left[H l^t \partial_{(i}l_{j)} + H l_{(i}\partial_{j)}l^t + l^t l_{(i}\partial_{j)} H + 2H^2 l^t l_{(i} l^k\partial_{k}l_{j)} + H l^t l_i l_j l^k \partial_{k} H\right],\\ \partial_{k}g_{i j}&=& 2 l_i l_j\partial_{k} H + 4 H l_{(i} \partial_{k}l_{j)},\\ \partial_{k}N &=& -\left(1+2 H l^t l^t\right)^{-3/2} \left(l^tl^t\partial_{k}H+2Hl^t\partial_{k}l^t\right),\\ \partial_{k}\beta^i &=& - 2\left(1+2H l^t l^t\right)^{-1} \left(l^tl^i\partial_{k}H+Hl^t\partial_{k}l^i+Hl^i\partial_{k}l^t\right) + 4 H l^t l^i \left(1+2H l^t l^t\right)^{-2} \left(l^tl^t\partial_{k}H+2Hl^t\partial_{k}l^t\right),\\ \Gamma^k{}_{i j}&=& -\delta^{k m}\left(l_i l_j \partial_{m}H + 2l_{(i} \partial_{m}l_{j)} \right) + 2 H l_{(i}\partial_{j)} l^k \nonumber \\ &&+\left(1+2 H l^t l^t\right)^{-1} \left[2 l^k l_{(i}\partial_{j)} H +2 H l_i l_j l^k l^m \partial_{m}H +2 H l^k \partial_{(i}l_{j)} +4 H^2 l^k l_{(i} (l^m \partial_{m}l_{j)} -\partial_{j)} l^t) \right]. \end{eqnarray}

Note that \(l^i\) is not equal to \(g^{i j} l_j\); it is equal to \({}^{(4)}g^{i \mu} l_\mu\).

Kerr Spacetime

Spin in the z direction

Assume Cartesian coordinates \((t,x,y,z)\). Then for stationary Kerr spacetime with mass \(M\) and angular momentum \(a M\) in the \(z\) direction,

\begin{eqnarray} H &=& {M r^3 \over r^4 + a^2 z^2},\\ l_\mu &=& \left(1,{rx+ay\over r^2+a^2},{ry-ax\over r^2+a^2},{z\over r}\right), \end{eqnarray}

where \(r\) is defined by

\begin{equation} \label{eq:rdefinition1} {x^2+y^2\over a^2+r^2} + {z^2\over r^2} = 1, \end{equation}

or equivalently,

\begin{equation} r^2 = {1\over 2}(x^2 + y^2 + z^2 - a^2) + \left({1\over 4}(x^2 + y^2 + z^2 - a^2)^2 + a^2 z^2\right)^{1/2}. \end{equation}

Possibly useful formula:

\begin{equation} \partial_{i} r = {x_i + z \delta_{i z} \displaystyle {a^2\over r^2} \over 2 r\left(1 - \displaystyle {x^2 + y^2 + z^2 - a^2\over 2 r^2}\right)}. \end{equation}

Spin in an arbitrary direction

For arbitrary spin direction, let \(\vec{x}\equiv (x,y,z)\) and \(\vec{a}\) be a flat-space three-vector with magnitude-squared ( \(\delta_{ij}\) norm) equal to \(a^2\). Then the Kerr-Schild quantities for Kerr spacetime are:

\begin{eqnarray} H &=& {M r^3 \over r^4 + (\vec{a}\cdot\vec{x})^2},\\ \vec{l} &=& {r\vec{x}-\vec{a}\times\vec{x}+(\vec{a}\cdot\vec{x})\vec{a}/r \over r^2+a^2 },\\ l_t &=& 1,\\ \label{eq:rdefinition2} r^2 &=& {1\over 2}(\vec{x}\cdot\vec{x}-a^2) + \left({1\over 4}(\vec{x}\cdot\vec{x}-a^2)^2 + (\vec{a}\cdot\vec{x})^2\right)^{1/2}, \end{eqnarray}

where \(\vec{l}\equiv (l_x,l_y,l_z)\), and all dot and cross products are evaluated as flat-space 3-vector operations.

Possibly useful formulae:

\begin{equation} \partial_{i} r = {x_i + (\vec{a}\cdot\vec{x})a_i/r^2 \over 2 r\left(1 - \displaystyle {\vec{x}\cdot\vec{x}-a^2\over 2 r^2}\right)}, \end{equation}

\begin{equation} {\partial_{i} H \over H} = {3\partial_{i}r\over r} - {4 r^3 \partial_{i}r + 2(\vec{a}\cdot\vec{x})\vec{a} \over r^4 + (\vec{a}\cdot\vec{x})^2}, \end{equation}

\begin{equation} (r^2+a^2)\partial_{j} l_i = (x_i-2 r l_i-(\vec{a}\cdot\vec{x})a_i/r^2)\partial_{j}r + r\delta_{ij} + a_i a_j/r + \epsilon^{ijk} a_k. \end{equation}

Cartesian and Spherical Coordinates for Kerr

The Kerr-Schild coordinates are defined in terms of the Cartesian coordinates \((x,y,z)\). If one wishes to express Kerr-Schild coordinates in terms of the spherical polar coordinates \((\tilde{r},\theta,\phi)\) then one can make the obvious and usual transformation

\begin{equation} \label{eq:sphertocartsimple} x=\tilde{r}\sin\theta\cos\phi,\quad y=\tilde{r}\sin\theta\sin\phi,\quad z=\tilde{r}\cos\theta. \end{equation}

This is simple, and has the advantage that in this coordinate system for \(M\to0\), Kerr spacetime becomes Minkowski space in spherical coordinates \((\tilde{r},\theta,\phi)\). However, the disadvantage is that the horizon of a Kerr hole is not located at constant \(\tilde{r}\), but is located instead at constant \(r\), where \(r\) is the radial Boyer-Lindquist coordinate defined in ( \(\ref{eq:rdefinition2}\)).

For spin in the \(z\) direction, one could use the transformation

\begin{equation} x=\sqrt{r^2+a^2}\sin\theta\cos\phi,\quad y=\sqrt{r^2+a^2}\sin\theta\sin\phi,\quad z=r\cos\theta. \end{equation}

In this case, for \(M\to0\), Kerr spacetime becomes Minkowski space in spheroidal coordinates, but now the horizon is on a constant-coordinate surface.

Right now we use ( \(\ref{eq:sphertocartsimple}\)), but we may wish to use the other transformation in the future.

Member Data Documentation

◆ help

constexpr Options::String gr::Solutions::KerrSchild::help
Initial value:
"Black hole in Kerr-Schild coordinates"}

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