SpECTRE  v2023.01.13
domain::CoordinateMaps::KerrHorizonConforming Class Reference

Distorts cartesian coordinates $$x^i$$ such that a coordinate sphere $$\delta_{ij}x^ix^j=C^2$$ is mapped to an ellipsoid of constant Kerr-Schild radius $$r=C$$. More...

#include <KerrHorizonConforming.hpp>

## Public Member Functions

KerrHorizonConforming (const double mass, std::array< double, 3 > dimensionless_spin)
Constructs a Kerr horizon conforming map. More...

template<typename T >
std::array< tt::remove_cvref_wrap_t< T >, 3 > operator() (const std::array< T, 3 > &source_coords) const

std::optional< std::array< double, 3 > > inverse (const std::array< double, 3 > &target_coords) const

template<typename T >
tnsr::Ij< tt::remove_cvref_wrap_t< T >, 3, Frame::NoFramejacobian (const std::array< T, 3 > &source_coords) const

template<typename T >
tnsr::Ij< tt::remove_cvref_wrap_t< T >, 3, Frame::NoFrameinv_jacobian (const std::array< T, 3 > &source_coords) const

bool is_identity () const

void pup (PUP::er &p)

## Static Public Attributes

static constexpr size_t dim = 3

## Friends

bool operator== (const KerrHorizonConforming &lhs, const KerrHorizonConforming &rhs)

## Detailed Description

Distorts cartesian coordinates $$x^i$$ such that a coordinate sphere $$\delta_{ij}x^ix^j=C^2$$ is mapped to an ellipsoid of constant Kerr-Schild radius $$r=C$$.

The Kerr-Schild radius $$r$$ is defined as the largest positive root of

\begin{equation*} r^4 - r^2 (x^2 - a^2) - (\vec{a}\cdot \vec{x})^2 = 0. \end{equation*}

In this equation, $$\vec{x}$$ are the coordinates of the (distorted) surface, and $$\vec{a}=\vec{S}/M$$ is the spin-parameter of the black hole. This is equivalent to the implicit definition of $$r$$ in Eq. (47) of [94]. The black hole is assumed to be at the origin.

### Details

Given a spin vector $$\vec{a}$$, we define the Kerr-Schild radius:

$$r(\vec{x}) = \sqrt{\frac{x^2 - a^2 + \sqrt{(x^2 - a^2)^2 + 4 (\vec{x} \cdot \vec{a})^2}}{2}}$$

We also define the auxiliary variable:

$$s(\vec{x}) = \frac{x^2(x^2 + a^2)}{x^4 + (\vec{x} \cdot \vec{a})^2}$$

The map is then given by:

$$\vec{x}(\vec{\xi}) = \vec{\xi} \sqrt{s(\vec{\xi})}$$

The inverse map is given by:

$$\vec{\xi}(\vec{x}) = \vec{x} \frac{r(\vec{x})}{|\vec{x}|}$$

The jacobian is:

$$\frac{\partial \xi^i}{\partial x^j} = \delta_{ij} \sqrt{s(\vec{\xi})} + \frac{\xi_j}{2 \sqrt{s(\vec{\xi})}} \frac{4\xi^2(1 - s(\vec{\xi})) \xi_j + 2a^2\xi_i + 2 s(\vec{\xi}) (\vec{\xi} \cdot \vec{a}) a_i}{\xi^4 + (\vec{\xi} \cdot \vec{a})^2}$$

The inverse jacobian is:

$$\frac{\partial x^i}{\partial \xi^j} = \delta_{ij}\frac{r(\vec{x})}{|\vec{x}|} + \frac{r(\vec{x})^2 x_i + (\vec{x} \cdot \vec{a})a_i}{2r(\vec{x})^3 - r(\vec{x}) (x^2 - a^2)}\frac{x_j}{|\vec{x}|} - \frac{r(\vec{x}) x_i x_j}{x^3}$$

## ◆ KerrHorizonConforming()

 domain::CoordinateMaps::KerrHorizonConforming::KerrHorizonConforming ( const double mass, std::array< double, 3 > dimensionless_spin )
explicit

Constructs a Kerr horizon conforming map.

Parameters
 mass The Kerr mass parameter $$M$$ dimensionless_spin The dimensionless spin $$\vec{\chi} = \vec{a} / M = \vec{S} / M^2$$, where $$M$$ is the Kerr mass parameter, $$\vec{S}$$ is the angular momentum or quasilocal spin, and $$\vec{a}$$ is the Kerr spin parameter.
Note
The horizon depends only on the dimensionful spin parameter $$\vec{a} = M \vec{\chi}$$. This constructor takes $$M$$ and $$\vec{\chi}$$ separately for consistency with other code such as gr::Solutions::KerrSchild, and hence to avoid bugs where the wrong spin quantity is used accidentally.

The documentation for this class was generated from the following file:
• src/Domain/CoordinateMaps/KerrHorizonConforming.hpp