EinsteinPy を使ってフリードマン・ルメートル・ロバートソン・ウォーカー (FLRW) 計量からアインシュタイン方程式
$$G^{\mu}_{\ \ \nu} + \Lambda \delta^{\mu}_{\ \ \nu} = 8\pi G T^{\mu}_{\ \ \nu}$$
を使ってフリードマン方程式を求める。
必要なパッケージの import
from sympy import *
from einsteinpy.symbolic import *
フリードマン・ルメートル・ロバートソン・ウォーカー計量
Wikipedia の記述にそって,FLRW 計量を以下のようにおく。
$$ds^2 = – dt^2 + a^2(t) \left[\frac{dr^2}{1-k r^2} + r^2 \left(d\theta^2 + \sin^2\theta\,d\phi^2 \right)\right] $$
t, r, theta, phi, k = symbols('t, r, theta, phi, k')
a = Function('a')(t)
Metric = diag(-1, a**2/(1-k*r**2), a**2*r**2, a**2*r**2 * sin(theta)**2).tolist()
g = MetricTensor(Metric, [t, r, theta, phi])
g.tensor()
アインシュタイン・テンソル
$\displaystyle G^{\mu}_{\ \ \nu} = R^{\mu}_{\ \ \nu} – \frac{1}{2} R \delta^{\mu}_{\ \ \nu} $ = ein
とおく。(.change_config('ul')
で上付下付に)
ein=EinsteinTensor.from_metric(g).change_config('ul')
$\displaystyle G^{0}_{\ \ 0}$
ein[0,0]
$\displaystyle G^{1}_{\ \ 1}$
ein[1,1]
$\displaystyle G^{2}_{\ \ 2}$
ein[2,2]
$\displaystyle G^{3}_{\ \ 3}$
ein[3,3]
完全流体のエネルギー運動量テンソル
\begin{eqnarray}
T^{\mu}_{\ \ \nu} &=& (\rho + P) u^{\mu} u_{\nu} + P \delta^{\mu}_{\ \ \nu} \\
u^{\mu} &=& (1, 0, 0, 0) \\
u_{\nu} &=& g_{\nu\mu} u^{\mu} = (-1, 0, 0, 0)
\end{eqnarray}
rho = Function('rho')(t)
P = Function('P')(t)
uu = [1, 0, 0, 0]
ud = [-1, 0, 0, 0]
def T(a, b, P):
return (rho + P)*uu[a]*ud[b] + P *KroneckerDelta(a, b)
アインシュタイン方程式
$$G^{\mu}_{\ \ \nu} = 8\pi G T^{\mu}_{\ \ \nu} – \Lambda \delta^{\mu}_{\ \ \nu} $$
from sympy import pi
G, Lambda = symbols('G, Lambda')
def EinEq(a, b, P):
return Eq(expand(ein[a,b]), 8*pi*G*T(a, b, P) - Lambda *KroneckerDelta(a, b))
ダスト物質の場合
$$P = 0$$
フリードマン方程式
$G^{0}_{\ \ 0} = 8\pi G T^{0}_{\ \ 0} – \Lambda \delta^{0}_{\ \ 0} $
EinEq(0,0,0)
Eq(EinEq(0,0,0).lhs * (-Rational(1,3)),
EinEq(0,0,0).rhs * (-Rational(1,3)))
Friedmann = _
$\ddot{a}$ の式
$G^{1}_{\ \ 1} = 8\pi G T^{1}_{\ \ 1} – \Lambda \delta^{1}_{\ \ 1} $
EinEq(1,1,0)
Eq((Friedmann.lhs + EinEq(1,1,0).lhs)*(-Rational(1,2)),
(Friedmann.rhs + EinEq(1,1,0).rhs)*(-Rational(1,2)))
att = _
エネルギー密度の式
LHS = ((diff(Friedmann.lhs, t) +
2*diff(a,t)/a * Friedmann.lhs -
2*diff(a,t)/a * att.lhs)* 3/(8*pi*G)).expand()
RHS = ((diff(Friedmann.rhs, t) +
2*diff(a,t)/a * Friedmann.rhs -
2*diff(a,t)/a * att.rhs)* 3/(8*pi*G)).expand()
Eq(RHS, LHS)
まとめ
ということで,以下の方程式が得られた。
\begin{eqnarray}
\left(\frac{\dot{a}}{a}\right)^2 + \frac{k}{a^2} &=& \frac{8\pi G}{3} \rho + \frac{\Lambda}{3}\\
\frac{\ddot{a}}{a} &=& – \frac{4\pi G}{3} \rho + \frac{\Lambda}{3} \\
\dot{\rho} + 3 \frac{\dot{a}}{a} \rho &=& 0
\end{eqnarray}
圧力がある物質の場合
フリードマン方程式
$G^{0}_{\ \ 0} = 8\pi G T^{0}_{\ \ 0} – \Lambda \delta^{0}_{\ \ 0} $
EinEq(0,0,P)
Eq(EinEq(0,0,P).lhs * (-Rational(1,3)),
EinEq(0,0,P).rhs * (-Rational(1,3)))
Friedmann = _
$\ddot{a}$ の式
$G^{1}_{\ \ 1} = 8\pi G T^{1}_{\ \ 1} – \Lambda \delta^{1}_{\ \ 1} $
EinEq(1, 1, P)
Eq((Friedmann.lhs + EinEq(1,1,P).lhs)*(-Rational(1,2)),
(Friedmann.rhs + EinEq(1,1,P).rhs)*(-Rational(1,2)))
att = _
エネルギー密度の式
LHS = ((diff(Friedmann.lhs, t) +
2*diff(a,t)/a * Friedmann.lhs -
2*diff(a,t)/a * att.lhs)* 3/(8*pi*G)).expand()
RHS = ((diff(Friedmann.rhs, t) +
2*diff(a,t)/a * Friedmann.rhs -
2*diff(a,t)/a * att.rhs)* 3/(8*pi*G)).expand()
Eq(RHS, LHS)
まとめ
ということで,以下の方程式が得られた。
\begin{eqnarray}
\left(\frac{\dot{a}}{a}\right)^2 + \frac{k}{a^2} &=& \frac{8\pi G}{3} \rho + \frac{\Lambda}{3}\\
\frac{\ddot{a}}{a} &=& – \frac{4\pi G}{3} (\rho + 3 P) + \frac{\Lambda}{3} \\
\dot{\rho} + 3 \frac{\dot{a}}{a} (\rho + P) &=& 0
\end{eqnarray}