SpECTRE
v2025.03.17
|
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 = implementation defined |
template<typename DataType , typename Frame = Frame::Inertial> | |
using | tags = implementation defined |
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 = implementation defined |
![]() | |
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 = implementation defined |
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 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
The Boyer-Lindquist radius for KS with its spin in the
or equivalently,
The Spherical KS coordinates
and KS coordinates
are related by
where we have defined
Therefore, we have that
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
The Boyer-Lindquist radius for KS with spin in an arbitrary direction is defined by
Then, defining two transformation matrices
where the definition of
We again recover that
and we also have that
Note that
The Jacobian is then given by
while its inverse is given by
which in turn satisfies
A KS coordinate system is defined by
where
The scalar function
where
Note that the full spacetime form of the null vector is
Transforming the KS spatial metric then yields the following Spherical KS spatial metric
The transformed spacetime Minkowski metric is given by
and the transformed spacetime null vector is given by
Therefore, the Spherical KS spacetime metric is
Further, we have that the lapse in Spherical KS is given by
and the shift in Spherical KS by
The derivatives of the preceding quantities are
where we have defined
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.
where
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.
|
staticconstexpr |