This Jupyter/SageMath notebook is relative to the lectures Geometry and physics of black holes.
The computations make use of tools developed through the SageManifolds project.
version()
'SageMath version 10.0.rc3, Release Date: 2023-05-12'
First we set up the notebook to display mathematical objects using LaTeX rendering:
%display latex
We declare the spacetime manifold $M$:
M = Manifold(4, 'M', structure='Lorentzian')
print(M)
4-dimensional Lorentzian manifold M
and declare the chart of Lemaître synchronous coordinates on it:
X.<t,x,th,ph> = M.chart(r't:\tau x:(0,+oo):\chi th:(0,pi):\theta ph:(0,2*pi):\phi')
X
The most general metric tensor, assuming spherical symmetry and synchronous coordinates:
g = M.metric()
a = function('a')
r = function('r')
g[0,0] = -1
g[1,1] = a(t,x)^2
g[2,2] = r(t,x)^2
g[3,3] = (r(t,x)*sin(th))^2
g.display()
The cosmological constant:
Lamb = var('Lamb', latex_name=r'\Lambda')
Lamb
The Ricci tensor:
Ric = g.ricci()
print(Ric)
Field of symmetric bilinear forms Ric(g) on the 4-dimensional Lorentzian manifold M
Ric.display()
The Einstein tensor:
G = Ric - 1/2*g.ricci_scalar() * g
G.set_name('G')
print(G)
Field of symmetric bilinear forms G on the 4-dimensional Lorentzian manifold M
G.display_comp()
Let us consider a pressureless fluid ("dust"). Moreover, we assume that the coordinates $(\tau,\chi,\theta,\phi)$ are comoving, i.e. that the fluid 4-velocity is equal to $\partial_\tau$:
u = M.vector_field('u')
u[0] = 1
u.display()
Since $(\tau,\chi,\theta,\chi)$ are synchronous, the above does define a unit timelike vector:
g(u,u).display()
Let us check that $u$ is a geodesic vector field:
nabla = g.connection()
acc = u['^b']*nabla(u)['^a_b']
acc.display()
The 1-form associated to the fluid 4-velocity by metric duality:
u_form = u.down(g)
print(u_form)
1-form on the 4-dimensional Lorentzian manifold M
u_form.display()
The pressureless energy-momentum tensor:
rho = function('rho')
T = rho(t,x)*(u_form * u_form)
T.set_name('T')
print(T)
Field of symmetric bilinear forms T on the 4-dimensional Lorentzian manifold M
T.display()
The Einstein equation:
E = G + Lamb*g - 8*pi*T
E.set_name('E')
print(E)
Field of symmetric bilinear forms E on the 4-dimensional Lorentzian manifold M
E.display_comp()
Let us first consider the $01 = \tau\chi$ component of the Einstein equation:
E[0,1]
A slight rearrangement of the equation:
eq = E[0,1]*r(t,x)/(-2*a(t,x))
eq
We see that this equation is equivalent to $$ \frac{\partial}{\partial\tau} \left( \frac{1}{a}\frac{\partial r}{\partial\chi} \right) = 0 $$ since
drdx = diff(r(t,x), x)
eq - diff(drdx/a(t,x), t)
Hence there exists a function of $\chi$ only, $f(\chi)$ say, such that
$\frac{1}{a}\frac{\partial r}{\partial\chi} = f(\chi)$.
We disregard the case $f(\chi)=0$, which would imply $\frac{\partial r}{\partial\chi}=0$
and would lead to the so-called Datt model (1938). Accordingly, we may write
$$
a(\tau,\chi) = \frac{1}{f(\chi)}\frac{\partial r}{\partial\chi}
$$
Let us call af
this expression of $a$:
f = function('f')
af(t,x) = drdx / f(x)
af(t,x)
We check that if we substitute $a$ by af
in the $\tau\chi$ component of the Einstein equation, we get identically zero:
E[0,1].expr().substitute_function(a, af)
NB: expr()
returns a Sage symbolic expression from the coordinate function E[0,1]
, so that we may apply substitute_function
Hence the first Lemaitre-Tolman equation is
LT1 = a(t,x) == af(t,x)
LT1
The $11 = \chi\chi$ component of Einstein equation is
E[1,1]
It is equivalent to
eq = (- E[1,1] * r(t,x)^2).expr() == 0
eq
Let us substitute for $a(\tau,\chi)$ the value found above when solving the $\tau\chi$ component:
eq1 = eq.substitute_function(a, af)
eq1
Some slight rearrangement and simplification:
eq2 = (eq1 * f(x)^2 / diff(r(t,x), x)^2).simplify_full()
eq2
eq3 = (eq2 * diff(r(t,x),t)).simplify_full()
eq3
We notice that the left-hand side of this equation is nothing but the partial derivative w.r.t. $\tau$ of the following quantity:
A = (diff(r(t,x),t)^2 + 1 - f(x)^2 - (Lamb/3)*r(t,x)^2) * r(t,x)
A
bool(eq3.lhs() == diff(A, t))
Hence eq3
tells that $A$ is independent of $\tau$, i.e. is a function of $\chi$ only, which we call $2 m(\chi)$:
m = function('m')
eq4 = A - 2*m(x) == 0
eq4
Let us solve extract $(\partial r/\partial\tau)^2$ from this equation:
drdt2_sol = solve(eq4, diff(r(t,x),t)^2)
drdt2_sol
We thus obtain the second Lemaitre-Tolman equation:
LT2 = drdt2_sol[0].expand()
LT2
drdt2 = LT2.rhs()
drdt2
The $00 = \tau\tau$ component of Einstein equation is
E[0,0]
It is equivalent to
eq = (- E[0,0] * a(t,x)^3 * r(t,x)^2).expr() == 0
eq
As above, we substitute for $a(\tau,\chi)$ the value found when solving the $\tau\chi$ component:
eq1 = eq.substitute_function(a, af)
eq1
eq2 = (eq1 * f(x)^3).simplify_full()
eq2
Let us substitute for $\partial r/\partial \tau$ the positive square root of the value of $(\partial r/\partial \tau)^2$ found when solving the $\chi\chi$ component:
drdt = sqrt(drdt2)
drdt
eq3 = eq2.subs({diff(r(t,x),t): drdt, diff(r(t,x),t,x): diff(drdt, x)}).simplify_full()
eq3
If we use the negative square root of $(\partial r/\partial \tau)^2$ instead, we get the same result:
drdt = - sqrt(drdt2)
drdt
eq3_minus = eq2.subs({diff(r(t,x),t): drdt, diff(r(t,x),t,x): diff(drdt, x)}).simplify_full()
eq3_minus
eq3_minus == eq3
Thus we continue with eq3
and rearrange it to get the third Lemaitre-Tolman equation:
eq4 = (eq3 / (2*diff(r(t,x),x)^2)).simplify_full()
eq4
dmdx_sol = solve(eq4, diff(m(x),x))
dmdx_sol
LT3 = dmdx_sol[0]
LT3
First we notice that the $\theta\theta$ and $\phi\phi$ components of the Einstein equation are equivalent:
E[3,3] == E[2,2] * sin(th)^2
Let us thus consider only the $22 = \theta\theta$ component:
E[2,2]
It is equivalent to
eq = (- E[2,2] * a(t,x)^3).expr() == 0
eq
We substitute for $a(\tau,\chi)$ the value found when solving the $\tau\chi$ component:
eq1 = eq.substitute_function(a, af).simplify_full()
eq1
eq2 = (eq1 * f(x)^3).simplify_full()
eq2
Then we substitute for $\partial r/\partial\tau$ the value obtained when solving the $\tau\tau$ component:
eq3 = eq2.subs({diff(r(t,x),t,t,x): diff(drdt,t,x), diff(r(t,x),t,t): diff(drdt,t)}).simplify_full()
eq4 = eq3.subs({diff(r(t,x),t): drdt, diff(r(t,x),t,x): diff(drdt,x)}).simplify_full()
eq4
We conclude that the $\theta\theta$ component of Einstein equation does not add any independent equation.
Let us collect the three independent equations obtained from the Einstein equation, constituting the Lemaître-Tolman system:
for eq in [LT1, LT2, LT3]:
show(eq)
The first equation is the unnumbered one just above Eq. (8.1) in Lemaître's article L'univers en expansion, Annales de la Société Scientifique de Bruxelles A 53, 51 (1933), translated in English in Gen. Relativ. Gravit. 29, 641 (1997). The second equation is Eq. (8.2) in Lemaître's article, while the third one is Eq. (8.3).