FLRW の3次元空間は定曲率空間であった。定曲率空間を表す計量テンソルについてまとめる。
3次元定曲率空間
別ページで,3次元計量テンソル
リーマンテンソルが(曲率定数
と表される空間を定曲率空間という。
これが同じことを言っているのだということは,以下のことからわかる。
3次元空間ではリーマンテンソルの自由度とリッチテンソルの自由度が等しいため,以下のようにリーマンテンソルはリッチテンソル(とリッチスカラー
となり,同じことを言っていることがわかる。
共形平坦性
さて,3次元定曲率空間は共形平坦であることもわかる。リッチテンソルが定数
3次元空間が共形平坦であるということは,つまり,線素がユークリッド空間の線素に比例する形に書けるということである。たとえば
ここで
(追記:この論理展開だと,定曲率空間が共形平坦であるということの他に,球対称であるということも使っているなぁ。球対称性はどのようにして保証されるのであろうか… )
この計量テンソルからリッチテンソルを計算し,
となる。(積分定数は
Maxima の ctensor を使った計算例
となるように
load(ctensor)$
csetup();
ricci(true);
eq: ric[1,1]/lg[1,1] = 2*k;
sol: ode2(eq, f(r), r);
f = rhs(sol);
ic1(%, r = 0, f = 1);
備考:
EinsteinPy と SymPy を使った計算例
となるように
EinsteinPy と SymPy のインストールは(弘大 JupyterHub でインストール済みです。)
(sudo) pip install einsteinpy sympy
from sympy import *
from einsteinpy.symbolic import *
r, theta, phi = symbols('r, theta, phi')
f = Function('f')(r)
Metric = diag(1/f, r**2, r**2*sin(theta)**2).tolist()
gamma = MetricTensor(Metric, [r, theta, phi])
gamma.tensor()
ric=RicciTensor.from_metric(gamma)
ric.tensor()
Python は zero はじまりなので,ric[0,0]
,gamma[0, 0]
と指定します。
まずは
積分定数は
k = Symbol('k')
dsolve(ric[0, 0]/gamma[0, 0] - 2*k, f, ics={f.subs(r,0):1})
念のため,
dsolve(ric[1, 1]/gamma[1, 1] - 2*k, f, ics={f.subs(r,0):1})
dsolve(ric[2, 2]/gamma[2, 2] - 2*k, f, ics={f.subs(r,0):1})
定曲率空間計量のいくつかの表示例
いったん以下のように定曲率空間の計量が書かれることがわかると
簡単な変数変換で,テキストによく現れる別の表示例に変換できる。たとえば,
(ここで,
また,
とおくと,
と表すこともできる。ちなみに,曲率定数