Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News Sign UpSign In

This notebook details some computations in the extremal Reissner-Nordström spacetime.

Views: 99
License: GPL3
Image: ubuntu2004
Embed | Download | Raw |
Kernel: SageMath 9.8

Extremal Reissner-Nordström spacetime

This SageMath notebook accompanies the article Peeling at extreme black hole horizons by Jack Borthwick, Eric Gourgoulhon and Jean-Philippe Nicolas, arXIv:2303.14574. It involves differential geometry tools implemented in SageMath through the SageManifolds project.

version()
'SageMath version 9.8, Release Date: 2023-02-11'
%display latex

Spacetime manifold

We declare the spacetime manifold M\mathscr{M} as a 4-dimensional Lorentzian manifold, with the keyword signature='negative'to indicate that the metric signature is chosen to be (+,,,)(+,-,-,-):

M = Manifold(4, 'M', latex_name=r'\mathscr{M}', structure='Lorentzian', signature='negative') print(M) M
4-dimensional Lorentzian manifold M

M\displaystyle \mathscr{M}

We consider M\mathscr{M} to be a part of the maximally extended extreme Reissner-Nordström spacetime, namely M=E+E,\mathscr{M} = E_+ \cup E_-, where E+E_+ and EE_- are the open subsets covered by the outgoing and ingoing Eddington-Finkelstein coordinates, respectively:

Ep = M.open_subset('Ep', latex_name='E_+') Em = M.open_subset('Em', latex_name='E_-') M.declare_union(Ep, Em)
list(M.open_covers())

[{M},{E,E+}]\displaystyle \left[\{\mathscr{M}\}, \{E_-, E_+\}\right]

The Schwarzschild-Droste coordinates (t,r,θ,φ)(t,r,\theta,\varphi) on E+E_+:

XSp.<t,r,th,ph> = Ep.chart(r"t r:(0,+oo) th:(0,pi):\theta ph:(0,2*pi):periodic:\varphi") XSp

(E+,(t,r,θ,φ))\displaystyle \left(E_+,(t, r, {\theta}, {\varphi})\right)

XSp.coord_range()

t: (,+);r: (0,+);θ: (0,π);φ: [0,2π](periodic)\displaystyle t :\ \left( -\infty, +\infty \right) ;\quad r :\ \left( 0 , +\infty \right) ;\quad {\theta} :\ \left( 0 , \pi \right) ;\quad {\varphi} :\ \left[ 0 , 2 \, \pi \right] \mbox{(periodic)}

Notation: in this notebook, all coordinate charts have a Python name starting with X, like XSp above (S standing for Schwarzschild and p for ++).

The Schwarzschild-Droste coordinates (t,r,θ,φ)(t,r,\theta,\varphi) on EE_-:

XSm.<t,r,th,ph> = Em.chart(r"t r:(0,+oo) th:(0,pi):\theta ph:(0,2*pi):periodic:\varphi") XSm

(E,(t,r,θ,φ))\displaystyle \left(E_-,(t, r, {\theta}, {\varphi})\right)

XSm.coord_range()

t: (,+);r: (0,+);θ: (0,π);φ: [0,2π](periodic)\displaystyle t :\ \left( -\infty, +\infty \right) ;\quad r :\ \left( 0 , +\infty \right) ;\quad {\theta} :\ \left( 0 , \pi \right) ;\quad {\varphi} :\ \left[ 0 , 2 \, \pi \right] \mbox{(periodic)}

The black hole exterior is Ext=E+E \mathrm{Ext} = E_+ \cap E_- We therefore declare it as follows:

Ext = Ep.intersection(Em, name='Ext', latex_name=r'\mathrm{Ext}') Ext

Ext\displaystyle \mathrm{Ext}

The mass parameter of the extreme Reissner-Nordström spacetime:

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

The Schwarzschild-Droste coordinates (t,r,θ,φ)(t,r,\theta,\varphi) on Ext\mathrm{Ext} are defined from the restriction of the chart XSp to r>mr>m:

XSE = XSp.restrict(Ext, r>m) XSE

(Ext,(t,r,θ,φ))\displaystyle \left(\mathrm{Ext},(t, r, {\theta}, {\varphi})\right)

XSE.coord_range()

t: (,+);r: (m,+);θ: (0,π);φ: [0,2π](periodic)\displaystyle t :\ \left( -\infty, +\infty \right) ;\quad r :\ \left( m , +\infty \right) ;\quad {\theta} :\ \left( 0 , \pi \right) ;\quad {\varphi} :\ \left[ 0 , 2 \, \pi \right] \mbox{(periodic)}

The chart XSE coincides with the restriction of the chart XSm to r>mr>m:

XSE is XSm.restrict(Ext, r>m)

True\displaystyle \mathrm{True}

list(M.subsets())

[E+,M,Ext,E]\displaystyle \left[E_+, \mathscr{M}, \mathrm{Ext}, E_-\right]

At this stage, 3 charts have been constructed on M\mathscr{M} and one of them is considered as the "default" chart (i.e. the chart that is used if omitted in the arguments of a function):

M.atlas()

[(E+,(t,r,θ,φ)),(E,(t,r,θ,φ)),(Ext,(t,r,θ,φ))]\displaystyle \left[\left(E_+,(t, r, {\theta}, {\varphi})\right), \left(E_-,(t, r, {\theta}, {\varphi})\right), \left(\mathrm{Ext},(t, r, {\theta}, {\varphi})\right)\right]

M.default_chart()

(E+,(t,r,θ,φ))\displaystyle \left(E_+,(t, r, {\theta}, {\varphi})\right)

Metric tensor

We define the metric tensor gg from its components in the charts (E+,(t,r,θ,φ))(E_+,(t,r,\theta,\varphi)) and (E,(t,r,θ,φ))(E_-,(t,r,\theta,\varphi)):

g = M.metric() F = (1 - m/r)^2 gp = g.restrict(Ep) gp[0,0] = F gp[1,1] = -1/F gp[2,2] = -r^2 gp[3,3] = -r^2*sin(th)^2 gm = g.restrict(Em) gm[0,0] = F gm[1,1] = -1/F gm[2,2] = -r^2 gm[3,3] = -r^2*sin(th)^2
g.display() # display in the default chart, i.e. XSp

g=(mr1)2dtdt1(mr1)2drdrr2dθdθr2sin(θ)2dφdφ\displaystyle g = {\left(\frac{m}{r} - 1\right)}^{2} \mathrm{d} t\otimes \mathrm{d} t -\frac{1}{{\left(\frac{m}{r} - 1\right)}^{2}} \mathrm{d} r\otimes \mathrm{d} r -r^{2} \mathrm{d} {\theta}\otimes \mathrm{d} {\theta} -r^{2} \sin\left({\theta}\right)^{2} \mathrm{d} {\varphi}\otimes \mathrm{d} {\varphi}

g.display(XSp) # same as above

g=(mr1)2dtdt1(mr1)2drdrr2dθdθr2sin(θ)2dφdφ\displaystyle g = {\left(\frac{m}{r} - 1\right)}^{2} \mathrm{d} t\otimes \mathrm{d} t -\frac{1}{{\left(\frac{m}{r} - 1\right)}^{2}} \mathrm{d} r\otimes \mathrm{d} r -r^{2} \mathrm{d} {\theta}\otimes \mathrm{d} {\theta} -r^{2} \sin\left({\theta}\right)^{2} \mathrm{d} {\varphi}\otimes \mathrm{d} {\varphi}

g.display(XSm)

g=(mr1)2dtdt1(mr1)2drdrr2dθdθr2sin(θ)2dφdφ\displaystyle g = {\left(\frac{m}{r} - 1\right)}^{2} \mathrm{d} t\otimes \mathrm{d} t -\frac{1}{{\left(\frac{m}{r} - 1\right)}^{2}} \mathrm{d} r\otimes \mathrm{d} r -r^{2} \mathrm{d} {\theta}\otimes \mathrm{d} {\theta} -r^{2} \sin\left({\theta}\right)^{2} \mathrm{d} {\varphi}\otimes \mathrm{d} {\varphi}

Eddington-Finkelstein coordinates

Tortoise coordinate [Eq. (2.4)]

rstar(r) = r - m + 2*m*ln(abs(r - m)/m) - m^2/(r - m) rstar(r)

2mlog(m+rm)m+m2mr+r\displaystyle 2 \, m \log\left(\frac{{\left| -m + r \right|}}{m}\right) - m + \frac{m^{2}}{m - r} + r

Note that the additive constant is chosen so that r=0r_* = 0 for r=2mr=2m:

rstar(2*m)

0\displaystyle 0

The chart of the outgoing Eddington-Finkelstein coordinates (u,r,θ,φ)(u,r,\theta,\varphi) on E+E_+:

XOEF.<u,r,th,ph> = Ep.chart(r"u r:(0,+oo) th:(0,pi):\theta ph:(0,2*pi):periodic:\varphi") XOEF

(E+,(u,r,θ,φ))\displaystyle \left(E_+,(u, r, {\theta}, {\varphi})\right)

Sp_to_OEF = XSp.transition_map(XOEF, [t - rstar(r), r, th, ph]) # Eq. (2.5) Sp_to_OEF.display()

{u=2mlog(m+rm)+mm2mrr+tr=rθ=θφ=φ\displaystyle \left\{\begin{array}{lcl} u & = & -2 \, m \log\left(\frac{{\left| -m + r \right|}}{m}\right) + m - \frac{m^{2}}{m - r} - r + t \\ r & = & r \\ {\theta} & = & {\theta} \\ {\varphi} & = & {\varphi} \end{array}\right.

Sp_to_OEF.inverse().display()

{t=2m2log(m)2(mlog(m)+m)r+r2(mr)u2(m2mr)log(m+r)mrr=rθ=θφ=φ\displaystyle \left\{\begin{array}{lcl} t & = & -\frac{2 \, m^{2} \log\left(m\right) - 2 \, {\left(m \log\left(m\right) + m\right)} r + r^{2} - {\left(m - r\right)} u - 2 \, {\left(m^{2} - m r\right)} \log\left({\left| -m + r \right|}\right)}{m - r} \\ r & = & r \\ {\theta} & = & {\theta} \\ {\varphi} & = & {\varphi} \end{array}\right.

gp.display(XOEF)

g=(m22mr+r2r2)dudu+dudr+drdur2dθdθr2sin(θ)2dφdφ\displaystyle g = \left( \frac{m^{2} - 2 \, m r + r^{2}}{r^{2}} \right) \mathrm{d} u\otimes \mathrm{d} u +\mathrm{d} u\otimes \mathrm{d} r +\mathrm{d} r\otimes \mathrm{d} u -r^{2} \mathrm{d} {\theta}\otimes \mathrm{d} {\theta} -r^{2} \sin\left({\theta}\right)^{2} \mathrm{d} {\varphi}\otimes \mathrm{d} {\varphi}

The transition maps are propagated from E+E_+ to the subset Ext\mathrm{Ext}:

Ep.coord_change(XSp, XOEF).restrict(Ext) Ep.coord_change(XOEF, XSp).restrict(Ext)

(Ext,(u,r,θ,φ))(Ext,(t,r,θ,φ))\displaystyle \left(\mathrm{Ext},(u, r, {\theta}, {\varphi})\right) \rightarrow \left(\mathrm{Ext},(t, r, {\theta}, {\varphi})\right)

The chart of the ingoing Eddington-Finkelstein coordinates (v,r,θ,φ)(v,r,\theta,\varphi) on EE_-:

XIEF.<v,r,th,ph> = Em.chart(r"v r:(0,+oo) th:(0,pi):\theta ph:(0,2*pi):periodic:\varphi") XIEF

(E,(v,r,θ,φ))\displaystyle \left(E_-,(v, r, {\theta}, {\varphi})\right)

Sm_to_IEF = XSm.transition_map(XIEF, [t + rstar(r), r, th, ph]) Sm_to_IEF.display()

{v=2mlog(m+rm)m+m2mr+r+tr=rθ=θφ=φ\displaystyle \left\{\begin{array}{lcl} v & = & 2 \, m \log\left(\frac{{\left| -m + r \right|}}{m}\right) - m + \frac{m^{2}}{m - r} + r + t \\ r & = & r \\ {\theta} & = & {\theta} \\ {\varphi} & = & {\varphi} \end{array}\right.

Sm_to_IEF.inverse().display()

{t=2m2log(m)2(mlog(m)+m)r+r2+(mr)v2(m2mr)log(m+r)mrr=rθ=θφ=φ\displaystyle \left\{\begin{array}{lcl} t & = & \frac{2 \, m^{2} \log\left(m\right) - 2 \, {\left(m \log\left(m\right) + m\right)} r + r^{2} + {\left(m - r\right)} v - 2 \, {\left(m^{2} - m r\right)} \log\left({\left| -m + r \right|}\right)}{m - r} \\ r & = & r \\ {\theta} & = & {\theta} \\ {\varphi} & = & {\varphi} \end{array}\right.

gm.display(XIEF)

g=(m22mr+r2r2)dvdvdvdrdrdvr2dθdθr2sin(θ)2dφdφ\displaystyle g = \left( \frac{m^{2} - 2 \, m r + r^{2}}{r^{2}} \right) \mathrm{d} v\otimes \mathrm{d} v -\mathrm{d} v\otimes \mathrm{d} r -\mathrm{d} r\otimes \mathrm{d} v -r^{2} \mathrm{d} {\theta}\otimes \mathrm{d} {\theta} -r^{2} \sin\left({\theta}\right)^{2} \mathrm{d} {\varphi}\otimes \mathrm{d} {\varphi}

The transition maps are propagated from EE_- to the subset Ext\mathrm{Ext}:

Em.coord_change(XSm, XIEF).restrict(Ext) Em.coord_change(XIEF, XSm).restrict(Ext)

(Ext,(v,r,θ,φ))(Ext,(t,r,θ,φ))\displaystyle \left(\mathrm{Ext},(v, r, {\theta}, {\varphi})\right) \rightarrow \left(\mathrm{Ext},(t, r, {\theta}, {\varphi})\right)

Principal null directions

The tangent vector n+n_+ to the outgoing principal null geodesics is defined according to Eq. (2.7):

np = Ep.vector_field(1/F, 1, 0, 0, name='np', latex_name=r'n_+') np.display()

n+=1(mr1)2t+r\displaystyle n_+ = \frac{1}{{\left(\frac{m}{r} - 1\right)}^{2}} \frac{\partial}{\partial t } +\frac{\partial}{\partial r }

n+n_+ is a null vector:

g(np, np).expr()

0\displaystyle 0

and is a geodesic vector, i.e. it obeys n+n+=0\nabla_{n_+} n_+ = 0:

nabla = g.connection()
nabla(np).contract(np).display()

0\displaystyle 0

Similarly, the tangent vector nn_- to the ingoing principal null geodesics is [cf. Eq. (2.7)]:

nm = Em.vector_field(1/F, -1, 0, 0, name='nm', latex_name=r'n_-') nm.display()

n=1(mr1)2tr\displaystyle n_- = \frac{1}{{\left(\frac{m}{r} - 1\right)}^{2}} \frac{\partial}{\partial t } -\frac{\partial}{\partial r }

nn_- is a null geodesic vector:

g(nm, nm).expr()

0\displaystyle 0

nabla(nm).contract(nm).display()

0\displaystyle 0

Compactified pictures of E+E_+, EE_- and M=E+E\mathscr{M} = E_+ \cup E_-

We introduce the Euclidean plane R2\mathbb{R}^2 to draw some pictures:

R2.<T,X> = EuclideanSpace() X2 = R2.cartesian_coordinates()

and we define a map from M\mathscr{M} to a compact region of R2\mathbb{R}^2 by means of the arctangent function:

Psi = M.diff_map(R2, {(XOEF, X2): (atan(u/(2*m)) + atan((u+2*rstar(r))/(2*m)) - pi*unit_step(m - r), atan((u+2*rstar(r))/(2*m)) - atan(u/(2*m)) - pi*unit_step(m - r)), (XIEF, X2): (atan((v-2*rstar(r))/(2*m)) + atan(v/(2*m)) + pi*unit_step(m - r), atan(v/(2*m)) - atan((v-2*rstar(r))/(2*m)) - pi*unit_step(m - r))}, name='Psi', latex_name=r'\Psi') Psi.display(XOEF, X2)

Ψ:ME2on E+:(u,r,θ,φ)(T,X)=(πu(mr)+arctan(4mlog(m+rm)2m+2m2mr+2r+u2m)+arctan(u2m),πu(mr)+arctan(4mlog(m+rm)2m+2m2mr+2r+u2m)arctan(u2m))\displaystyle \begin{array}{llcl} \Psi:& \mathscr{M} & \longrightarrow & \mathbb{E}^{2} \\ \mbox{on}\ E_+ : & \left(u, r, {\theta}, {\varphi}\right) & \longmapsto & \left(T, X\right) = \left(-\pi \mathrm{u}\left(m - r\right) + \arctan\left(\frac{4 \, m \log\left(\frac{{\left| -m + r \right|}}{m}\right) - 2 \, m + \frac{2 \, m^{2}}{m - r} + 2 \, r + u}{2 \, m}\right) + \arctan\left(\frac{u}{2 \, m}\right), -\pi \mathrm{u}\left(m - r\right) + \arctan\left(\frac{4 \, m \log\left(\frac{{\left| -m + r \right|}}{m}\right) - 2 \, m + \frac{2 \, m^{2}}{m - r} + 2 \, r + u}{2 \, m}\right) - \arctan\left(\frac{u}{2 \, m}\right)\right) \end{array}

Psi.display(XIEF, X2)

Ψ:ME2on E:(v,r,θ,φ)(T,X)=(πu(mr)+arctan(4mlog(m+rm)2m+2m2mr+2rv2m)+arctan(v2m),πu(mr)arctan(4mlog(m+rm)2m+2m2mr+2rv2m)+arctan(v2m))\displaystyle \begin{array}{llcl} \Psi:& \mathscr{M} & \longrightarrow & \mathbb{E}^{2} \\ \mbox{on}\ E_- : & \left(v, r, {\theta}, {\varphi}\right) & \longmapsto & \left(T, X\right) = \left(\pi \mathrm{u}\left(m - r\right) + \arctan\left(-\frac{4 \, m \log\left(\frac{{\left| -m + r \right|}}{m}\right) - 2 \, m + \frac{2 \, m^{2}}{m - r} + 2 \, r - v}{2 \, m}\right) + \arctan\left(\frac{v}{2 \, m}\right), -\pi \mathrm{u}\left(m - r\right) - \arctan\left(-\frac{4 \, m \log\left(\frac{{\left| -m + r \right|}}{m}\right) - 2 \, m + \frac{2 \, m^{2}}{m - r} + 2 \, r - v}{2 \, m}\right) + \arctan\left(\frac{v}{2 \, m}\right)\right) \end{array}

We use this map to get a compactified view of E+E_+, with the outgoing null geodesics as solid green lines and the curves r=constr=\mathrm{const} depicted in red, via the method plot of the chart XOEF = (E+,(u,r,θ,φ))(E_+, (u,r,\theta,\varphi)):

graphEp = XOEF.plot(X2, mapping=Psi, ambient_coords=(X,T), fixed_coords={th: pi/2, ph: pi}, color={u: 'red', r: 'green'}, ranges={u: (-40, 40), r: (0, 20)}, number_values={u: 17, r: 16}, parameters={m: 1}) graphEp
Image in a Jupyter notebook

Let us superpose the hypersurfaces

  • r=0r=0 (the curvature singularity): orange dotted line

  • r=mr=m (the past event horizon H\mathscr{H}^-): solid black line

  • r=2mr=2m (the photon sphere): red dashed line

def plot_const_r_Ep(r0, color='red', linestyle='-', thickness=1, plot_points=300): return XOEF.plot(X2, mapping=Psi, ambient_coords=(X,T), fixed_coords={r: r0, th: pi/2, ph: pi}, ranges={u: (-100, 100)}, color=color, style=linestyle, thickness=thickness, plot_points=plot_points, parameters={m: 1}) graphEp += plot_const_r_Ep(0, color='orange', linestyle=':', thickness=5) graphEp += plot_const_r_Ep(1.001*m, color='black', thickness=3) graphEp += plot_const_r_Ep(2*m, color='red', linestyle='--', thickness=3) graphEp += plot_const_r_Ep(0.8*m) graphEp
Image in a Jupyter notebook

The above figure is similar to Fig. 1a of the article tilted by 4545^\circ.

Similarly, we get a compactified view of EE_- via the method plot of the chart XIEF=(E,(v,r,θ,φ))(E_-, (v,r,\theta,\varphi)), with the ingoing null geodesics as dashed green lines, the curves r=constr=\mathrm{const} depicted in red and the following hypersurfaces:

  • r=0r=0 (the curvature singularity): orange dotted line

  • r=mr=m (the future event horizon H+\mathscr{H}^+): solid black line

  • r=2mr=2m (the photon sphere): red dashed line

graphEn = XIEF.plot(X2, mapping=Psi, ambient_coords=(X,T), fixed_coords={th: pi/2, ph: pi}, color={v: 'red', r: 'green'}, ranges={v: (-40, 40), r: (0, 20)}, number_values={v: 17, r: 16}, style={v: 'solid', r: 'dashed'}, parameters={m: 1}) def plot_const_r_En(r0, color='red', linestyle='-', thickness=1, plot_points=300): return XIEF.plot(X2, mapping=Psi, ambient_coords=(X,T), fixed_coords={r: r0, th: pi/2, ph: pi}, ranges={v: (-100, 100)}, color=color, style=linestyle, thickness=thickness, plot_points=plot_points, parameters={m: 1}) graphEn += plot_const_r_En(0, color='orange', linestyle=':', thickness=5) graphEn += plot_const_r_En(1.001*m, color='black', thickness=3) graphEn += plot_const_r_En(2*m, color='red', linestyle='--', thickness=3) graphEn += plot_const_r_En(0.8*m) graphEn
Image in a Jupyter notebook

The above figure is similar to Fig. 1b of the article tilted by 45-45^\circ.

A compactified view of M\mathscr{M}, with the outgoing (resp. ingoing) null geodesics as solid (resp. dashed) green lines and the curves r=constr=\mathrm{const} depicted in red:

graphM = graphEp + graphEn graphM
Image in a Jupyter notebook

The above figure is similar to Fig. 2 of the article.

At this stage, 7 charts have been constructed on M\mathscr{M}:

M.atlas()

[(E+,(t,r,θ,φ)),(E,(t,r,θ,φ)),(Ext,(t,r,θ,φ)),(E+,(u,r,θ,φ)),(Ext,(u,r,θ,φ)),(E,(v,r,θ,φ)),(Ext,(v,r,θ,φ))]\displaystyle \left[\left(E_+,(t, r, {\theta}, {\varphi})\right), \left(E_-,(t, r, {\theta}, {\varphi})\right), \left(\mathrm{Ext},(t, r, {\theta}, {\varphi})\right), \left(E_+,(u, r, {\theta}, {\varphi})\right), \left(\mathrm{Ext},(u, r, {\theta}, {\varphi})\right), \left(E_-,(v, r, {\theta}, {\varphi})\right), \left(\mathrm{Ext},(v, r, {\theta}, {\varphi})\right)\right]

The conformally compactified exterior

Let us introduce the coordinate R=1/rR = 1/r on Ext\mathrm{Ext} via a new chart:

XR.<u, R, th, ph> = Ext.chart(r"u R:(0,1/m) th:(0,pi):\theta ph:(0,2*pi):periodic:\varphi") XR

(Ext,(u,R,θ,φ))\displaystyle \left(\mathrm{Ext},(u, R, {\theta}, {\varphi})\right)

XR.coord_range()

u: (,+);R: (0,1m);θ: (0,π);φ: [0,2π](periodic)\displaystyle u :\ \left( -\infty, +\infty \right) ;\quad R :\ \left( 0 , \frac{1}{m} \right) ;\quad {\theta} :\ \left( 0 , \pi \right) ;\quad {\varphi} :\ \left[ 0 , 2 \, \pi \right] \mbox{(periodic)}

XOEF_to_XR = XOEF.restrict(Ext).transition_map(XR, (u, 1/r, th, ph)) XOEF_to_XR.display()

{u=uR=1rθ=θφ=φ\displaystyle \left\{\begin{array}{lcl} u & = & u \\ R & = & \frac{1}{r} \\ {\theta} & = & {\theta} \\ {\varphi} & = & {\varphi} \end{array}\right.

XOEF_to_XR.inverse().display()

{u=ur=1Rθ=θφ=φ\displaystyle \left\{\begin{array}{lcl} u & = & u \\ r & = & \frac{1}{R} \\ {\theta} & = & {\theta} \\ {\varphi} & = & {\varphi} \end{array}\right.

We get the change of coordinates (t,r,θ,φ)(u,R,θ,φ)(t,r,\theta,\varphi) \to (u,R,\theta,\varphi) by combining previously defined changes of coordinates via the operator *:

XSE_to_XR = XOEF_to_XR * Ext.coord_change(XSE, XOEF.restrict(Ext)) XSE_to_XR.display()

{u=2m2log(m)2(mlog(m)+m)r+r2+(mr)t2(m2mr)log(m+r)mrR=1rθ=θφ=φ\displaystyle \left\{\begin{array}{lcl} u & = & \frac{2 \, m^{2} \log\left(m\right) - 2 \, {\left(m \log\left(m\right) + m\right)} r + r^{2} + {\left(m - r\right)} t - 2 \, {\left(m^{2} - m r\right)} \log\left({\left| -m + r \right|}\right)}{m - r} \\ R & = & \frac{1}{r} \\ {\theta} & = & {\theta} \\ {\varphi} & = & {\varphi} \end{array}\right.

XSE_to_XR.inverse().display()

{t=2R2m2log(R)2(Rlog(R)+R)m(R2mR)u+2(R2m2Rm)log(m)2(R2m2Rm)log(Rm1)+1R2mRr=1Rθ=θφ=φ\displaystyle \left\{\begin{array}{lcl} t & = & -\frac{2 \, R^{2} m^{2} \log\left(R\right) - 2 \, {\left(R \log\left(R\right) + R\right)} m - {\left(R^{2} m - R\right)} u + 2 \, {\left(R^{2} m^{2} - R m\right)} \log\left(m\right) - 2 \, {\left(R^{2} m^{2} - R m\right)} \log\left({\left| R m - 1 \right|}\right) + 1}{R^{2} m - R} \\ r & = & \frac{1}{R} \\ {\theta} & = & {\theta} \\ {\varphi} & = & {\varphi} \end{array}\right.

From now on, we use (u,R,θ,φ)(u,R,\theta,\varphi) as the default coordinates on Ext\mathrm{Ext}:

Ext.set_default_chart(XR) Ext.set_default_frame(XR.frame())

The metric gg in terms of the "compactified" coordinates (u,R,θ,φ)(u,R,\theta,\varphi):

gE = g.restrict(Ext) gE.display()

g=(R2m22Rm+1)dudu1R2dudR1R2dRdu1R2dθdθsin(θ)2R2dφdφ\displaystyle g = \left( R^{2} m^{2} - 2 \, R m + 1 \right) \mathrm{d} u\otimes \mathrm{d} u -\frac{1}{R^{2}} \mathrm{d} u\otimes \mathrm{d} R -\frac{1}{R^{2}} \mathrm{d} R\otimes \mathrm{d} u -\frac{1}{R^{2}} \mathrm{d} {\theta}\otimes \mathrm{d} {\theta} -\frac{\sin\left({\theta}\right)^{2}}{R^{2}} \mathrm{d} {\varphi}\otimes \mathrm{d} {\varphi}

Conformal metric g^\hat{g}

We use R2R^2 as the conformal factor, defining g^\hat{g} by

gh = Ext.lorentzian_metric('gh', latex_name=r'\hat{g}', signature='negative') gh.set(R^2 * gE) gh.display()

g^=(R4m22R3m+R2)dudududRdRdudθdθsin(θ)2dφdφ\displaystyle \hat{g} = \left( R^{4} m^{2} - 2 \, R^{3} m + R^{2} \right) \mathrm{d} u\otimes \mathrm{d} u -\mathrm{d} u\otimes \mathrm{d} R -\mathrm{d} R\otimes \mathrm{d} u -\mathrm{d} {\theta}\otimes \mathrm{d} {\theta} -\sin\left({\theta}\right)^{2} \mathrm{d} {\varphi}\otimes \mathrm{d} {\varphi}

gh.apply_map(factor, keep_other_components=True) gh.display()

g^=(Rm1)2R2dudududRdRdudθdθsin(θ)2dφdφ\displaystyle \hat{g} = {\left(R m - 1\right)}^{2} R^{2} \mathrm{d} u\otimes \mathrm{d} u -\mathrm{d} u\otimes \mathrm{d} R -\mathrm{d} R\otimes \mathrm{d} u -\mathrm{d} {\theta}\otimes \mathrm{d} {\theta} -\sin\left({\theta}\right)^{2} \mathrm{d} {\varphi}\otimes \mathrm{d} {\varphi}

This expression agrees with Eq. (2.9).

Couch-Torrence inversion

We define the Couch-Torrence inversion Φ\Phi according to Eq. (3.1):

Phi = Ext.diffeomorphism(Ext, {(XSE, XSE): (t, m*r/(r - m), th, ph)}, name='Phi', latex_name=r'\Phi') Phi.display(XSE, XSE)

Φ:ExtExt(t,r,θ,φ)(t,mrmr,θ,φ)\displaystyle \begin{array}{llcl} \Phi:& \mathrm{Ext} & \longrightarrow & \mathrm{Ext} \\ & \left(t, r, {\theta}, {\varphi}\right) & \longmapsto & \left(t, -\frac{m r}{m - r}, {\theta}, {\varphi}\right) \end{array}

The Couch-Torrence inversion takes a simple form in terms of the tortoise coordinate rr_*:

Phi_r(r) = Phi.expr(XSE, XSE)[1] Phi_r

r  mrmr\displaystyle r \ {\mapsto}\ -\frac{m r}{m - r}

(rstar(Phi_r(r)) + rstar(r)).simplify_log()

0\displaystyle 0

The inverse of Φ\Phi is

Phi.inverse().display(XSE, XSE)

Φ1:ExtExt(t,r,θ,φ)(t,mrmr,θ,φ)\displaystyle \begin{array}{llcl} \Phi^{-1}:& \mathrm{Ext} & \longrightarrow & \mathrm{Ext} \\ & \left(t, r, {\theta}, {\varphi}\right) & \longmapsto & \left(t, -\frac{m r}{m - r}, {\theta}, {\varphi}\right) \end{array}

Φ\Phi is an involution:

Phi.inverse() == Phi

True\displaystyle \mathrm{True}

Phi.display(XR, XR)

Φ:ExtExt(u,R,θ,φ)(4R2m2log(R)4(Rlog(R)+R)m(R2mR)u+4(R2m2Rm)log(m)4(R2m2Rm)log(Rm1)+2R2mR,Rm1m,θ,φ)\displaystyle \begin{array}{llcl} \Phi:& \mathrm{Ext} & \longrightarrow & \mathrm{Ext} \\ & \left(u, R, {\theta}, {\varphi}\right) & \longmapsto & \left(-\frac{4 \, R^{2} m^{2} \log\left(R\right) - 4 \, {\left(R \log\left(R\right) + R\right)} m - {\left(R^{2} m - R\right)} u + 4 \, {\left(R^{2} m^{2} - R m\right)} \log\left(m\right) - 4 \, {\left(R^{2} m^{2} - R m\right)} \log\left({\left| R m - 1 \right|}\right) + 2}{R^{2} m - R}, -\frac{R m - 1}{m}, {\theta}, {\varphi}\right) \end{array}