\usepackagecancel

Return to 一般相対論的宇宙論

定曲率空間の計量

FLRW の3次元空間は定曲率空間であった。定曲率空間を表す計量テンソルについてまとめる。

3次元定曲率空間

別ページで,3次元計量テンソル γij から計算されるリッチテンソル (3)R  ji  が曲率定数 k を使って
(3)R  ji=2kδ  jiと表されるとき,この空間は定曲率空間である,といったが,本来の定義は以下のようになっている。


リーマンテンソルが(曲率定数 k と計量テンソル γij だけを使って)
(3)Rijkl=k(γikγjlγilγjk)
と表される空間を定曲率空間という。


これが同じことを言っているのだということは,以下のことからわかる。

3次元空間ではリーマンテンソルの自由度とリッチテンソルの自由度が等しいため,以下のようにリーマンテンソルはリッチテンソル(とリッチスカラー (3)R)を使って書けてしまう。

(3)Rijkl=γik(3)Rjlγil(3)Rjkγjk(3)Ril+γjl(3)Rik+12(γilγjkγikγjl)(3)R

(3)R  ji=2kδ  ji を代入すると
(3)Rijkl=γik2kγjlγil2kγjkγjk2kγil+γjl2kγik+12(γilγjkγikγjl)6k=k(γikγjlγilγjk)
となり,同じことを言っていることがわかる。

共形平坦性

さて,3次元定曲率空間は共形平坦であることもわかる。リッチテンソルが定数 k と計量テンソルだけで書かれるのであるから,コットンテンソルはゼロになる。よって共形平坦である。(定曲率空間以外でも共形平坦な空間は存在するでしょうねぇ。例の「十分条件ではあるが必要条件ではない」というやつですか… )

3次元空間が共形平坦であるということは,つまり,線素がユークリッド空間の線素に比例する形に書けるということである。たとえば

γijdxidxj=F(r1)(dx2+dy2+dz2)=F(r1)(dr12+r12dθ2+r12sin2θdϕ2)

ここで r1=x2+y2+z2 。さらに F(r1)r12r2 という変数変換を行えば線素は以下のようになるだろう。

(追記:この論理展開だと,定曲率空間共形平坦であるということの他に,球対称であるということも使っているなぁ。球対称性はどのようにして保証されるのであろうか… )

γijdxidxj=dr2f(r)+r2(dθ2+sin2θdϕ2)

この計量テンソルからリッチテンソルを計算し,Rij=2kγij になるという条件で f(r) を求めると,
f(r)=1kr2
となる。(積分定数は r=0f(0)=1 とした。)

Maxima の ctensor を使った計算例


γijdxidxj=dr2f(r)+r2(dθ2+sin2θdϕ2)と仮定して,定曲率空間
Rij=2kγij
となるように f(r) を求める。
In [1]:
load(ctensor)$
In [2]:
csetup();
Enter the dimension of the coordinate system:
3;
Do you wish to change the coordinate names?
y;
Enter a list containing the names of the coordinates in order
[r, theta, phi];
Do you want to
1. Enter a new metric?
2. Enter a metric from a file?
3. Approximate a metric with a Taylor series?
1;

Is the matrix  1. Diagonal  2. Symmetric  3. Antisymmetric  4. General

Is the matrix  1. Diagonal  2. Symmetric  3. Antisymmetric  4. General
XAnswer 1, 2, 3 or 4 : \Answer 1, 2, 3 or 4 : 1;

XRow 1 Column 1: \Row 1 Column 1: 1/f(r);

XRow 2 Column 2: \Row 2 Column 2: r**2;

XRow 3 Column 3: \Row 3 Column 3: r**2 * sin(theta)**2;

Enter functional dependencies with DEPENDS or ‘N’ if none
Matrix entered.
N;
Do you wish to see the metric?
y;
(1f(r)000r2000r2sin2ϑ)
Out[2]:
(%o2)done
In [3]:
ricci(true);
(%t3)ric1,1=(f(r))rrf(r)
(%t4)ric2,2=r(f(r))r2f(r)+1
(%t5)ric3,3=r(f(r))rsin2ϑ2f(r)sin2ϑ+sin2ϑ
Out[3]:
(%o5)done

R11g11=2k を解く。

In [4]:
eq: ric[1,1]/lg[1,1] = 2*k;
Out[4]:
(%o6)(f(r))rr=2k
In [5]:
sol: ode2(eq, f(r), r);
Out[5]:
(%o7)f(r)=%ckr2
In [6]:
f = rhs(sol);
Out[6]:
(%o8)f=%ckr2
In [7]:
ic1(%, r = 0, f = 1);
Out[7]:
(%o9)f=1kr2

備考:

R22g22=2kR33g33=2k を解かせると間違った解を出す(かもしれない)ので要注意。


EinsteinPy と SymPy を使った計算例


γijdxidxj=dr2f(r)+r2(dθ2+sin2θdϕ2)と仮定して,定曲率空間
Rij=2kγij
となるように f(r) を求める。

EinsteinPy と SymPy のインストールは(弘大 JupyterHub でインストール済みです。)

(sudo) pip install einsteinpy sympy
In [1]:
from sympy import *
from einsteinpy.symbolic import *
In [2]:
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])
In [3]:
gamma.tensor()
Out[3]:
[1f(r)000r2000r2sin2(θ)]
In [4]:
ric=RicciTensor.from_metric(gamma)
ric.tensor()
Out[4]:
[ddrf(r)rf(r)000rddrf(r)2f(r)+1000(rddrf(r)2f(r)+1)sin2(θ)]

Rij=2kγij を解く。

Python は zero はじまりなので,R11ric[0,0]g11gamma[0, 0] と指定します。

まずは
R11g112k=0 つまり ric[0,0]gamma[0,0]2k=0f(r) に関する微分方程式として解く。
積分定数は r=0f(0)=1 という境界条件から決める。

In [5]:
k = Symbol('k')
dsolve(ric[0, 0]/gamma[0, 0] - 2*k, f, ics={f.subs(r,0):1})
Out[5]:
f(r)=kr2+1

念のため,R22g222k=0,R33g332k=0も解く。

In [6]:
dsolve(ric[1, 1]/gamma[1, 1] - 2*k, f, ics={f.subs(r,0):1})
Out[6]:
f(r)=kr2+1
In [7]:
dsolve(ric[2, 2]/gamma[2, 2] - 2*k, f, ics={f.subs(r,0):1})
Out[7]:
f(r)=kr2+1

 


定曲率空間計量のいくつかの表示例

いったん以下のように定曲率空間の計量が書かれることがわかると
γijdxidxj=dr21kr2+r2(dθ2+sin2θdϕ2)

簡単な変数変換で,テキストによく現れる別の表示例に変換できる。たとえば,

r=r11+k4r12とおくと,
r2=r12(1+k4r12)2,dr21kr2=dr12(1+k4r12)2となり,
γijdxidxj=1(1+k4r12)2(dr12+r12(dθ2+sin2θdϕ2))=1(1+k4r12)2(dx2+dy2+dz2)
(ここで,r1=x2+y2+z2)まさに共形平坦な形に表すこともできる。

また,
dr1kr2=dχ,  r=σ(χ)sin(kχ)k
とおくと,

γijdxidxj=dχ2+σ(χ)2(dθ2+sin2θdϕ2)

と表すこともできる。ちなみに,曲率定数 k が規格化されているとして

σ(χ)={sinχfor k=+1χfor k=0sinhχfor k=1と書く場合も多いが,本稿では k をそのまま残した σ(χ) の定義を採用することにする。

k>0 のときはそのまま,

σ(χ)=sin(kχ)kfor k>0

k<0 のときもそのまま使って
σ(χ)=sin(kχ)k=sin(i|k|χ)i|k|=sinh(|k|χ)|k|for k<0

k=0 の場合は,そのままの式の極限をとって

σ(χ)=limk0sin(kχ)k=χfor k=0