SpECTRE
v2024.12.16
|
Kerr black hole in Kerr-Schild coordinates. More...
#include <KerrSchild.hpp>
Classes | |
struct | Center |
class | IntermediateComputer |
class | IntermediateVars |
struct | internal_tags |
struct | Mass |
struct | Spin |
struct | Velocity |
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_unboosted< DataType, Frame >, 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_unboosted< DataType, Frame >, internal_tags::deriv_H< DataType, Frame >, internal_tags::denom< DataType >, internal_tags::a_dot_x_over_r< DataType >, internal_tags::null_form_unboosted< DataType, Frame >, internal_tags::null_form< DataType, Frame >, internal_tags::deriv_null_form_unboosted< DataType, Frame >, internal_tags::deriv_null_form< DataType, Frame >, internal_tags::null_form_dot_deriv_H< DataType >, internal_tags::null_form_dot_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 = implementation defined |
Public Member Functions | |
KerrSchild (double mass, const std::array< double, 3 > &dimensionless_spin, const std::array< double, 3 > ¢er, const std::array< double, 3 > &boost_velocity={{0., 0., 0.}}, const Options::Context &context={}) | |
KerrSchild (CkMigrateMessage *) | |
KerrSchild (const KerrSchild &)=default | |
KerrSchild & | operator= (const KerrSchild &)=default |
KerrSchild (KerrSchild &&)=default | |
KerrSchild & | operator= (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 |
const std::array< double, volume_dim > & | boost_velocity () const |
bool | zero_spin () const |
bool | zero_velocity () 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 Kerr-Schild coordinates.
The metric is
The following are input file options that can be specified:
A Kerr-Schild coordinate system is defined by
where
and that
The corresponding 3+1 quantities are
Note that
Assume Cartesian coordinates
where
or equivalently,
Possibly useful formula:
For arbitrary spin direction, let
where
Possibly useful formulae:
The Kerr-Schild coordinates are defined in terms of the Cartesian coordinates
This is simple, and has the advantage that in this coordinate system for
For spin in the
In this case, for
Right now we use (
We add initial momentum to the solution by applying a Lorentz boost to the metric. Since the Kerr-Schild metric can be expressed covariantly in terms of the Minkowski metric, a scalar function and a one form, we construct the metric in the rest frame of the black hole and then apply an inverse boost to each of the covariant objects individually. Notice that we also need to appropriately boost the coordinates to the to the rest frame before computing the metric.
Moreover, since the boosted solution is intended for use as initial data, we do not compute the time derivatives of the lapse and shift in the boosted frame but set them to zero.
Consequently, the gr::Tags::SpacetimeChristoffelSecondKind computed here, corresponds to the boosted Kerr-Schild for the gauge where lapse and shift have vanishing derivatives.
|
staticconstexpr |