This worksheet illustrates a few capabilities of SageMath in computations regarding the 4-dimensional de Sitter spacetime. The corresponding tools have been developed within the SageManifolds project (version 1.1, as included in SageMath 8.1).
Click here to download the worksheet file (ipynb format). To run it, you must start SageMath within the Jupyter notebook, via the command sage -n jupyter
NB: a version of SageMath at least equal to 7.5 is required to run this worksheet:
version()
'SageMath version 8.1, Release Date: 2017-12-07'
First we set up the notebook to display mathematical objects using LaTeX rendering:
%display latex
We also define a viewer for 3D plots (use 'threejs'
or 'jmol'
for interactive 3D graphics):
viewer3D = 'threejs' # must be 'threejs', 'jmol', 'tachyon' or None (default)
We declare the de Sitter spacetime as a 4-dimensional differentiable manifold:
M = Manifold(4, 'M', r'\mathcal{M}')
print(M) ; M
4-dimensional differentiable manifold M
We consider hyperspherical coordinates $(\tau,\chi,\theta,\phi)$ on $\mathcal{M}$. Allowing for the standard coordinate singularities at $\chi=0$, $\chi=\pi$, $\theta=0$ or $\theta=\pi$, these coordinates cover the entire spacetime manifold (which is topologically $\mathbb{R}\times\mathbb{S}^3$). If we restrict ourselves to regular coordinates (i.e. to consider only mathematically well defined charts), the hyperspherical coordinates cover only an open part of $\mathcal{M}$, which we call $\mathcal{M}_0$, on which $\chi$ spans the open interval $(0,\pi)$, $\theta$ the open interval $(0,\pi)$ and $\phi$ the open interval $(0,2\pi)$. Therefore, we declare:
M0 = M.open_subset('M_0', r'\mathcal{M}_0')
X_hyp.<ta,ch,th,ph> = M0.chart(r'ta:\tau ch:(0,pi):\chi th:(0,pi):\theta ph:(0,2*pi):\phi')
print(X_hyp) ; X_hyp
Chart (M_0, (ta, ch, th, ph))
The de Sitter metric can be defined as that induced by the embedding of $\mathcal{M}$ into a 5-dimensional Minkowski space, i.e. $\mathbb{R}^5$ equipped with a flat Lorentzian metric. We therefore introduce $\mathbb{R}^5$ as a 5-dimensional manifold covered by canonical coordinates:
R5 = Manifold(5, 'R5', r'\mathbb{R}^5')
X5.<T,W,X,Y,Z> = R5.chart()
print(X5) ; X5
Chart (R5, (T, W, X, Y, Z))
The embedding of $\mathcal{M}$ into $\mathbb{R}^5$ is defined as a differential mapping $\Phi$ from $\mathcal{M}$ to $\mathbb{R}^5$, by providing its expression in terms of $\mathcal{M}$'s default chart (which is X_hyp = $(\mathcal{M}_0,(\tau,\chi,\theta,\phi))$ ) and $\mathbb{R}^5$'s default chart (which is X5 = $(\mathbb{R}^5,(T,W,X,Y,Z))$ ):
var('b', domain='real')
Phi = M.diff_map(R5, [sinh(b*ta)/b,
cosh(b*ta)/b * cos(ch),
cosh(b*ta)/b * sin(ch)*sin(th)*cos(ph),
cosh(b*ta)/b * sin(ch)*sin(th)*sin(ph),
cosh(b*ta)/b * sin(ch)*cos(th)],
name='Phi', latex_name=r'\Phi')
print(Phi) ; Phi.display()
Differentiable map Phi from the 4-dimensional differentiable manifold M to the 5-dimensional differentiable manifold R5
The constant $b$ is a scale parameter. Considering de Sitter metric as a solution of vacuum Einstein equation with positive cosmological constant $\Lambda$, one has $b = \sqrt{\Lambda/3}$.
Let us evaluate the image of a point via the mapping $\Phi$:
p = M.point((ta, ch, th, ph), name='p') ; print(p)
Point p on the 4-dimensional differentiable manifold M
p.coord()
q = Phi(p) ; print(q)
Point Phi(p) on the 5-dimensional differentiable manifold R5
q.coord()
The image of $\mathcal{M}$ by $\Phi$ is a hyperboloid of one sheet, of equation $-T^2+W^2+X^2+Y^2+Z^2=b^{-2}$. Indeed:
(Tq,Wq,Xq,Yq,Zq) = q.coord()
s = -Tq^2 + Wq^2 + Xq^2 + Yq^2 + Zq^2
s.simplify_full()
We may use the embedding $\Phi$ to draw the coordinate grid $(\tau,\chi)$ in terms of the coordinates $(W,X,T)$ for $\theta=\pi/2$ and $\phi=0$ (red) and $\theta=\pi/2$ and $\phi=\pi$ (green) (the brown lines are the lines $\tau={\rm const}$):
graph1 = X_hyp.plot(X5, mapping=Phi, ambient_coords=(W,X,T), fixed_coords={th:pi/2, ph:0},
number_values=9, color={ta:'red', ch:'brown'}, thickness=2, max_range=2,
parameters={b:1}, label_axes=False)
graph2 = X_hyp.plot(X5, mapping=Phi, ambient_coords=(W,X,T), fixed_coords={th:pi/2, ph:pi},
number_values=9, color={ta:'green', ch:'brown'}, thickness=2, max_range=2,
parameters={b:1}, label_axes=False)
show(graph1+graph2, aspect_ratio=1, viewer=viewer3D, online=True,
axes_labels=['W','X','T'])
First, we introduce on $\mathbb{R}^5$ the Minkowski metric $h$:
h = R5.lorentzian_metric('h')
h[0,0], h[1,1], h[2,2], h[3,3], h[4,4] = -1, 1, 1, 1, 1
h.display()
As mentionned above, the de Sitter metric $g$ on $\mathcal{M}$ is that induced by $h$, i.e.$g$ is the pullback of $h$ by the mapping $\Phi$:
g = M.metric('g')
g.set( Phi.pullback(h) )
The expression of $g$ in terms of $\mathcal{M}$'s default frame is found to be
g.display()
g[:]
The Riemann tensor of $g$ is
Riem = g.riemann()
print(Riem)
Riem.display()
Tensor field Riem(g) of type (1,3) on the 4-dimensional differentiable manifold M
Riem.display_comp(only_nonredundant=True)
The Ricci tensor:
Ric = g.ricci()
print(Ric)
Ric.display()
Field of symmetric bilinear forms Ric(g) on the 4-dimensional differentiable manifold M
Ric[:]
The Ricci scalar:
R = g.ricci_scalar()
print(R)
R.display()
Scalar field r(g) on the 4-dimensional differentiable manifold M
We recover the fact that de Sitter spacetime has a constant curvature. It is indeed a maximally symmetric space. In particular, the Riemann tensor is expressible as $$ R^i_{\ \, jlk} = \frac{R}{n(n-1)} \left( \delta^i_{\ \, k} g_{jl} - \delta^i_{\ \, l} g_{jk} \right), $$ where $n$ is the dimension of $\mathcal{M}$: $n=4$ in the present case. Let us check this formula here, under the form $R^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
We may also check that de Sitter metric is a solution of the vacuum Einstein equation with (positive) cosmological constant:
Lambda = 3*b^2
Ric - 1/2*R*g + Lambda*g == 0