Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

Github repo cloud-examples: https://github.com/sagemath/cloud-examples

Views: 8059
License: MIT
%auto typeset_mode(True, display=False)

Anti-de Sitter spacetime

This worksheet demonstrates a few capabilities of SageManifolds (version 0.8) in computations regarding anti-de Sitter spacetime.

It is released under the GNU General Public License version 3.

(c) Eric Gourgoulhon, Michal Bejger (2015)

The corresponding worksheet file can be downloaded from here


Spacetime manifold

We declare the anti-de Sitter spacetime (AdS) as a 4-dimensional differentiable manifold:

M = Manifold(4, 'M', r'\mathcal{M}') print M ; M
4-dimensional manifold 'M'
M\mathcal{M}

We consider hyperbolic coordinates (τ,ρ,θ,ϕ)(\tau,\rho,\theta,\phi) on M\mathcal{M}. Allowing for the standard coordinate singularities at ρ=0\rho=0, θ=0\theta=0 or θ=π\theta=\pi, these coordinates cover the entire spacetime manifold (which is topologically R4\mathbb{R}^4). If we restrict ourselves to regular coordinates (i.e. to considering only mathematically well defined charts), the hyperbolic coordinates cover only an open part of M\mathcal{M}, which we call M0\mathcal{M}_0, on which ρ\rho spans the open interval (0,+)(0,+\infty), θ\theta the open interval (0,π)(0,\pi) and ϕ\phi the open interval (0,2π)(0,2\pi). Therefore, we declare:

M0 = M.open_subset('M_0', r'\mathcal{M}_0' ) X_hyp.<ta,rh,th,ph> = M0.chart(r'ta:\tau rh:(0,+oo):\rho th:(0,pi):\theta ph:(0,2*pi):\phi') print X_hyp ; X_hyp
chart (M_0, (ta, rh, th, ph))
(M0,(τ,ρ,θ,ϕ))\left(\mathcal{M}_0,({\tau}, {\rho}, {\theta}, {\phi})\right)

R5\mathbb{R}^5 as an ambient space

The AdS metric can be defined as that induced by the immersion of M\mathcal{M} in R5\mathbb{R}^5 equipped with a flat pseudo-Riemannian metric of signature (,,+,+,+)(-,-,+,+,+). We therefore introduce R5\mathbb{R}^5 as a 5-dimensional manifold covered by canonical coordinates:

R5 = Manifold(5, 'R5', r'\mathbb{R}^5') X5.<U,V,X,Y,Z> = R5.chart() print X5 ; X5
chart (R5, (U, V, X, Y, Z))
(R5,(U,V,X,Y,Z))\left(\mathbb{R}^5,(U, V, X, Y, Z)\right)

The AdS immersion into R5\mathbb{R}^5 is defined as a differential mapping Φ\Phi from M\mathcal{M} to R5\mathbb{R}^5, by providing its expression in terms of M\mathcal{M}'s default chart (which is X_hyp = (M0,(τ,ρ,θ,ϕ))(\mathcal{M}_0,(\tau,\rho,\theta,\phi)) ) and R5\mathbb{R}^5's default chart (which is X5 = (R5,(U,V,X,Y,Z))(\mathbb{R}^5,(U,V,X,Y,Z)) ):

var('b') assume(b>0) Phi = M.diff_mapping(R5, [sin(b*ta)/b * cosh(rh), cos(b*ta)/b * cosh(rh), sinh(rh)/b *sin(th)*cos(ph), sinh(rh)/b *sin(th)*sin(ph), sinh(rh)/b *cos(th)], name='Phi', latex_name=r'\Phi') print Phi ; Phi.display()
bb
differentiable mapping 'Phi' from the 4-dimensional manifold 'M' to the 5-dimensional manifold 'R5'
Φ:MR5on M0:(τ,ρ,θ,ϕ)(U,V,X,Y,Z)=(cosh(ρ)sin(bτ)b,cos(bτ)cosh(ρ)b,cos(ϕ)sin(θ)sinh(ρ)b,sin(ϕ)sin(θ)sinh(ρ)b,cos(θ)sinh(ρ)b)\begin{array}{llcl} \Phi:& \mathcal{M} & \longrightarrow & \mathbb{R}^5 \\ \mbox{on}\ \mathcal{M}_0 : & \left({\tau}, {\rho}, {\theta}, {\phi}\right) & \longmapsto & \left(U, V, X, Y, Z\right) = \left(\frac{\cosh\left({\rho}\right) \sin\left(b {\tau}\right)}{b}, \frac{\cos\left(b {\tau}\right) \cosh\left({\rho}\right)}{b}, \frac{\cos\left({\phi}\right) \sin\left({\theta}\right) \sinh\left({\rho}\right)}{b}, \frac{\sin\left({\phi}\right) \sin\left({\theta}\right) \sinh\left({\rho}\right)}{b}, \frac{\cos\left({\theta}\right) \sinh\left({\rho}\right)}{b}\right) \end{array}

The constant bb is a scale parameter. Considering AdS metric as a solution of vacuum Einstein equation with negative cosmological constant Λ\Lambda, one has b=Λ/3b = \sqrt{-\Lambda/3}

Let us evaluate the image of a point via the mapping Φ\Phi:

p = M.point((ta, rh, th, ph), name='p') ; print p
point 'p' on 4-dimensional manifold 'M'
p.coord()
(τ{\tau}, ρ{\rho}, θ{\theta}, ϕ{\phi})
q = Phi(p) ; print q
point 'Phi(p)' on 5-dimensional manifold 'R5'
q.coord()
(cosh(ρ)sin(bτ)b\frac{\cosh\left({\rho}\right) \sin\left(b {\tau}\right)}{b}, cos(bτ)cosh(ρ)b\frac{\cos\left(b {\tau}\right) \cosh\left({\rho}\right)}{b}, cos(ϕ)sin(θ)sinh(ρ)b\frac{\cos\left({\phi}\right) \sin\left({\theta}\right) \sinh\left({\rho}\right)}{b}, sin(ϕ)sin(θ)sinh(ρ)b\frac{\sin\left({\phi}\right) \sin\left({\theta}\right) \sinh\left({\rho}\right)}{b}, cos(θ)sinh(ρ)b\frac{\cos\left({\theta}\right) \sinh\left({\rho}\right)}{b})

The image of M\mathcal{M} by the immersion Φ\Phi is a hyperboloid of one sheet, of equation U2V2+X2+Y2+Z2=b2-U^2-V^2+X^2+Y^2+Z^2=-b^{-2}. Indeed:

(Uq,Vq,Xq,Yq,Zq) = q.coord() s = - Uq^2 - Vq^2 + Xq^2 + Yq^2 + Zq^2 s.simplify_full()
1b2-\frac{1}{b^{2}}

We may use the immersion Φ\Phi to draw the coordinate grid (τ,ρ)(\tau,\rho) in terms of the coordinates (U,V,X)(U,V,X) for θ=π/2\theta=\pi/2 and ϕ=0\phi=0 (red) and θ=π/2\theta=\pi/2 and ϕ=π\phi=\pi (green) (the brown lines are the lines τ=const\tau={\rm const}):

graph1 = X_hyp.plot(X5, mapping=Phi, ambient_coords=(V,X,U), fixed_coords={th:pi/2, ph:0}, ranges={ta:(0,2*pi), rh:(0,2)}, nb_values=9, color={ta:'red', rh:'brown'}, thickness=2, parameters={b:1}, label_axes=False) graph2 = X_hyp.plot(X5, mapping=Phi, ambient_coords=(V,X,U), fixed_coords={th:pi/2, ph:pi}, ranges={ta:(0,2*pi), rh:(0,2)}, nb_values=9, color={ta:'green', rh:'brown'}, thickness=2, parameters={b:1}, label_axes=False) show(set_axes_labels(graph1+graph2,'V','X','U'), aspect_ratio=1)
3D rendering not yet implemented

Spacetime metric

First, we introduce on R5\mathbb{R}^5 the flat pseudo-Riemannian metric hh of signature (,,+,+,+)(-,-,+,+,+):

h = R5.metric('h') h[0,0], h[1,1], h[2,2], h[3,3], h[4,4] = -1, -1, 1, 1, 1 h.display()
h=dUdUdVdV+dXdX+dYdY+dZdZh = -\mathrm{d} U\otimes \mathrm{d} U-\mathrm{d} V\otimes \mathrm{d} V+\mathrm{d} X\otimes \mathrm{d} X+\mathrm{d} Y\otimes \mathrm{d} Y+\mathrm{d} Z\otimes \mathrm{d} Z

As mentionned above, the AdS metric gg on M\mathcal{M} is that induced by hh, i.e.gg is the pullback of hh by the mapping Φ\Phi:

g = M.metric('g') g.set( Phi.pullback(h) )

The expression of gg in terms of M\mathcal{M}'s default frame is found to be

g.display()
g=cosh(ρ)2dτdτ+1b2dρdρ+sinh(ρ)2b2dθdθ+sin(θ)2sinh(ρ)2b2dϕdϕg = -\cosh\left({\rho}\right)^{2} \mathrm{d} {\tau}\otimes \mathrm{d} {\tau} + \frac{1}{b^{2}} \mathrm{d} {\rho}\otimes \mathrm{d} {\rho} + \frac{\sinh\left({\rho}\right)^{2}}{b^{2}} \mathrm{d} {\theta}\otimes \mathrm{d} {\theta} + \frac{\sin\left({\theta}\right)^{2} \sinh\left({\rho}\right)^{2}}{b^{2}} \mathrm{d} {\phi}\otimes \mathrm{d} {\phi}
g[:]
(cosh(ρ)200001b20000sinh(ρ)2b20000sin(θ)2sinh(ρ)2b2)\left(\begin{array}{rrrr} -\cosh\left({\rho}\right)^{2} & 0 & 0 & 0 \\ 0 & \frac{1}{b^{2}} & 0 & 0 \\ 0 & 0 & \frac{\sinh\left({\rho}\right)^{2}}{b^{2}} & 0 \\ 0 & 0 & 0 & \frac{\sin\left({\theta}\right)^{2} \sinh\left({\rho}\right)^{2}}{b^{2}} \end{array}\right)

Curvature

The Riemann tensor of gg is

Riem = g.riemann() print Riem Riem.display()
tensor field 'Riem(g)' of type (1,3) on the 4-dimensional manifold 'M'
Riem(g)=τdρdτdρ+τdρdρdτsinh(ρ)2τdθdτdθ+sinh(ρ)2τdθdθdτsin(θ)2sinh(ρ)2τdϕdτdϕ+sin(θ)2sinh(ρ)2τdϕdϕdτb2cosh(ρ)2ρdτdτdρ+b2cosh(ρ)2ρdτdρdτsinh(ρ)2ρdθdρdθ+sinh(ρ)2ρdθdθdρsin(θ)2sinh(ρ)2ρdϕdρdϕ+sin(θ)2sinh(ρ)2ρdϕdϕdρb2cosh(ρ)2θdτdτdθ+b2cosh(ρ)2θdτdθdτ+θdρdρdθθdρdθdρsin(θ)2sinh(ρ)2θdϕdθdϕ+sin(θ)2sinh(ρ)2θdϕdϕdθb2cosh(ρ)2ϕdτdτdϕ+b2cosh(ρ)2ϕdτdϕdτ+ϕdρdρdϕϕdρdϕdρ+sinh(ρ)2ϕdθdθdϕsinh(ρ)2ϕdθdϕdθ\mathrm{Riem}\left(g\right) = -\frac{\partial}{\partial {\tau} }\otimes \mathrm{d} {\rho}\otimes \mathrm{d} {\tau}\otimes \mathrm{d} {\rho}+\frac{\partial}{\partial {\tau} }\otimes \mathrm{d} {\rho}\otimes \mathrm{d} {\rho}\otimes \mathrm{d} {\tau} -\sinh\left({\rho}\right)^{2} \frac{\partial}{\partial {\tau} }\otimes \mathrm{d} {\theta}\otimes \mathrm{d} {\tau}\otimes \mathrm{d} {\theta} + \sinh\left({\rho}\right)^{2} \frac{\partial}{\partial {\tau} }\otimes \mathrm{d} {\theta}\otimes \mathrm{d} {\theta}\otimes \mathrm{d} {\tau} -\sin\left({\theta}\right)^{2} \sinh\left({\rho}\right)^{2} \frac{\partial}{\partial {\tau} }\otimes \mathrm{d} {\phi}\otimes \mathrm{d} {\tau}\otimes \mathrm{d} {\phi} + \sin\left({\theta}\right)^{2} \sinh\left({\rho}\right)^{2} \frac{\partial}{\partial {\tau} }\otimes \mathrm{d} {\phi}\otimes \mathrm{d} {\phi}\otimes \mathrm{d} {\tau} -b^{2} \cosh\left({\rho}\right)^{2} \frac{\partial}{\partial {\rho} }\otimes \mathrm{d} {\tau}\otimes \mathrm{d} {\tau}\otimes \mathrm{d} {\rho} + b^{2} \cosh\left({\rho}\right)^{2} \frac{\partial}{\partial {\rho} }\otimes \mathrm{d} {\tau}\otimes \mathrm{d} {\rho}\otimes \mathrm{d} {\tau} -\sinh\left({\rho}\right)^{2} \frac{\partial}{\partial {\rho} }\otimes \mathrm{d} {\theta}\otimes \mathrm{d} {\rho}\otimes \mathrm{d} {\theta} + \sinh\left({\rho}\right)^{2} \frac{\partial}{\partial {\rho} }\otimes \mathrm{d} {\theta}\otimes \mathrm{d} {\theta}\otimes \mathrm{d} {\rho} -\sin\left({\theta}\right)^{2} \sinh\left({\rho}\right)^{2} \frac{\partial}{\partial {\rho} }\otimes \mathrm{d} {\phi}\otimes \mathrm{d} {\rho}\otimes \mathrm{d} {\phi} + \sin\left({\theta}\right)^{2} \sinh\left({\rho}\right)^{2} \frac{\partial}{\partial {\rho} }\otimes \mathrm{d} {\phi}\otimes \mathrm{d} {\phi}\otimes \mathrm{d} {\rho} -b^{2} \cosh\left({\rho}\right)^{2} \frac{\partial}{\partial {\theta} }\otimes \mathrm{d} {\tau}\otimes \mathrm{d} {\tau}\otimes \mathrm{d} {\theta} + b^{2} \cosh\left({\rho}\right)^{2} \frac{\partial}{\partial {\theta} }\otimes \mathrm{d} {\tau}\otimes \mathrm{d} {\theta}\otimes \mathrm{d} {\tau} +\frac{\partial}{\partial {\theta} }\otimes \mathrm{d} {\rho}\otimes \mathrm{d} {\rho}\otimes \mathrm{d} {\theta} -\frac{\partial}{\partial {\theta} }\otimes \mathrm{d} {\rho}\otimes \mathrm{d} {\theta}\otimes \mathrm{d} {\rho} -\sin\left({\theta}\right)^{2} \sinh\left({\rho}\right)^{2} \frac{\partial}{\partial {\theta} }\otimes \mathrm{d} {\phi}\otimes \mathrm{d} {\theta}\otimes \mathrm{d} {\phi} + \sin\left({\theta}\right)^{2} \sinh\left({\rho}\right)^{2} \frac{\partial}{\partial {\theta} }\otimes \mathrm{d} {\phi}\otimes \mathrm{d} {\phi}\otimes \mathrm{d} {\theta} -b^{2} \cosh\left({\rho}\right)^{2} \frac{\partial}{\partial {\phi} }\otimes \mathrm{d} {\tau}\otimes \mathrm{d} {\tau}\otimes \mathrm{d} {\phi} + b^{2} \cosh\left({\rho}\right)^{2} \frac{\partial}{\partial {\phi} }\otimes \mathrm{d} {\tau}\otimes \mathrm{d} {\phi}\otimes \mathrm{d} {\tau} +\frac{\partial}{\partial {\phi} }\otimes \mathrm{d} {\rho}\otimes \mathrm{d} {\rho}\otimes \mathrm{d} {\phi} -\frac{\partial}{\partial {\phi} }\otimes \mathrm{d} {\rho}\otimes \mathrm{d} {\phi}\otimes \mathrm{d} {\rho} + \sinh\left({\rho}\right)^{2} \frac{\partial}{\partial {\phi} }\otimes \mathrm{d} {\theta}\otimes \mathrm{d} {\theta}\otimes \mathrm{d} {\phi} -\sinh\left({\rho}\right)^{2} \frac{\partial}{\partial {\phi} }\otimes \mathrm{d} {\theta}\otimes \mathrm{d} {\phi}\otimes \mathrm{d} {\theta}
Riem.display_comp(only_nonredundant=True)
Riem(g)τρτρτρτρ=1Riem(g)τθτθτθτθ=sinh(ρ)2Riem(g)τϕτϕτϕτϕ=sin(θ)2sinh(ρ)2Riem(g)ρττρρττρ=b2cosh(ρ)2Riem(g)ρθρθρθρθ=sinh(ρ)2Riem(g)ρϕρϕρϕρϕ=sin(θ)2sinh(ρ)2Riem(g)θττθθττθ=b2cosh(ρ)2Riem(g)θρρθθρρθ=1Riem(g)θϕθϕθϕθϕ=sin(θ)2sinh(ρ)2Riem(g)ϕττϕϕττϕ=b2cosh(ρ)2Riem(g)ϕρρϕϕρρϕ=1Riem(g)ϕθθϕϕθθϕ=sinh(ρ)2\begin{array}{lcl} \mathrm{Riem}\left(g\right)_{ \phantom{\, {\tau} } \, {\rho} \, {\tau} \, {\rho} }^{ \, {\tau} \phantom{\, {\rho} } \phantom{\, {\tau} } \phantom{\, {\rho} } } & = & -1 \\ \mathrm{Riem}\left(g\right)_{ \phantom{\, {\tau} } \, {\theta} \, {\tau} \, {\theta} }^{ \, {\tau} \phantom{\, {\theta} } \phantom{\, {\tau} } \phantom{\, {\theta} } } & = & -\sinh\left({\rho}\right)^{2} \\ \mathrm{Riem}\left(g\right)_{ \phantom{\, {\tau} } \, {\phi} \, {\tau} \, {\phi} }^{ \, {\tau} \phantom{\, {\phi} } \phantom{\, {\tau} } \phantom{\, {\phi} } } & = & -\sin\left({\theta}\right)^{2} \sinh\left({\rho}\right)^{2} \\ \mathrm{Riem}\left(g\right)_{ \phantom{\, {\rho} } \, {\tau} \, {\tau} \, {\rho} }^{ \, {\rho} \phantom{\, {\tau} } \phantom{\, {\tau} } \phantom{\, {\rho} } } & = & -b^{2} \cosh\left({\rho}\right)^{2} \\ \mathrm{Riem}\left(g\right)_{ \phantom{\, {\rho} } \, {\theta} \, {\rho} \, {\theta} }^{ \, {\rho} \phantom{\, {\theta} } \phantom{\, {\rho} } \phantom{\, {\theta} } } & = & -\sinh\left({\rho}\right)^{2} \\ \mathrm{Riem}\left(g\right)_{ \phantom{\, {\rho} } \, {\phi} \, {\rho} \, {\phi} }^{ \, {\rho} \phantom{\, {\phi} } \phantom{\, {\rho} } \phantom{\, {\phi} } } & = & -\sin\left({\theta}\right)^{2} \sinh\left({\rho}\right)^{2} \\ \mathrm{Riem}\left(g\right)_{ \phantom{\, {\theta} } \, {\tau} \, {\tau} \, {\theta} }^{ \, {\theta} \phantom{\, {\tau} } \phantom{\, {\tau} } \phantom{\, {\theta} } } & = & -b^{2} \cosh\left({\rho}\right)^{2} \\ \mathrm{Riem}\left(g\right)_{ \phantom{\, {\theta} } \, {\rho} \, {\rho} \, {\theta} }^{ \, {\theta} \phantom{\, {\rho} } \phantom{\, {\rho} } \phantom{\, {\theta} } } & = & 1 \\ \mathrm{Riem}\left(g\right)_{ \phantom{\, {\theta} } \, {\phi} \, {\theta} \, {\phi} }^{ \, {\theta} \phantom{\, {\phi} } \phantom{\, {\theta} } \phantom{\, {\phi} } } & = & -\sin\left({\theta}\right)^{2} \sinh\left({\rho}\right)^{2} \\ \mathrm{Riem}\left(g\right)_{ \phantom{\, {\phi} } \, {\tau} \, {\tau} \, {\phi} }^{ \, {\phi} \phantom{\, {\tau} } \phantom{\, {\tau} } \phantom{\, {\phi} } } & = & -b^{2} \cosh\left({\rho}\right)^{2} \\ \mathrm{Riem}\left(g\right)_{ \phantom{\, {\phi} } \, {\rho} \, {\rho} \, {\phi} }^{ \, {\phi} \phantom{\, {\rho} } \phantom{\, {\rho} } \phantom{\, {\phi} } } & = & 1 \\ \mathrm{Riem}\left(g\right)_{ \phantom{\, {\phi} } \, {\theta} \, {\theta} \, {\phi} }^{ \, {\phi} \phantom{\, {\theta} } \phantom{\, {\theta} } \phantom{\, {\phi} } } & = & \sinh\left({\rho}\right)^{2} \end{array}

The Ricci tensor:

Ric = g.ricci() print Ric Ric.display()
field of symmetric bilinear forms 'Ric(g)' on the 4-dimensional manifold 'M'
Ric(g)=3b2cosh(ρ)2dτdτ3dρdρ3sinh(ρ)2dθdθ3sin(θ)2sinh(ρ)2dϕdϕ\mathrm{Ric}\left(g\right) = 3 \, b^{2} \cosh\left({\rho}\right)^{2} \mathrm{d} {\tau}\otimes \mathrm{d} {\tau} -3 \mathrm{d} {\rho}\otimes \mathrm{d} {\rho} -3 \, \sinh\left({\rho}\right)^{2} \mathrm{d} {\theta}\otimes \mathrm{d} {\theta} -3 \, \sin\left({\theta}\right)^{2} \sinh\left({\rho}\right)^{2} \mathrm{d} {\phi}\otimes \mathrm{d} {\phi}
Ric[:]
(3b2cosh(ρ)20000300003sinh(ρ)200003sin(θ)2sinh(ρ)2)\left(\begin{array}{rrrr} 3 \, b^{2} \cosh\left({\rho}\right)^{2} & 0 & 0 & 0 \\ 0 & -3 & 0 & 0 \\ 0 & 0 & -3 \, \sinh\left({\rho}\right)^{2} & 0 \\ 0 & 0 & 0 & -3 \, \sin\left({\theta}\right)^{2} \sinh\left({\rho}\right)^{2} \end{array}\right)

The Ricci scalar:

R = g.ricci_scalar() print R R.display()
scalar field 'r(g)' on the 4-dimensional manifold 'M'
r(g):MRon M0:(τ,ρ,θ,ϕ)12b2\begin{array}{llcl} \mathrm{r}\left(g\right):& \mathcal{M} & \longrightarrow & \mathbb{R} \\ \mbox{on}\ \mathcal{M}_0 : & \left({\tau}, {\rho}, {\theta}, {\phi}\right) & \longmapsto & -12 \, b^{2} \end{array}

We recover the fact that AdS spacetime has a constant curvature. It is indeed a maximally symmetric space. In particular, the Riemann tensor is expressible as

R jlki=Rn(n1)(δ kigjlδ ligjk) R^i_{\ \, jlk} = \frac{R}{n(n-1)} \left( \delta^i_{\ \, k} g_{jl} - \delta^i_{\ \, l} g_{jk} \right)

where nn is the dimension of M\mathcal{M}: n=4n=4 in the present case. Let us check this formula here, under the form R jlki=R6gj[kδ l]iR^i_{\ \, jlk} = -\frac{R}{6} g_{j[k} \delta^i_{\ \, l]}:

delta = M.tangent_identity_field() Riem == - (R/6)*(g*delta).antisymmetrize(2,3) # 2,3 = last positions of the type-(1,3) tensor g*delta
True\mathrm{True}

We may also check that AdS metric is a solution of the vacuum Einstein equation with (negative) cosmological constant:

Lambda = -3*b^2 Ric - 1/2*R*g + Lambda*g == 0
True\mathrm{True}

Spherical coordinates

Let us introduce spherical coordinates (τ,r,θ,ϕ)(\tau,r,\theta,\phi) on the AdS spacetime via the coordinate change r=sinh(ρ)b r = \frac{\sinh(\rho)}{b}

X_spher.<ta,r,th,ph> = M0.chart(r'ta:\tau r:(0,+oo) th:(0,pi):\theta ph:(0,2*pi):\phi') print X_spher ; X_spher
chart (M_0, (ta, r, th, ph))
(M0,(τ,r,θ,ϕ))\left(\mathcal{M}_0,({\tau}, r, {\theta}, {\phi})\right)
hyp_to_spher = X_hyp.transition_map(X_spher, [ta, sinh(rh)/b, th, ph]) hyp_to_spher.display()
{τ=τr=sinh(ρ)bθ=θϕ=ϕ\left\{\begin{array}{lcl} {\tau} & = & {\tau} \\ r & = & \frac{\sinh\left({\rho}\right)}{b} \\ {\theta} & = & {\theta} \\ {\phi} & = & {\phi} \end{array}\right.
hyp_to_spher.set_inverse(ta, asinh(b*r), th, ph) spher_to_hyp = hyp_to_spher.inverse() spher_to_hyp.display()
Check of the inverse coordinate transformation: ta == ta rh == arcsinh(sinh(rh)) th == th ph == ph ta == ta r == r th == th ph == ph
{τ=τρ=arcsinh(br)θ=θϕ=ϕ\left\{\begin{array}{lcl} {\tau} & = & {\tau} \\ {\rho} & = & {\rm arcsinh}\left(b r\right) \\ {\theta} & = & {\theta} \\ {\phi} & = & {\phi} \end{array}\right.

The expression of the metric tensor in the new coordinates is

g.display(X_spher.frame(), X_spher)
g=(b2r21)dτdτ+(1b2r2+1)drdr+r2dθdθ+r2sin(θ)2dϕdϕg = \left( -b^{2} r^{2} - 1 \right) \mathrm{d} {\tau}\otimes \mathrm{d} {\tau} + \left( \frac{1}{b^{2} r^{2} + 1} \right) \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} {\phi}\otimes \mathrm{d} {\phi}