{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 3+1 Simon-Mars tensor in Kerr spacetime\n", "\n", "This notebook demonstrates a few capabilities of [SageManifolds](https://sagemanifolds.obspm.fr) (version 1.3, as included in SageMath 8.3) in computations regarding 3+1 slicing of Kerr spacetime. In particular, it implements the computation of the 3+1 decomposition of the Simon-Mars tensor as given in the article [arXiv:1412.6542](http://arxiv.org/abs/1412.6542).\n", "\n", "Click [here](https://raw.githubusercontent.com/sagemanifolds/SageManifolds/master/Worksheets/v1.3/SM_Simon-Mars_3p1_Kerr.ipynb) to download the notebook file (ipynb format). To run it, you must start SageMath with the Jupyter notebook, via the command sage -n jupyter" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*NB:* a version of SageMath at least equal to 8.2 is required to run this notebook:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'SageMath version 8.3, Release Date: 2018-08-03'" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "version()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we set up the notebook to display mathematical objects using LaTeX rendering:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%display latex" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since some computations are quite long, we ask for running them in parallel on 8 cores:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "Parallelism().set(nproc=8)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Spacelike hypersurface\n", "\n", "We consider some hypersurface $\\Sigma$ of a spacelike foliation $(\\Sigma_t)_{t\\in\\mathbb{R}}$ of Kerr spacetime; we declare $\\Sigma_t$ as a 3-dimensional Riemannian manifold:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "Sig = Manifold(3, 'Sigma', latex_name=r'\\Sigma', \n", " structure='Riemannian', metric_name='gam', \n", " metric_latex_name=r'\\gamma', start_index=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On $\\Sigma$, we consider the *\"rational-polynomial\" coordinates* $(r,y,\\phi)$ inheritated from the standard Boyer-Lindquist coordinates $(t,r,\\theta,\\phi)$ of Kerr spacetime, via $y=\\cos\\theta$:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Chart (Sigma, (r, y, ph))\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "Chart (Sigma, (r, y, ph))" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X. = Sig.chart(r'r:(1,+oo) y:(-1,1) ph:(0,2*pi):\\phi')\n", "print(X) ; X" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The two Kerr parameters:

" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "var('m, a', domain='real')\n", "assume(m > 0)\n", "assume(a > 0)\n", "assume(a^2-2*m*r+r^2 > 0) # region where Sigma is spacelike" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

### Riemannian metric on $\\Sigma$

\n", "

The variables introduced so far satisfy the following assumptions:

\n", "\n", "

Without any loss of generality (for $m\\not =0$), we may set $m=1$:

" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "#m=1\n", "#assume(a<1)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "#a=1 # extreme Kerr" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The variables introduced so far obey the following assumptions:

" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[r is real,\n", " r > 1,\n", " y is real,\n", " y > -1,\n", " y < 1,\n", " ph is real,\n", " ph > 0,\n", " ph < 2*pi,\n", " m is real,\n", " a is real,\n", " m > 0,\n", " a > 0,\n", " a^2 - 2*m*r + r^2 > 0]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "assumptions()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Some shortcut notations:

" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "rho2 = r^2 + a^2*y^2 \n", "Del = r^2 -2*m*r + a^2\n", "AA2 = rho2*(r^2 + a^2) + 2*a^2*m*r*(1-y^2)\n", "BB2 = r^2 + a^2 + 2*a^2*m*r*(1-y^2)/rho2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

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

" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "gam = (a^2*y^2 + r^2)/(a^2 - 2*m*r + r^2) dr*dr - (a^2*y^2 + r^2)/(y^2 - 1) dy*dy + (2*(y^2 - 1)*a^2*m*r/(a^2*y^2 + r^2) - a^2 - r^2)*(y^2 - 1) dph*dph" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gam = Sig.riemannian_metric('gam', latex_name=r'\\gamma') \n", "gam[1,1] = rho2/Del\n", "gam[2,2] = rho2/(1-y^2)\n", "gam[3,3] = BB2*(1-y^2)\n", "gam.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

A matrix view of the components w.r.t. coordinates $(r,y,\\phi)$:

" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[ (a^2*y^2 + r^2)/(a^2 - 2*m*r + r^2) 0 0]\n", "[ 0 -(a^2*y^2 + r^2)/(y^2 - 1) 0]\n", "[ 0 0 (2*(y^2 - 1)*a^2*m*r/(a^2*y^2 + r^2) - a^2 - r^2)*(y^2 - 1)]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gam[:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

### Lapse function and shift vector

" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scalar field N on the 3-dimensional Riemannian manifold Sigma\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "N: Sigma --> R\n", " (r, y, ph) |--> sqrt(-(a^2 - 2*m*r + r^2)/(2*(y^2 - 1)*a^2*m*r/(a^2*y^2 + r^2) - a^2 - r^2))" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "N = Sig.scalar_field(sqrt(Del / BB2), name='N')\n", "print(N)\n", "N.display()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "beta = 2*a*m*r/(2*(y^2 - 1)*a^2*m*r - (a^2*y^2 + r^2)*(a^2 + r^2)) d/dph" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b = Sig.vector_field('beta', latex_name=r'\\beta') \n", "b[3] = -2*m*r*a/AA2 \n", "# unset components are zero \n", "b.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

### Extrinsic curvature of $\\Sigma$

\n", "

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

" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Field of symmetric bilinear forms K on the 3-dimensional Riemannian manifold Sigma\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "K = (a^3*m*r^2 + 3*a*m*r^4 + (a^5*m - a^3*m*r^2)*y^4 - (a^5*m + 3*a*m*r^4)*y^2)*sqrt(2*a^2*m*r + a^2*r^2 + r^4 + (a^4 - 2*a^2*m*r + a^2*r^2)*y^2)/((2*a^2*m*r^3 + a^2*r^4 + r^6 + (a^6 - 2*a^4*m*r + a^4*r^2)*y^4 + 2*(a^4*m*r + a^4*r^2 - a^2*m*r^3 + a^2*r^4)*y^2)*sqrt(a^2*y^2 + r^2)*sqrt(a^2 - 2*m*r + r^2)) dr*dph - 2*sqrt(2*a^2*m*r + a^2*r^2 + r^4 + (a^4 - 2*a^2*m*r + a^2*r^2)*y^2)*((a^5*m*r - 2*a^3*m^2*r^2 + a^3*m*r^3)*y^3 - (a^5*m*r - 2*a^3*m^2*r^2 + a^3*m*r^3)*y)/((2*a^2*m*r^3 + a^2*r^4 + r^6 + (a^6 - 2*a^4*m*r + a^4*r^2)*y^4 + 2*(a^4*m*r + a^4*r^2 - a^2*m*r^3 + a^2*r^4)*y^2)*sqrt(a^2*y^2 + r^2)*sqrt(a^2 - 2*m*r + r^2)) dy*dph + (a^3*m*r^2 + 3*a*m*r^4 + (a^5*m - a^3*m*r^2)*y^4 - (a^5*m + 3*a*m*r^4)*y^2)*sqrt(2*a^2*m*r + a^2*r^2 + r^4 + (a^4 - 2*a^2*m*r + a^2*r^2)*y^2)/((2*a^2*m*r^3 + a^2*r^4 + r^6 + (a^6 - 2*a^4*m*r + a^4*r^2)*y^4 + 2*(a^4*m*r + a^4*r^2 - a^2*m*r^3 + a^2*r^4)*y^2)*sqrt(a^2*y^2 + r^2)*sqrt(a^2 - 2*m*r + r^2)) dph*dr - 2*sqrt(2*a^2*m*r + a^2*r^2 + r^4 + (a^4 - 2*a^2*m*r + a^2*r^2)*y^2)*((a^5*m*r - 2*a^3*m^2*r^2 + a^3*m*r^3)*y^3 - (a^5*m*r - 2*a^3*m^2*r^2 + a^3*m*r^3)*y)/((2*a^2*m*r^3 + a^2*r^4 + r^6 + (a^6 - 2*a^4*m*r + a^4*r^2)*y^4 + 2*(a^4*m*r + a^4*r^2 - a^2*m*r^3 + a^2*r^4)*y^2)*sqrt(a^2*y^2 + r^2)*sqrt(a^2 - 2*m*r + r^2)) dph*dy" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "K = gam.lie_der(b) / (2*N)\n", "K.set_name('K')\n", "print(K) ; K.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Check (comparison with known formulas):

" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "((a^2 - r^2)*a^2*y^2 - a^2*r^2 - 3*r^4)*(y^2 - 1)*a*m/((a^2*y^2 + r^2)^2*sqrt(-(2*(y^2 - 1)*a^2*m*r/(a^2*y^2 + r^2) - a^2 - r^2)*(a^2 - 2*m*r + r^2)))" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Krp = a*m*(1-y^2)*(3*r^4+a^2*r^2+a^2*(r^2-a^2)*y^2) / rho2^2/sqrt(Del*BB2)\n", "Krp" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "0" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "K[1,3] - Krp" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-2*sqrt(a^2 - 2*m*r + r^2)*(y^2 - 1)*a^3*m*r*y/(sqrt(-2*(y^2 - 1)*a^2*m*r/(a^2*y^2 + r^2) + a^2 + r^2)*(a^2*y^2 + r^2)^2)" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Kyp = 2*m*r*a^3*(1-y^2)*y*sqrt(Del)/rho2^2/sqrt(BB2)\n", "Kyp" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "0" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "K[2,3] - Kyp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

For now on, we use the expressions Krp and Kyp above for $K_{r\\phi}$ and $K_{ry}$, respectively:

" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "K = ((a^2 - r^2)*a^2*y^2 - a^2*r^2 - 3*r^4)*(y^2 - 1)*a*m/((a^2*y^2 + r^2)^2*sqrt(-(2*(y^2 - 1)*a^2*m*r/(a^2*y^2 + r^2) - a^2 - r^2)*(a^2 - 2*m*r + r^2))) dr*dph - 2*sqrt(a^2 - 2*m*r + r^2)*(y^2 - 1)*a^3*m*r*y/(sqrt(-2*(y^2 - 1)*a^2*m*r/(a^2*y^2 + r^2) + a^2 + r^2)*(a^2*y^2 + r^2)^2) dy*dph + ((a^2 - r^2)*a^2*y^2 - a^2*r^2 - 3*r^4)*(y^2 - 1)*a*m/((a^2*y^2 + r^2)^2*sqrt(-(2*(y^2 - 1)*a^2*m*r/(a^2*y^2 + r^2) - a^2 - r^2)*(a^2 - 2*m*r + r^2))) dph*dr - 2*sqrt(a^2 - 2*m*r + r^2)*(y^2 - 1)*a^3*m*r*y/(sqrt(-2*(y^2 - 1)*a^2*m*r/(a^2*y^2 + r^2) + a^2 + r^2)*(a^2*y^2 + r^2)^2) dph*dy" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "K1 = Sig.sym_bilin_form_field('K')\n", "K1[1,3] = Krp\n", "K1[2,3] = Kyp\n", "K = K1\n", "K.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

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

" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor field of type (1,1) on the 3-dimensional Riemannian manifold Sigma\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "(a^5*m*r^2 - 2*a^3*m^2*r^3 + 4*a^3*m*r^4 - 6*a*m^2*r^5 + 3*a*m*r^6 + (a^7*m - 2*a^5*m^2*r + 2*a^3*m^2*r^3 - a^3*m*r^4)*y^4 - (a^7*m - 2*a^5*m^2*r + a^5*m*r^2 + 3*a^3*m*r^4 - 6*a*m^2*r^5 + 3*a*m*r^6)*y^2)*sqrt(a^2*y^2 + r^2)/((a^6*y^6 + 3*a^4*r^2*y^4 + 3*a^2*r^4*y^2 + r^6)*sqrt(2*a^2*m*r + a^2*r^2 + r^4 + (a^4 - 2*a^2*m*r + a^2*r^2)*y^2)*sqrt(a^2 - 2*m*r + r^2)) d/dr*dph + 2*(a^3*m*r*y^5 - 2*a^3*m*r*y^3 + a^3*m*r*y)*sqrt(a^2*y^2 + r^2)*sqrt(a^2 - 2*m*r + r^2)/((a^6*y^6 + 3*a^4*r^2*y^4 + 3*a^2*r^4*y^2 + r^6)*sqrt(2*a^2*m*r + a^2*r^2 + r^4 + (a^4 - 2*a^2*m*r + a^2*r^2)*y^2)) d/dy*dph + (a^3*m*r^2 + 3*a*m*r^4 - (a^5*m - a^3*m*r^2)*y^2)*sqrt(a^2*y^2 + r^2)/((2*a^2*m*r^3 + a^2*r^4 + r^6 + (a^6 - 2*a^4*m*r + a^4*r^2)*y^4 + 2*(a^4*m*r + a^4*r^2 - a^2*m*r^3 + a^2*r^4)*y^2)*sqrt(2*a^2*m*r + a^2*r^2 + r^4 + (a^4 - 2*a^2*m*r + a^2*r^2)*y^2)*sqrt(a^2 - 2*m*r + r^2)) d/dph*dr + 2*sqrt(a^2*y^2 + r^2)*sqrt(a^2 - 2*m*r + r^2)*a^3*m*r*y/((2*a^2*m*r^3 + a^2*r^4 + r^6 + (a^6 - 2*a^4*m*r + a^4*r^2)*y^4 + 2*(a^4*m*r + a^4*r^2 - a^2*m*r^3 + a^2*r^4)*y^2)*sqrt(2*a^2*m*r + a^2*r^2 + r^4 + (a^4 - 2*a^2*m*r + a^2*r^2)*y^2)) d/dph*dy" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ku = K.up(gam, 0)\n", "print(Ku) ; Ku.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

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

" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scalar field zero on the 3-dimensional Riemannian manifold Sigma\n" ] } ], "source": [ "trK = Ku.trace()\n", "print(trK)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

### Connection and curvature

\n", "

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

" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Levi-Civita connection D associated with the Riemannian metric gam on the 3-dimensional Riemannian manifold Sigma\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "Levi-Civita connection D associated with the Riemannian metric gam on the 3-dimensional Riemannian manifold Sigma" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "D = gam.connection(name='D')\n", "print(D) ; D" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The Ricci tensor associated with $\\gamma$:

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

" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scalar field R on the 3-dimensional Riemannian manifold Sigma\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "R: Sigma --> R\n", " (r, y, ph) |--> 2*(a^6*m^2*r^4 + 6*a^4*m^2*r^6 + 9*a^2*m^2*r^8 - (a^10*m^2 - 6*a^8*m^2*r^2 + 8*a^6*m^3*r^3 - 3*a^6*m^2*r^4)*y^6 + (a^10*m^2 - 8*a^8*m^2*r^2 + 16*a^6*m^3*r^3 - 3*a^6*m^2*r^4 - 6*a^4*m^2*r^6)*y^4 + (2*a^8*m^2*r^2 - 8*a^6*m^3*r^3 - a^6*m^2*r^4 - 9*a^2*m^2*r^8)*y^2)/(4*a^4*m^2*r^8 + 4*a^4*m*r^9 + a^4*r^10 + 4*a^2*m*r^11 + 2*a^2*r^12 + r^14 + (a^14 - 4*a^12*m*r - 4*a^10*m*r^3 + a^10*r^4 + 2*(a^12 + 2*a^10*m^2)*r^2)*y^10 + (4*a^12*m*r - 12*a^10*m*r^3 - 16*a^8*m*r^5 + 5*a^8*r^6 + 2*(5*a^10 + 6*a^8*m^2)*r^4 + (5*a^12 - 8*a^10*m^2)*r^2)*y^8 + 2*(2*a^10*m^2*r^2 + 8*a^10*m*r^3 - 4*a^8*m*r^5 - 12*a^6*m*r^7 + 5*a^6*r^8 + 2*(5*a^8 + 3*a^6*m^2)*r^6 + (5*a^10 - 12*a^8*m^2)*r^4)*y^6 + 2*(6*a^8*m^2*r^4 + 12*a^8*m*r^5 + 4*a^6*m*r^7 - 8*a^4*m*r^9 + 5*a^4*r^10 + 2*(5*a^6 + a^4*m^2)*r^8 + (5*a^8 - 12*a^6*m^2)*r^6)*y^4 + (12*a^6*m^2*r^6 + 16*a^6*m*r^7 + 12*a^4*m*r^9 + 10*a^4*r^10 - 4*a^2*m*r^11 + 5*a^2*r^12 + (5*a^6 - 8*a^4*m^2)*r^8)*y^2)" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "R = gam.ricci_scalar(name='R')\n", "print(R)\n", "R.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

## Test: 3+1 Einstein equations

\n", "

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

\n", "

We start by the contraint equations:

\n", "

### Hamiltonian constraint

\n", "

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

" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scalar field on the 3-dimensional Riemannian manifold Sigma\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "Sigma --> R\n", "(r, y, ph) |--> 2*(a^6*m^2*r^4 + 6*a^4*m^2*r^6 + 9*a^2*m^2*r^8 - (a^10*m^2 - 6*a^8*m^2*r^2 + 8*a^6*m^3*r^3 - 3*a^6*m^2*r^4)*y^6 + (a^10*m^2 - 8*a^8*m^2*r^2 + 16*a^6*m^3*r^3 - 3*a^6*m^2*r^4 - 6*a^4*m^2*r^6)*y^4 + (2*a^8*m^2*r^2 - 8*a^6*m^3*r^3 - a^6*m^2*r^4 - 9*a^2*m^2*r^8)*y^2)/(4*a^4*m^2*r^8 + 4*a^4*m*r^9 + a^4*r^10 + 4*a^2*m*r^11 + 2*a^2*r^12 + r^14 + (a^14 - 4*a^12*m*r - 4*a^10*m*r^3 + a^10*r^4 + 2*(a^12 + 2*a^10*m^2)*r^2)*y^10 + (4*a^12*m*r - 12*a^10*m*r^3 - 16*a^8*m*r^5 + 5*a^8*r^6 + 2*(5*a^10 + 6*a^8*m^2)*r^4 + (5*a^12 - 8*a^10*m^2)*r^2)*y^8 + 2*(2*a^10*m^2*r^2 + 8*a^10*m*r^3 - 4*a^8*m*r^5 - 12*a^6*m*r^7 + 5*a^6*r^8 + 2*(5*a^8 + 3*a^6*m^2)*r^6 + (5*a^10 - 12*a^8*m^2)*r^4)*y^6 + 2*(6*a^8*m^2*r^4 + 12*a^8*m*r^5 + 4*a^6*m*r^7 - 8*a^4*m*r^9 + 5*a^4*r^10 + 2*(5*a^6 + a^4*m^2)*r^8 + (5*a^8 - 12*a^6*m^2)*r^6)*y^4 + (12*a^6*m^2*r^6 + 16*a^6*m*r^7 + 12*a^4*m*r^9 + 10*a^4*r^10 - 4*a^2*m*r^11 + 5*a^2*r^12 + (5*a^6 - 8*a^4*m^2)*r^8)*y^2)" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Kuu = Ku.up(gam, 1)\n", "trKK = K['_ij']*Kuu['^ij']\n", "print(trKK) ; trKK.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

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

" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scalar field on the 3-dimensional Riemannian manifold Sigma\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "Sigma --> R\n", "(r, y, ph) |--> 0" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ham = R + trK^2 - trKK\n", "print(Ham) ; Ham.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

### Momentum constraint

\n", "

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

" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1-form on the 3-dimensional Riemannian manifold Sigma\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "0" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mom = D(Ku).trace(0,2) - D(trK)\n", "print(mom)\n", "mom.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

### Dynamical Einstein equations

\n", "

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

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$$

" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor field of type (0,2) on the 3-dimensional Riemannian manifold Sigma\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "0" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dyn = K.lie_der(b) - D(D(N)) + N*( Ric + trK*K - 2*KK )\n", "print(dyn)\n", "dyn.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Hence, we have checked that all the vacuum 3+1 Einstein equations are fulfilled.

\n", "\n", "

## Electric and magnetic parts of the Weyl tensor

\n", "

The electric part is the bilinear form $E$ given by \n", "$$E_{ij} = R_{ij} + K K_{ij} - K_{ik} K^k_{\\ \\, j}$$

The magnetic part is the bilinear form $B$ defined by $$B_{ij} = \\epsilon^k_{\\ \\, l i} D_k K^l_{\\ \\, j},$$

\n", "

where $\\epsilon^k_{\\ \\, l i}$ are the components of the type-(1,2) tensor $\\epsilon^\\sharp$, related to theÂ Levi-Civita alternating tensor $\\epsilon$ associated with $\\gamma$ by $\\epsilon^k_{\\ \\, l i} = \\gamma^{km} \\epsilon_{m l i}$. In SageManifolds, $\\epsilon$ is obtained by the command volume_form() and $\\epsilon^\\sharp$ by the command volume_form(1) (1 = 1 index raised):

" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3-form eps_gam on the 3-dimensional Riemannian manifold Sigma\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "eps_gam = sqrt(2*a^2*m*r + a^2*r^2 + r^4 + (a^4 - 2*a^2*m*r + a^2*r^2)*y^2)*sqrt(a^2*y^2 + r^2)/sqrt(a^2 - 2*m*r + r^2) dr/\\dy/\\dph" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eps = gam.volume_form() \n", "print(eps) ; eps.display()" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor field of type (1,2) on the 3-dimensional Riemannian manifold Sigma\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "sqrt(2*a^2*m*r + a^2*r^2 + r^4 + (a^4 - 2*a^2*m*r + a^2*r^2)*y^2)*sqrt(a^2 - 2*m*r + r^2)/sqrt(a^2*y^2 + r^2) d/dr*dy*dph - sqrt(2*a^2*m*r + a^2*r^2 + r^4 + (a^4 - 2*a^2*m*r + a^2*r^2)*y^2)*sqrt(a^2 - 2*m*r + r^2)/sqrt(a^2*y^2 + r^2) d/dr*dph*dy + sqrt(2*a^2*m*r + a^2*r^2 + r^4 + (a^4 - 2*a^2*m*r + a^2*r^2)*y^2)*(y^2 - 1)/(sqrt(a^2*y^2 + r^2)*sqrt(a^2 - 2*m*r + r^2)) d/dy*dr*dph - sqrt(2*a^2*m*r + a^2*r^2 + r^4 + (a^4 - 2*a^2*m*r + a^2*r^2)*y^2)*(y^2 - 1)/(sqrt(a^2*y^2 + r^2)*sqrt(a^2 - 2*m*r + r^2)) d/dy*dph*dr - sqrt(2*a^2*m*r + a^2*r^2 + r^4 + (a^4 - 2*a^2*m*r + a^2*r^2)*y^2)*(a^2*y^2 + r^2)^(3/2)/(((a^4 - 2*a^2*m*r + a^2*r^2)*y^4 - 2*a^2*m*r - a^2*r^2 - r^4 - (a^4 - 4*a^2*m*r - r^4)*y^2)*sqrt(a^2 - 2*m*r + r^2)) d/dph*dr*dy + sqrt(2*a^2*m*r + a^2*r^2 + r^4 + (a^4 - 2*a^2*m*r + a^2*r^2)*y^2)*(a^2*y^2 + r^2)^(3/2)/(((a^4 - 2*a^2*m*r + a^2*r^2)*y^4 - 2*a^2*m*r - a^2*r^2 - r^4 - (a^4 - 4*a^2*m*r - r^4)*y^2)*sqrt(a^2 - 2*m*r + r^2)) d/dph*dy*dr" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "epsu = gam.volume_form(1)\n", "print(epsu) ; epsu.display()" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor field of type (0,2) on the 3-dimensional Riemannian manifold Sigma\n" ] } ], "source": [ "DKu = D(Ku)\n", "B = epsu['^k_li']*DKu['^l_jk'] \n", "print(B)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Let us check that $B$ is symmetric:

" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "B1 = B.symmetrize()\n", "B == B1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Accordingly, we set

## 3+1 decomposition of the Simon-Mars tensor

\n", "

We follow the computation presented in arXiv:1412.6542. We start by the tensor $E^\\sharp$ of components $E^i_ {\\ \\, j}$:

" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor field of type (1,1) on the 3-dimensional Riemannian manifold Sigma\n" ] } ], "source": [ "Eu = E.up(gam, 0) \n", "print(Eu)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Tensor $B^\\sharp$ of components $B^i_{\\ \\, j}$:

" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor field of type (1,1) on the 3-dimensional Riemannian manifold Sigma\n" ] } ], "source": [ "Bu = B.up(gam, 0)\n", "print(Bu)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

1-form $\\beta^\\flat$ of components $\\beta_i$ and its exterior derivative:

" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2-form on the 3-dimensional Riemannian manifold Sigma\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "2*(a^3*m*y^4 + a*m*r^2 - (a^3*m + a*m*r^2)*y^2)/(a^4*y^4 + 2*a^2*r^2*y^2 + r^4) dr/\\dph + 4*(a^3*m*r + a*m*r^3)*y/(a^4*y^4 + 2*a^2*r^2*y^2 + r^4) dy/\\dph" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bd = b.down(gam)\n", "xdb = bd.exterior_derivative()\n", "print(xdb) ; xdb.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Scalar square of shift $\\beta_i \\beta^i$:

" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scalar field on the 3-dimensional Riemannian manifold Sigma\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "Sigma --> R\n", "(r, y, ph) |--> -4*(a^2*m^2*r^2*y^2 - a^2*m^2*r^2)/(2*a^2*m*r^3 + a^2*r^4 + r^6 + (a^6 - 2*a^4*m*r + a^4*r^2)*y^4 + 2*(a^4*m*r + a^4*r^2 - a^2*m*r^3 + a^2*r^4)*y^2)" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b2 = bd(b)\n", "print(b2) ; b2.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Scalar $Y = E(\\beta,\\beta) = E_{ij} \\beta^i \\beta^j$:

" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scalar field on the 3-dimensional Riemannian manifold Sigma\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "Sigma --> R\n", "(r, y, ph) |--> 4*(3*a^4*m^3*r^3*y^4 + a^2*m^3*r^5 - (3*a^4*m^3*r^3 + a^2*m^3*r^5)*y^2)/(2*a^2*m*r^9 + a^2*r^10 + r^12 + (a^12 - 2*a^10*m*r + a^10*r^2)*y^10 + (2*a^10*m*r + 5*a^10*r^2 - 8*a^8*m*r^3 + 5*a^8*r^4)*y^8 + 2*(4*a^8*m*r^3 + 5*a^8*r^4 - 6*a^6*m*r^5 + 5*a^6*r^6)*y^6 + 2*(6*a^6*m*r^5 + 5*a^6*r^6 - 4*a^4*m*r^7 + 5*a^4*r^8)*y^4 + (8*a^4*m*r^7 + 5*a^4*r^8 - 2*a^2*m*r^9 + 5*a^2*r^10)*y^2)" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ebb = E(b,b)\n", "Y = Ebb\n", "print(Y) ; Y.display()" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "4*(3*a^2*y^2 - r^2)*a^2*m^3*r^3*(y + 1)*(y - 1)/((a^4*y^2 - 2*a^2*m*r*y^2 + a^2*r^2*y^2 + 2*a^2*m*r + a^2*r^2 + r^4)*(a^2*y^2 + r^2)^4)" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ebb.coord_function().factor()" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Sigma --> R\n", "(r, y, ph) |--> 4*(3*a^2*y^2 - r^2)*a^2*m^3*r^3*(y + 1)*(y - 1)/((a^4*y^2 - 2*a^2*m*r*y^2 + a^2*r^2*y^2 + 2*a^2*m*r + a^2*r^2 + r^4)*(a^2*y^2 + r^2)^4)" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ebb.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Scalar $\\bar Y = B(\\beta,\\beta) = B_{ij}\\beta^i \\beta^j$:

" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scalar field B(beta,beta) on the 3-dimensional Riemannian manifold Sigma\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "B(beta,beta): Sigma --> R\n", " (r, y, ph) |--> 4*(a^5*m^3*r^2*y^5 + 3*a^3*m^3*r^4*y - (a^5*m^3*r^2 + 3*a^3*m^3*r^4)*y^3)/(2*a^2*m*r^9 + a^2*r^10 + r^12 + (a^12 - 2*a^10*m*r + a^10*r^2)*y^10 + (2*a^10*m*r + 5*a^10*r^2 - 8*a^8*m*r^3 + 5*a^8*r^4)*y^8 + 2*(4*a^8*m*r^3 + 5*a^8*r^4 - 6*a^6*m*r^5 + 5*a^6*r^6)*y^6 + 2*(6*a^6*m*r^5 + 5*a^6*r^6 - 4*a^4*m*r^7 + 5*a^4*r^8)*y^4 + (8*a^4*m*r^7 + 5*a^4*r^8 - 2*a^2*m*r^9 + 5*a^2*r^10)*y^2)" ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Bbb = B(b,b)\n", "Y_bar = Bbb\n", "print(Y_bar) ; Y_bar.display()" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "4*(a^2*y^2 - 3*r^2)*a^3*m^3*r^2*(y + 1)*(y - 1)*y/((a^4*y^2 - 2*a^2*m*r*y^2 + a^2*r^2*y^2 + 2*a^2*m*r + a^2*r^2 + r^4)*(a^2*y^2 + r^2)^4)" ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Bbb.coord_function().factor()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

1-form of components $Eb_i = E_{ij} \\beta^j$:

" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1-form on the 3-dimensional Riemannian manifold Sigma\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "-2*(3*a^3*m^2*r^2*y^4 + a*m^2*r^4 - (3*a^3*m^2*r^2 + a*m^2*r^4)*y^2)/(a^8*y^8 + 4*a^6*r^2*y^6 + 6*a^4*r^4*y^4 + 4*a^2*r^6*y^2 + r^8) dph" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Eb = E.contract(b)\n", "print(Eb) ; Eb.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Vector field of components $Eub^i = E^i_{\\ \\, j} \\beta^j$:

" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Vector field on the 3-dimensional Riemannian manifold Sigma\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "2*(3*a^3*m^2*r^2*y^2 - a*m^2*r^4)/(2*a^2*m*r^7 + a^2*r^8 + r^10 + (a^10 - 2*a^8*m*r + a^8*r^2)*y^8 + 2*(a^8*m*r + 2*a^8*r^2 - 3*a^6*m*r^3 + 2*a^6*r^4)*y^6 + 6*(a^6*m*r^3 + a^6*r^4 - a^4*m*r^5 + a^4*r^6)*y^4 + 2*(3*a^4*m*r^5 + 2*a^4*r^6 - a^2*m*r^7 + 2*a^2*r^8)*y^2) d/dph" ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Eub = Eu.contract(b)\n", "print(Eub) ; Eub.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

1-form of components $Bb_i = B_{ij} \\beta^j$:

" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1-form on the 3-dimensional Riemannian manifold Sigma\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "-2*(a^4*m^2*r*y^5 + 3*a^2*m^2*r^3*y - (a^4*m^2*r + 3*a^2*m^2*r^3)*y^3)/(a^8*y^8 + 4*a^6*r^2*y^6 + 6*a^4*r^4*y^4 + 4*a^2*r^6*y^2 + r^8) dph" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Bb = B.contract(b)\n", "print(Bb) ; Bb.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Vector field of components $Bub^i = B^i_{\\ \\, j} \\beta^j$:

" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Vector field on the 3-dimensional Riemannian manifold Sigma\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "2*(a^4*m^2*r*y^3 - 3*a^2*m^2*r^3*y)/(2*a^2*m*r^7 + a^2*r^8 + r^10 + (a^10 - 2*a^8*m*r + a^8*r^2)*y^8 + 2*(a^8*m*r + 2*a^8*r^2 - 3*a^6*m*r^3 + 2*a^6*r^4)*y^6 + 6*(a^6*m*r^3 + a^6*r^4 - a^4*m*r^5 + a^4*r^6)*y^4 + 2*(3*a^4*m*r^5 + 2*a^4*r^6 - a^2*m*r^7 + 2*a^2*r^8)*y^2) d/dph" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Bub = Bu.contract(b)\n", "print(Bub) ; Bub.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Vector field of components $Kub^i = K^i_{\\ \\, j} \\beta^j$:

### 3+1 decomposition of the real part of the Simon-Mars tensor

\n", "

We follow Eqs. (77)-(80) of arXiv:1412.6542:

Hence all the tensors $S^1$, $S^2$, $S^3$ and $S^4$ involved in the 3+1 decomposition of the real part of the Simon-Mars are zero, as they should since the Simon-Mars tensor vanishes identically for the Kerr spacetime.

\n", "\n", "

### 3+1 decomposition of the imaginary part of the Simon-Mars tensor

\n", "\n", "

We follow Eqs. (82)-(85) of arXiv:1412.6542.

Hence all the tensors ${\\bar S}^1$, ${\\bar S}^2$, ${\\bar S}^3$ and ${\\bar S}^4$ involved in the 3+1 decomposition of the imaginary part of the Simon-Mars are zero, as they should since the Simon-Mars tensor vanishes identically for the Kerr spacetime.