Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download
Views: 211
Kernel: SageMath 6.10

Kerr spacetime in 3+1 Kerr coordinates

This Jupyter/SageMath worksheet is relative to the lectures Geometry and physics of black holes

These computations are based on SageManifolds (v0.9)

Click here to download the worksheet file (ipynb format). To run it, you must start SageMath with the Jupyter notebook, with the command sage -n jupyter

First we set up the notebook to display mathematical objects using LaTeX formatting:

%display latex

Spacetime

We declare the spacetime manifold MM:

M = Manifold(4, 'M') print(M)
4-dimensional differentiable manifold M

and the 3+1 Kerr coordinates (t,r,θ,ϕ)(t,r,\theta,\phi) as a chart on MM:

X.<t,r,th,ph> = M.chart(r't r th:(0,pi):\theta ph:(0,2*pi):\phi') X
X.coord_range()

The Kerr parameters mm and aa:

m = var('m', domain='real') assume(m>0) a = var('a', domain='real') assume(a>=0)

Kerr metric

We define the metric gg by its components w.r.t. the 3+1 Kerr coordinates:

g = M.lorentzian_metric('g') rho2 = r^2 + (a*cos(th))^2 g[0,0] = -(1 - 2*m*r/rho2) g[0,1] = 2*m*r/rho2 g[0,3] = -2*a*m*r*sin(th)^2/rho2 g[1,1] = 1 + 2*m*r/rho2 g[1,3] = -a*(1 + 2*m*r/rho2)*sin(th)^2 g[2,2] = rho2 g[3,3] = (r^2+a^2+2*m*r*(a*sin(th))^2/rho2)*sin(th)^2 g.display()
g.display_comp()

The inverse metric is pretty simple:

g.inverse()[:]

as well as the determinant w.r.t. to the 3+1 Kerr coordinates:

g.determinant().display()
g.determinant() == - (rho2*sin(th))^2

Let us check that we are dealing with a solution of the Einstein equation in vacuum:

g.ricci().display() # long: takes 1 or 2 minutes

The Christoffel symbols w.r.t. the 3+1 Kerr coordinates:

g.christoffel_symbols_display()

Vector normal to the hypersurfaces r=constr=\mathrm{const}

dr = X.coframe()[1] print(dr) dr.display()
1-form dr on the 4-dimensional differentiable manifold M
nr = dr.up(g) print(nr) nr.display()
Vector field on the 4-dimensional differentiable manifold M
assume(a^2<m^2) rp = m + sqrt(m^2-a^2) rp
p = M.point(coords=(t,rp,th,ph), name='p') print(p)
Point p on the 4-dimensional differentiable manifold M
X(p)
nrH = nr.at(p) print(nrH)
Tangent vector at Point p on the 4-dimensional differentiable manifold M
Tp = M.tangent_space(p) print(Tp)
Tangent space at Point p on the 4-dimensional differentiable manifold M
Tp.default_basis()
nrH[:]
OmegaH = a/(2*m*rp) OmegaH
xi = X.frame()[0] xi
eta = X.frame()[3] eta
chi = xi + OmegaH*eta chi.display()

Ingoing principal null geodesics

k = M.vector_field(name='k') k[0] = 1 k[1] = -1 k.display()

Let us check that kk is a null vector:

g(k,k).display()

Computation of kk\nabla_k k:

nab = g.connection() acc = nab(k).contract(k) acc.display()
nab(k).display()

Outgoing principal null geodesics

el = M.vector_field(name='el', latex_name=r'\ell') el[0] = 1/2 + m*r/(r^2+a^2) el[1] = 1/2 - m*r/(r^2+a^2) el[3] = a/(r^2+a^2) el.display()

Let us check that \ell is a null vector:

g(el,el).display()

Computation of \nabla_\ell \ell:

acc = nab(el).contract(el) acc.display()

We check that \nabla_\ell \ell \propto \ell:

for i in [0,1,3]: pretty_print(acc[i] / el[i])

Hence we may write =κ\nabla_\ell\ell = \kappa \ell:

kappa = (acc[0] / el[0]).expr() kappa
acc == kappa * el

Surface gravity

On HH, \ell coincides with the Killing vector χ\chi:

el.at(p) == chi.at(p)

Thefore the surface gravity of the Kerr black hole is nothing but the value of the non-affinity coefficient of \ell on HH:

kappaH = kappa.subs(r=rp).simplify_full() kappaH
bool(kappaH == sqrt(m^2-a^2)/(2*m*(m+sqrt(m^2-a^2))))

A variant for \ell:

el = M.vector_field(name='el', latex_name=r'\ell') el[0] = r^2+a^2 + 2*m*r el[1] = r^2+a^2 - 2*m*r el[3] = 2*a el.display()
g(el,el).display()
acc = nab(el).contract(el) acc.display()
for i in [0,1,3]: pretty_print(acc[i] / el[i])
kappa = (acc[0] / el[0]).expr() kappa
acc == kappa * el