SpECTRE
v2024.04.12
|
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 | |
SphericalKerrSchild & | operator= (const SphericalKerrSchild &)=default |
SphericalKerrSchild (SphericalKerrSchild &&)=default | |
SphericalKerrSchild & | operator= (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 |
Kerr black hole in Spherical Kerr-Schild coordinates.
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}\)).
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.
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 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}
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}
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}
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).
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})\).
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}
|
staticconstexpr |