3+1 Einstein equations in the $\delta=2$ Tomimatsu-Sato spacetime

This worksheet demonstrates a few capabilities of SageManifolds (version 1.0, as included in SageMath 7.5) in computations regarding the 3+1 slicing of the $\delta=2$ Tomimatsu-Sato spacetime.

Click here to download the worksheet file (ipynb format). To run it, you must start SageMath with 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:

In [1]:
version()
Out[1]:
'SageMath version 7.5.1, Release Date: 2017-01-15'

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

In [2]:
%display latex

Since some computations are quite long, we ask for running them in parallel on 8 cores:

In [3]:
Parallelism().set(nproc=8)

Tomimatsu-Sato spacetime

The Tomimatsu-Sato solution is an exact stationary and axisymmetric solution of the vaccum Einstein equation, which is asymptotically flat and has a non-zero angular momentum. It has been found in 1972 by A. Tomimatsu and H. Sato [Phys. Rev. Lett. 29, 1344 (1972)], as a solution of the Ernst equation. It is actually the member $\delta=2$ of a larger family of solutions parametrized by a positive integer $\delta$ and exhibited by Tomimatsu and Sato in 1973 [Prog. Theor. Phys. 50, 95 (1973)], the member $\delta=1$ being nothing but the Kerr metric. We refer to [Manko, Prog. Theor. Phys. 127, 1057 (2012)] for a discussion of the properties of this solution.

Spacelike hypersurface

We consider some hypersurface $\Sigma$ of a spacelike foliation $(\Sigma_t)_{t\in\mathbb{R}}$ of $\delta=2$ Tomimatsu-Sato spacetime; we declare $\Sigma_t$ as a 3-dimensional manifold:

In [4]:
Sig = Manifold(3, 'Sigma', r'\Sigma', start_index=1)

On $\Sigma$, we consider the prolate spheroidal coordinates $(x,y,\phi)$, with $x\in(1,+\infty)$, $y\in(-1,1)$ and $\phi\in(0,2\pi)$ :

In [5]:
X.<r,y,ph> = Sig.chart(r'x:(1,+oo) y:(-1,1) ph:(0,2*pi):\phi')
print(X) ; X
Chart (Sigma, (x, y, ph))
Out[5]:

Riemannian metric on $\Sigma$

The Tomimatsu-Sato metric depens on three parameters: the integer $\delta$, the real number $p\in[0,1]$, and the total mass $m$:

In [6]:
var('d, p, m')
assume(m>0)
assumptions()
Out[6]:

We set $\delta=2$ and choose a specific value for $p=1/5$:

In [7]:
d = 2
p = 1/5

Furthermore, without any loss of generality, we may set $m=1$ (this simply fixes some length scale):

In [8]:
m = 1

The parameter $q$ is related to $p$ by $p^2+q^2=1$:

In [9]:
q = sqrt(1-p^2)

Some shortcut notations:

In [10]:
AA2 = (p^2*(x^2-1)^2+q^2*(1-y^2)^2)^2 \
      - 4*p^2*q^2*(x^2-1)*(1-y^2)*(x^2-y^2)^2
BB2 = (p^2*x^4+2*p*x^3-2*p*x+q^2*y^4-1)^2 \
      + 4*q^2*y^2*(p*x^3-p*x*y^2-y^2+1)^2
CC2 = p^3*x*(1-x^2)*(2*(x^4-1)+(x^2+3)*(1-y^2)) \
      + p^2*(x^2-1)*((x^2-1)*(1-y^2)-4*x^2*(x^2-y^2)) \
      + q^2*(1-y^2)^3*(p*x+1)

The Riemannian metric $\gamma$ induced by the spacetime metric $g$ on $\Sigma$:

In [11]:
gam = Sig.riemannian_metric('gam', latex_name=r'\gamma') 
gam[1,1] = m^2*BB2/(p^2*d^2*(x^2-1)*(x^2-y^2)^3)
gam[2,2] = m^2*BB2/(p^2*d^2*(y^2-1)*(-x^2+y^2)^3)
gam[3,3] = - m^2*(y^2-1)*(p^2*BB2^2*(x^2-1)
                          + 4*q^2*d^2*CC2^2*(y^2-1))/(AA2*BB2*d^2)
gam.display()
Out[11]:

A view of the non-vanishing components of $\gamma$ w.r.t. coordinates $(x,y,\phi)$:

In [12]:
gam.display_comp()
Out[12]:

Lapse function and shift vector

In [13]:
N2 = AA2/BB2 - 2*m*q*CC2*(y^2-1)/BB2*(2*m*q*CC2*(y^2-1)
                /(BB2*(m^2*(y^2-1)*(p^2*BB2^2*(x^2-1)
                +4*q^2*d^2*CC2^2*(y^2-1))/(AA2*BB2*d^2)))) 
N2.simplify_full()
Out[13]:
In [14]:
N = Sig.scalar_field(sqrt(N2.simplify_full()), name='N')
print(N)
N.display()
Scalar field N on the 3-dimensional differentiable manifold Sigma
Out[14]:

The coordinate expression of the scalar field $N$:

In [15]:
N.expr()
Out[15]:
In [16]:
b3 = 2*m*q*CC2*(y^2-1)/(BB2*(m^2*(y^2-1)*(p^2*BB2^2*(x^2-1)
        +4*q^2*d^2*CC2^2*(y^2-1))/(AA2*BB2*d^2)))
b = Sig.vector_field('beta', latex_name=r'\beta') 
b[3] = b3.simplify_full()
# unset components are zero 
b.display_comp(only_nonzero=False)
Out[16]:

Extrinsic curvature of $\Sigma$

We use the formula $$ K_{ij} = \frac{1}{2N} \mathcal{L}_{\beta} \gamma_{ij}, $$ which is valid for any stationary spacetime:

In [17]:
K = gam.lie_derivative(b) / (2*N)
K.set_name('K')
print(K)
Field of symmetric bilinear forms K on the 3-dimensional differentiable manifold Sigma

The component $K_{13} = K_{x\phi}$:

In [18]:
K[1,3]
Out[18]:

The type-(1,1) tensor $K^\sharp$ of components $K^i_{\ \, j} = \gamma^{ik} K_{kj}$:

In [19]:
Ku = K.up(gam, 0)
print(Ku)
Tensor field of type (1,1) on the 3-dimensional differentiable manifold Sigma

We may check that the hypersurface $\Sigma$ is maximal, i.e. that $K^k_{\ \, k} = 0$:

In [20]:
trK = Ku.trace()
trK
Out[20]:

Connection and curvature

Let us call $D$ the Levi-Civita connection associated with $\gamma$:

In [21]:
D = gam.connection(name='D')
print(D)
Levi-Civita connection D associated with the Riemannian metric gam on the 3-dimensional differentiable manifold Sigma

The Ricci tensor associated with $\gamma$:

In [22]:
Ric = gam.ricci()
print(Ric)
Field of symmetric bilinear forms Ric(gam) on the 3-dimensional differentiable manifold Sigma

The scalar curvature $R = \gamma^{ij} R_{ij}$:

In [23]:
R = gam.ricci_scalar(name='R')
print(R)
Scalar field R on the 3-dimensional differentiable manifold Sigma

The coordinate expression of the Ricci scalar is huge:

In [24]:
R.expr()
Out[24]:

3+1 Einstein equations

Let us check that the vacuum 3+1 Einstein equations are satisfied.

We start by the constraint equations:

Hamiltonian constraint

Let us first evaluate the term $K_{ij} K^{ij}$:

In [25]:
Kuu = Ku.up(gam, 1)
trKK = K['_ij']*Kuu['^ij']
print(trKK)
Scalar field on the 3-dimensional differentiable manifold Sigma

The vacuum Hamiltonian constraint equation is $$R + K^2 -K_{ij} K^{ij} = 0 $$

In [26]:
Ham = R + trK^2 - trKK
print(Ham)
Ham.display()
Scalar field zero on the 3-dimensional differentiable manifold Sigma
Out[26]:

Hence the Hamiltonian constraint is satisfied.

Momentum constraint

In vaccum, the momentum constraint is $$ D_j K^j_{\ \, i} - D_i K = 0 $$

In [27]:
mom = D(Ku).trace(0,2) - D(trK)
print(mom)
mom.display()
1-form on the 3-dimensional differentiable manifold Sigma
Out[27]:

Hence the momentum constraint is satisfied.

Dynamical Einstein equations

Let us first evaluate the symmetric bilinear form $k_{ij} := K_{ik} K^k_{\ \, j}$:

In [28]:
KK = K['_ik']*Ku['^k_j']
print(KK)
Tensor field of type (0,2) on the 3-dimensional differentiable manifold Sigma
In [29]:
KK1 = KK.symmetrize()
KK == KK1
Out[29]:
In [30]:
KK = KK1
print(KK)
Field of symmetric bilinear forms on the 3-dimensional differentiable manifold Sigma

In vacuum and for stationary spacetimes, the dynamical Einstein equations are $$ \mathcal{L}_\beta K_{ij} - D_i D_j N + N \left( R_{ij} + K K_{ij} - 2 K_{ik} K^k_{\ \, j}\right) = 0 $$

In [31]:
dyn = K.lie_derivative(b) - D(D(N)) + N*( Ric + trK*K - 2*KK )
print(dyn)
dyn.display()
Tensor field of type (0,2) on the 3-dimensional differentiable manifold Sigma
Out[31]:

Hence the dynamical Einstein equations are satisfied.

Finally we have checked that all the 3+1 Einstein equations are satisfied by the $\delta=2$ Tomimatsu-Sato solution.