SpECTRE  v2024.04.12
gr::Solutions::SphericalKerrSchild Class Reference

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

#include <SphericalKerrSchild.hpp>

Classes

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 > > >
 
template<typename DataType , typename Frame = ::Frame::Inertial>
using CachedBuffer = CachedTempBuffer< internal_tags::x_minus_center< DataType, Frame >, internal_tags::r_squared< DataType >, internal_tags::r< DataType >, internal_tags::rho< DataType >, internal_tags::helper_matrix_F< DataType, Frame >, internal_tags::transformation_matrix_P< DataType, Frame >, internal_tags::jacobian< DataType, Frame >, internal_tags::helper_matrix_D< DataType, Frame >, internal_tags::helper_matrix_C< DataType, Frame >, internal_tags::deriv_jacobian< DataType, Frame >, internal_tags::transformation_matrix_Q< DataType, Frame >, internal_tags::helper_matrix_G1< DataType, Frame >, internal_tags::a_dot_x< DataType >, internal_tags::s_number< DataType >, internal_tags::helper_matrix_G2< DataType, Frame >, internal_tags::G1_dot_x< DataType, Frame >, internal_tags::G2_dot_x< DataType, Frame >, internal_tags::inv_jacobian< DataType, Frame >, internal_tags::helper_matrix_E1< DataType, Frame >, internal_tags::helper_matrix_E2< DataType, Frame >, internal_tags::deriv_inv_jacobian< DataType, Frame >, internal_tags::H< DataType >, internal_tags::kerr_schild_x< DataType, Frame >, internal_tags::a_cross_x< DataType, Frame >, internal_tags::kerr_schild_l< DataType, Frame >, internal_tags::l_lower< DataType, Frame >, internal_tags::l_upper< DataType, Frame >, internal_tags::deriv_r< DataType, Frame >, internal_tags::deriv_H< DataType, Frame >, internal_tags::kerr_schild_deriv_l< DataType, Frame >, internal_tags::deriv_l< 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 >, DerivSpatialMetric< DataType, Frame >, ::Tags::dt< gr::Tags::SpatialMetric< DataType, 3, Frame > >, gr::Tags::ExtrinsicCurvature< DataType, 3, Frame >, gr::Tags::InverseSpatialMetric< DataType, 3, Frame >, gr::Tags::SpatialChristoffelFirstKind< DataType, 3, Frame >, gr::Tags::SpatialChristoffelSecondKind< DataType, 3, Frame > >
 
template<typename DataType , typename Frame = Frame::Inertial>
using allowed_tags = tmpl::push_back< tags< DataType, Frame >, typename internal_tags::inv_jacobian< DataType, 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

 SphericalKerrSchild (double mass, Spin::type dimensionless_spin, Center::type center, const Options::Context &context={})
 
 SphericalKerrSchild (CkMigrateMessage *)
 
 SphericalKerrSchild (const SphericalKerrSchild &)=default
 
SphericalKerrSchildoperator= (const SphericalKerrSchild &)=default
 
 SphericalKerrSchild (SphericalKerrSchild &&)=default
 
SphericalKerrSchildoperator= (SphericalKerrSchild &&)=default
 
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
 
template<typename DataType , typename Frame , typename... Tags>
tuples::TaggedTuple< Tags... > variables (const tnsr::I< DataType, volume_dim, Frame > &x, double, tmpl::list< Tags... >) const
 
template<typename DataType , typename Frame , typename... Tags>
tuples::TaggedTuple< Tags... > variables (const tnsr::I< DataType, volume_dim, Frame > &x, double, tmpl::list< Tags... >, gsl::not_null< IntermediateVars< DataType, Frame > * > cache) 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 Spherical Kerr-Schild coordinates.

Introduction

Given a Kerr-Schild (KS) black hole system, we denote the coordinate system using \(\{t,x,y,z\}\). In the transformed system, Spherical Kerr-Schild (Spherical KS), we denote the coordinate system using \(\{t,\bar{x},\bar{y},\bar{z}\}\). Further, when considering indexed objects, we will use Greek and Latin indices with the standard convention \((\mu=0,1,2,3\) and \(i=1,2,3\) respectively), but we will use a bar to denote that a given index is in reference to the Spherical KS coordinate system (i.e. \(i\) vs. \(\bar{\imath}\) and \(\mu\) vs. \(\bar{\mu}\)).

Spin in the z direction

The Transformation

The Boyer-Lindquist radius for KS with its spin in the \(z\) direction is defined by

\begin{align} \frac{x^2 + y^2}{r^2 + a^2} + \frac{z^2}{r^2} = 1, \end{align}

or equivalently,

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

The Spherical KS coordinates

\begin{align} \vec{\bar{x}} = x^{\bar{\imath}} = x_{\bar{\imath}} = (\bar{x},\bar{y},\bar{z}), \end{align}

and KS coordinates

\begin{align} \vec{x} = x^{i} = x_{i} = (x,y,z), \end{align}

are related by

\begin{align} \left(\frac{\bar{x}}{r},\frac{\bar{y}}{r},\frac{\bar{z}}{r}\right) \equiv \left(\frac{x}{\rho},\frac{y}{\rho},\frac{z}{r}\right), \end{align}

where we have defined

\begin{align} \rho^2 \equiv r^2 + a^2. \label{eq:rho} \end{align}

Therefore, we have that \(r\) satisfies the equation for a sphere in Spherical KS

\begin{align} r^2 = \vec{\bar{x}}\cdot\vec{\bar{x}} = \bar{x}^2 + \bar{y}^2 + \bar{z}^2. \end{align}

It is clear to see that the Spherical KS radius coincides with the Boyer-Lindquist radius.

Spin in an Arbitrary Direction

Given that the remaining important quantities take forms that are easily specialized to the \(z\) spin case, we instead focus on the general case for brevity.

The Transformation

The Boyer-Lindquist radius for KS with spin in an arbitrary direction is defined by

\begin{align} r^2 = \frac{1}{2}\left(\vec{x}\cdot\vec{x}-a^2\right) + \left(\frac{1}{4}\left(\vec{x}\cdot\vec{x}-a^2\right)^2 + \left(\vec{a}\cdot\vec{x}\right)^2\right)^{1/2}. \end{align}

Then, defining two transformation matrices \(Q^{\bar{\imath}}{}_{j}\) and \(P^{j}{}_{\bar{\imath}}\) as

\begin{align} Q^{\bar{\imath}}{}_{j} &= \frac{r}{\rho}\delta^{\bar{\imath}}{}_{j} + \frac{1}{(\rho + r)\rho}a^{\bar{\imath}}a_{j}, \\ P^{j}{}_{\bar{\imath}} &= \frac{\rho}{r}\delta^{j}{}_{\bar{\imath}} - \frac{1}{(\rho + r)r}a^{j}a_{\bar{\imath}}, \end{align}

where the definition of \(\rho\) is identical to Eq. \((\ref{eq:rho})\), such that

\begin{align} Q^{\bar{\imath}}{}_{j}x^{j} &= x^{\bar{\imath}}, \\ P^{j}{}_{\bar{\imath}}x^{\bar{\imath}} &= x^{j}. \end{align}

We again recover that \(r\) satisfies the equation for a sphere in Spherical KS

\begin{align} r^2 = \vec{\bar{x}}\cdot\vec{\bar{x}} = \bar{x}^2+\bar{y}^2+\bar{z}^2, \end{align}

and we also have that

\begin{align} \vec{a}\cdot\vec{\bar{x}} = \vec{a}\cdot\vec{x}. \end{align}

Note that \(Q^{\bar{\imath}}{}_{ j}\) and \(P^{j}{}_{\bar{\imath}}\) satisfy

\begin{align} P^{i}{}_{\bar{\jmath}}\,Q^{\bar{\jmath}}{}_{ k} = \delta^{i}{}_{ k}. \end{align}

The Jacobian is then given by

\begin{align} T^{i}{}_{\bar{\jmath}} = \partial_{\bar{\jmath}}\,x^{i} = \frac{\partial x^i}{\partial x^{\bar{\jmath}}}, \end{align}

while its inverse is given by

\begin{align} S^{\bar{\jmath}}{}_{ i} = \partial_{i}\,x^{\bar{\jmath}} = \frac{\partial x^{\bar{\jmath}}}{\partial x^i}, \end{align}

which in turn satisfies

\begin{align} T^{i}{}_{\bar{\jmath}}\,S^{\bar{\jmath}}{}_{ k} &= \delta^i_{\; k}. \end{align}

The Metric

A KS coordinate system is defined by

\begin{align} g_{\mu\nu} = \eta_{\mu\nu} + 2Hl_{\mu}l_{\nu}, \end{align}

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 inverse of the spacetime metric is given by

\begin{align} g^{\mu\nu} = \eta^{\mu\nu} - 2Hl^{\mu}l^{\nu}. \end{align}

The scalar function \(H\) takes the form

\begin{align} H = \frac{Mr^3}{r^4 + \left(\vec{a}\cdot\vec{x}\right)^{2}}, \end{align}

where \(M\) is the mass, while the spatial part of the null vector takes the form

\begin{align} l_{i} = l^{i} = \frac{r\vec{x} - \vec{a}\times\vec{x} + \frac{(\vec{a}\cdot\vec{x})\vec{a}}{r}}{\rho^2}. \end{align}

Note that the full spacetime form of the null vector is

\begin{align} l_{\mu} &= (-1,l_{i}), & l^{\mu} &= (1,l^{i}). \end{align}

Transforming the KS spatial metric then yields the following Spherical KS spatial metric

\begin{align} \gamma_{\bar{\imath}\bar{\jmath}} &= \gamma_{mn}T^{m}{}_{\bar{\imath}}\,T^{n}{}_{\bar{\jmath}}, \nonumber \\ &= \eta_{mn}T^{m}{}_{\bar{\imath}}\,T^{n}{}_{\bar{\jmath}} + 2Hl_{m}l_{n}T^{m}{}_{\bar{\imath}}\,T^{n}{}_{\bar{\jmath}}, \nonumber \\ &= \eta_{\bar{\imath}\bar{\jmath}} + 2Hl_{\bar{\imath}}l_{\bar{\jmath}}. \end{align}

The transformed spacetime Minkowski metric is given by

\begin{align} \eta_{\bar{\mu}\bar{\nu}} = (-1)\otimes\eta_{\bar{\imath}\bar{\jmath}}, \end{align}

and the transformed spacetime null vector is given by

\begin{align} l_{\bar{\mu}} &= (-1,l_{\bar{\imath}}), & l^{\bar{\mu}} &= (1,l^{\bar{\imath}}). \end{align}

Therefore, the Spherical KS spacetime metric is

\begin{align} g_{\bar{\mu}\bar{\nu}} = \eta_{\bar{\mu}\bar{\nu}} + 2Hl_{\bar{\mu}}l_{\bar{\nu}}. \end{align}

Further, we have that the lapse in Spherical KS is given by

\begin{align} \alpha = \left(1 + 2H\right)^{-1/2}, \end{align}

and the shift in Spherical KS by

\begin{align} \beta^{\bar{\imath}} &= -\frac{2Hl^{t}l^{\bar{\imath}}}{1 + 2Hl^{t}l^{t}} = -2H\alpha^{2}l^{t}l^{\bar{\imath}}, & \beta_{\bar{\imath}} &= -2Hl_{t}l_{\bar{\imath}}. \end{align}

Derivatives

The derivatives of the preceding quantities are

\begin{align} \frac{\partial r}{\partial x^{i}} &= \frac{r^{2}x_{i} + \left(\vec{a}\cdot\vec{x}\right)a_{i}}{rs}, \\ \partial_{\bar{\imath}}H &= HT^{m}{}_{\bar{\imath}} \left[\frac{3}{r}\frac{\partial r}{\partial x^{m}} - \frac{4r^{3}\frac{\partial r}{\partial x^{m}} + 2\left(\vec{a}\cdot\vec{x}\right)a_{m}}{r^{4} + \left(\vec{a}\cdot\vec{x}\right)^{2}}\right], \\ \partial_{\bar{\jmath}}l^{\bar{\imath}} &= \partial_{\bar{\jmath}}\left(l_{k}T^{k}{}_{\bar{\imath}}\right), \nonumber \\ &= T^{k}{}_{\bar{\imath}}T^{m}{}_{\bar{\jmath}}\frac{1}{\rho^{2}} \left[\left(x_{k} - 2rl_{k} - \frac{\left(\vec{a}\cdot\vec{x}\right)a_{k}}{r^{2}}\right) \frac{\partial r}{\partial x^{m}} + r\delta_{km} + \frac{a_{k}a_{m}}{r} + \epsilon^{kmn}a_{n}\right] + l_{k}\partial_{\bar{\jmath}}T^{k}{}_{\bar{\imath}}, \\ \partial_{\bar{k}}\gamma_{\bar{\imath}\bar{\jmath}} &= 2l_{\bar{\imath}}l_{\bar{\jmath}}\partial_{\bar{k}}H + 4Hl_{(\bar{\imath}}\partial_{\bar{k}}l_{\bar{\jmath})} + T^{m}{}_{\bar{\jmath}}\partial_{\bar{k}}T^{m}{}_{\bar{\imath}} + T^{m}{}_{\bar{\imath}}\partial_{\bar{k}}T^{m}{}_{\bar{\jmath}}, \\ \partial_{\bar{k}}\alpha &= -\left(1+2H\right)^{-3/2}\partial_{\bar{k}}H = -\alpha^{3}\partial_{\bar{k}}H, \\ \partial_{\bar{k}}\beta^{i} &= 2\alpha^{2}\left[l^{\bar{\imath}}\partial_{\bar{k}}H + H\left(S^{\bar{\imath}}{}_{j}S^{\bar{m}}{}_{n} \delta_{nj}\partial_{\bar{k}}l_{\bar{m}} + S^{\bar{\imath}}{}_{j}l_{\bar{m}}\partial_{\bar{k}}S^{\bar{m}}{}_{n} \delta_{nj} + S^{\bar{m}}{}_{n}\delta_{nj}l_{\bar{m}} \partial_{\bar{k}}S^{\bar{\imath}}{}_{j}\right)\right] - 4Hl^{\bar{\imath}}\alpha^{4}\partial_{\bar{k}}H, \end{align}

where we have defined \(s\) as

\begin{align} s &\equiv r^{2} + \frac{\left(\vec{a}\cdot\vec{x}\right)^{2}}{r^{2}}. \label{eq: s_number} \end{align}

Code

While the previous sections described the relevant physical quantities, the actual files make use of internally defined objects to ease the computation of the Jacobian, the inverse Jacobian, and their corresponding derivatives. Therefore, we now list these intermediary objects as well as how they construct the aforementioned physical quantities with the appropriate definition found in the code (all for arbitrary spin).

Helper Matrices

The intermediary objects used to define the various Jacobian objects, the so-called "helper matrices", are defined below.

\begin{align} F^{i}{}_{\bar{k}} &\equiv -\frac{1}{\rho r^{3}}\left(a^{2}\delta^{i}{}_{\bar{k}} - a^{i}a_{\bar{k}}\right), \\ \left(G_1\right)^{\bar{\imath}}{}_{ \bar{m}} &\equiv \frac{1}{\rho^{2}r}\left(a^{2}\delta^{\bar{\imath}}{}_{\bar{m}} - a^{\bar{\imath}}a_{\bar{m}}\right), \\ \left(G_2\right)^{\bar{n}}{}_{ j} &\equiv \frac{\rho^{2}}{sr}Q^{\bar{n}}{}_{j}, \\ D^{i}{}_{\bar{m}} &\equiv \frac{1}{\rho^{3}r}\left(a^{2}\delta^{i}{}_{\bar{m}} - a^{i}a_{\bar{m}}\right), \\ C^{i}{}_{\bar{m}} &\equiv D^{i}{}_{\bar{m}} - 3F^{i}{}_{\bar{m}} = \frac{1}{\rho r}\left(\frac{1}{\rho^{2}} + \frac{3}{r^{2}}\right)\left(a^{2}\delta^{i}{}_{\bar{m}} - a^{i}a_{\bar{m}}\right), \\ \left(E_1\right)^{i}{}_{\bar{m}} &\equiv -\frac{1}{\rho^{2}}\left(\frac{1}{r^{2}} + \frac{2}{\rho^{2}}\right)\left(a^{2}\delta^{i}{}_{\bar{m}} - a^{i}a_{\bar{m}}\right), \nonumber \\ &= -\frac{\left(\rho^{2} + 2r^{2}\right)}{r^{2}\rho^{4}}\left(a^{2}\delta^{i}{}_{\bar{m}} - a^{i}a_{\bar{m}}\right), \\ \left(E_2\right)^{\bar{n}}{}_{ j} &\equiv \left[-\frac{a^{2}}{\rho^{2}r} - \frac{2}{s}\left(r - \frac{\left(\vec{a}\cdot\vec{x}\right)^{2}}{r^{3}} \right)\right]\cdot\left(G_2\right)^{\bar{n}}{}_{ j} + \frac{1}{s}P^{\bar{n}}{}_{ j}, \end{align}

where \(s\) is defined identically to Eq. \((\ref{eq: s_number})\).

Physical Quantities

Below are the definitions for how we construct the Jacobian, inverse Jacobian, derivative of the Jacobian, and derivative of the inverse Jacobian in the code using the helper matrices.

\begin{align} T^{i}{}_{\bar{\jmath}} &= P^{i}{}_{\bar{\jmath}} + F^{i}{}_{\bar{k}}x^{\bar{k}}x_{\bar{\jmath}}, \\ S^{\bar{\imath}}{}_{ j} &= Q^{\bar{\imath}}{}_{ j} + \left(G_1\right)^{\bar{\imath}}{}_{\bar{m}}x^{\bar{m}}x_{\bar{n}} \left(G_2\right)^{\bar{n}}{}_{ j}, \\ \partial_{\bar{k}}T^{i}{}_{\bar{\jmath}} &= F^{i}{}_{\bar{\jmath}}x_{\bar{k}} + F^{i}{}_{\bar{k}}x_{\bar{\jmath}} + F^{i}{}_{\bar{m}}x^{\bar{m}}\delta_{jk} + C^{i}{}_{\bar{m}}\frac{x_{\bar{k}}x^{\bar{m}}x_{\bar{\jmath}}}{r^{2}}, \\ \partial_{\bar{k}}S^{\;\bar{\imath}}{}_{ j} &= D^{\bar{\imath}}{}_{j}x_{\bar{k}} + \left(G_1\right)^{\bar{\imath}}{}_{\bar{k}}x_{\bar{n}} \left(G_2\right)^{\bar{n}}{}_{j} + \left(G_1\right)^{\bar{\imath}}{}_{\bar{m}}x^{\bar{m}} \left(G_2\right)^{\bar{n}}{}_{j}\delta_{\bar{n}\bar{k}} \nonumber \\ &\quad + \left(E_1\right)^{i}{}_{\bar{m}}\frac{x_{\bar{k}}x^{\bar{m}}x_{\bar{n}}}{r} \left(G_2\right)^{\bar{n}}{}_{j} + \left(G_1\right)^{\bar{i}}{}_{\bar{m}} \frac{x_{\bar{k}}x^{\bar{m}}x_{\bar{n}}}{r}\left(E_2\right)^{\bar{n}}{}_{j} - \left(G_1\right)^{\bar{\imath}}{}_{\bar{m}}x^{\bar{m}}x_{\bar{n}} \left(G_2\right)^{\bar{n}}{}_{j} \frac{2\left(\vec{a}\cdot\vec{x}\right)}{sr^{2}}a_{\bar{k}}. \end{align}

Member Data Documentation

◆ help

constexpr Options::String gr::Solutions::SphericalKerrSchild::help
staticconstexpr
Initial value:
{
"Black hole in Spherical Kerr-Schild coordinates"}

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