|
SpECTRE
2021.08.02
|
Kerr spacetime in general relativity. More...
#include <Kerr.hpp>
Public Member Functions | |
| WRAPPED_PUPable_decl_template (Kerr) | |
| template<typename DataType , typename... RequestedTags> | |
| tuples::TaggedTuple< RequestedTags... > | variables (const tnsr::I< DataType, 3, Frame::Inertial > &x, tmpl::list< RequestedTags... >) const noexcept |
| template<typename DataType , typename... RequestedTags> | |
| tuples::TaggedTuple< RequestedTags... > | variables (const tnsr::I< DataType, 3, Frame::Inertial > &x, const Mesh< 3 > &mesh, const InverseJacobian< DataVector, 3, Frame::Logical, Frame::Inertial > &inv_jacobian, tmpl::list< RequestedTags... >) const noexcept |
| void | pup (PUP::er &p) noexcept override |
Public Member Functions inherited from Xcts::Solutions::AnalyticSolution< tmpl::list< Solutions::Registrars::Kerr > > | |
| tuples::TaggedTuple< RequestedTags... > | variables (const tnsr::I< DataType, 3, Frame::Inertial > &x, tmpl::list< RequestedTags... >) const noexcept |
Public Member Functions inherited from AnalyticData< Dim, Registrars > | |
| template<typename DataType , typename... Tags> | |
| tuples::TaggedTuple< Tags... > | variables (const tnsr::I< DataType, Dim > &x, tmpl::list< Tags... >) const noexcept |
Retrieve a collection of tensor fields at spatial coordinate(s) x | |
| template<typename... Tags> | |
| tuples::TaggedTuple< Tags... > | variables (const tnsr::I< DataVector, Dim > &x, const Mesh< Dim > &mesh, const InverseJacobian< DataVector, Dim, Frame::Logical, Frame::Inertial > &inv_jacobian, tmpl::list< Tags... >) const noexcept |
Retrieve a collection of tensor fields at spatial coordinate(s) x More... | |
Public Member Functions inherited from gr::Solutions::KerrSchild | |
| KerrSchild (double mass, Spin::type dimensionless_spin, Center::type center, const Options::Context &context={}) | |
| KerrSchild (CkMigrateMessage *) noexcept | |
| KerrSchild (const KerrSchild &)=default | |
| KerrSchild & | operator= (const KerrSchild &)=default |
| KerrSchild (KerrSchild &&) noexcept=default | |
| KerrSchild & | operator= (KerrSchild &&) noexcept=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 noexcept |
| void | pup (PUP::er &p) noexcept |
| double | mass () const noexcept |
| const std::array< double, volume_dim > & | center () const noexcept |
| const std::array< double, volume_dim > & | dimensionless_spin () const noexcept |
Additional Inherited Members | |
Public Types inherited from Xcts::Solutions::AnalyticSolution< tmpl::list< Solutions::Registrars::Kerr > > | |
| using | registrars = tmpl::list< Solutions::Registrars::Kerr > |
| using | creatable_classes = Registration::registrants< registrars > |
Public Types inherited from AnalyticData< Dim, Registrars > | |
| using | registrars = Registrars |
| using | creatable_classes = Registration::registrants< registrars > |
Public Types inherited from gr::Solutions::KerrSchild | |
| using | options = tmpl::list< Mass, Spin, Center > |
| template<typename DataType , typename Frame = ::Frame::Inertial> | |
| using | CachedBuffer = CachedTempBuffer< IntermediateComputer< 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< 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< 3, Frame, DataType >, DerivShift< DataType, Frame >, gr::Tags::SpatialMetric< 3, Frame, DataType >, DerivSpatialMetric< DataType, Frame >, ::Tags::dt< gr::Tags::SpatialMetric< 3, Frame, DataType > > > |
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< volume_dim, Frame, DataType >, tmpl::size_t< volume_dim >, Frame > |
| using | DerivSpatialMetric = ::Tags::deriv< gr::Tags::SpatialMetric< volume_dim, Frame, DataType >, 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< volume_dim, Frame, DataType >, ::Tags::dt< gr::Tags::Shift< volume_dim, Frame, DataType > >, DerivShift< DataType, Frame >, gr::Tags::SpatialMetric< volume_dim, Frame, DataType >, ::Tags::dt< gr::Tags::SpatialMetric< volume_dim, Frame, DataType > >, DerivSpatialMetric< DataType, Frame >, gr::Tags::SqrtDetSpatialMetric< DataType >, gr::Tags::ExtrinsicCurvature< volume_dim, Frame, DataType >, gr::Tags::InverseSpatialMetric< volume_dim, Frame, DataType > > |
Static Public Attributes inherited from AnalyticData< Dim, Registrars > | |
| static constexpr size_t | volume_dim = Dim |
Static Public Attributes inherited from gr::Solutions::KerrSchild | |
| static constexpr Options::String | help |
Static Public Attributes inherited from gr::AnalyticSolution< 3_st > | |
| static constexpr size_t | volume_dim |
Kerr spacetime in general relativity.
This class implements the Kerr solution to the XCTS equations. It is currently implemented in Kerr-Schild coordinates only and derives most quantities from the gr::Solution::KerrSchild class. It poses a non-conformally-flat problem to the XCTS equations.
The conformal factor in this solution is set to \(\psi=1\), so the conformal background-metric is the spatial Kerr metric. It is possible to choose a different \(\psi\) so the solution is non-trivial in this variable, though that is probably only useful for testing and currently not implemented. It should be noted, however, that the combination of \(\psi=1\) and apparent-horizon boundary conditions poses a hard problem to the nonlinear solver when starting at a flat initial guess. This is because the strongly-nonlinear boundary-conditions couple the variables in such a way that the solution is initially corrected away from \(\psi=1\) and is then unable to recover. A conformal-factor profile such as \(\psi=1 + \frac{M}{2r}\) (resembling isotropic coordinates) resolves this issue. In production solves this is not an issue because we choose a much better initial guess than flatness, such as a superposition of Kerr solutions for black-hole binary initial data.