Maximaで一般相対論
フリーな数式処理ソフト Maxima を使用して ロバートソン・ウォーカー計量 からアインシュタインテンソルを計算したメモ。 腕力で式変形するのは大変すぎる。
まず最初に ctensor を load して csetup() し、計量を作る。
(%i1) load(ctensor); (%o1) C:/PROGRA~1/MAXIMA~1.0-2/share/maxima/5.28.0-2/share/tensor/ctensor.mac (%i2) csetup(); /* 次元の設定 3+1 次元なので 4 とする */ Enter the dimension of the coordinate system: 4; /* よくわからんけど、変更しないので n */ Do you wish to change the coordinate names? n; /* 今から計量を入力するので 1 */ 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; /* 今回の計量は対角的なので 1 */ Is the matrix 1. Diagonal 2. Symmetric 3. Antisymmetric 4. General Answer 1, 2, 3 or 4 : 1; /* 計量の入力 座標名は (t,r,theta,phi) とする */ Row 1 Column 1: -c^2; Row 2 Column 2: a(t)^2 * 1/(1-K*r^2); Row 3 Column 3: a(t)^2 * r^2; Row 4 Column 4: a(t)^2 * r^2 * sin(theta)^2; Matrix entered. /* 定数に座標依存性を設定しないので N */ Enter functional dependencies with DEPENDS or 'N' if none N; /* 確認のため計量を見ておきたいので y */ Do you wish to see the metric? y; /* 計量がずらずら表示される */
csetup() が終わったら、ct_coords して計量の変数を指定する。
(%i3) ct_coords: [t,r,theta,phi]; (%o3) [t,r,θ,φ]
これで設定が整った。 あとは空間に関する様々なテンソルを求めていく。 アインシュタインテンソル lein を計算する場合、 先に計量 lg を定義し、 クリストッフェル記号 mcs やリッチテンソル ric を求めておく必要がある。 簡単なテンソルから順番に計算するのだ。 順番の詳細を下図に示した。 変数名の詳細についてはページの最下部にまとめた。
lg -- ug \ \ lcs -- mcs -- ric -- uric \ \ \ \ tracer - ein -- lein \ riem -- lriem -- weyl \ uriem
cdisplay(lein)
などとする。
/* 計量 lg を定義 */ (%i4) cmetric(false); (%o4) done /* これで lg に共変な計量の成分が入った */ /* 混合クリストッフェル記号 mcs を定義 */ (%i5) christof(mcs); mcs= % mcsの中身が表示される /* 共変リッチテンソル ric を定義 */ (%i6) ricci(false) (%o6) done /* 反変リッチテンソル uric を定義 */ (%i7) uricci(false) (%o7) done /* 混合アインシュタインテンソル ein を定義 */ (%i8) einstein(false) (%o8) done /* リーマン曲率テンソル を定義 */ (%i9) riemann(false) (%o9) done /* 試しにアインシュタインテンソルを表示 */ (%i10) cdisplay(lein) lein = /* ずらずら表示される */
変数名メモ
接頭語にはl,u,mがある。
接頭語 | 本名 | 説明 |
---|---|---|
l | lower | 下付き添字、つまり共変 |
u | upper | 上付き添字、つまり反変 |
m | mixed | 混合テンソル |
変数名について。 ricはlricの方がコンシステントだろう。 einもmeinの方がコンシステントだと思われる。
変数名 | 本名 | 説明 |
---|---|---|
lg | lower geometric | 共変計量 |
ug | upper geometric | 反変計量 lgの逆行列になる |
lcs | lower christoffel symbol | 全部下添字のクリストッフェル記号 |
mcs | mixed christoffel symbol | 普通のクリストッフェル記号 |
ric | ricci tensor | 共変リッチテンソル |
uric | upper ricci tensor | 反変リッチテンソル |
tracer | リッチスカラー | |
ein | einstein tensor | 混合アインシュタインテンソル |
lein | lower einstein tensor | 共変アインシュタインテンソル |
riem | riemann curvature tensor | リーマン曲率テンソル |
lriem | lower riemann curvature tensor | 共変リーマン曲率テンソル |
参考:
http://maxima.sourceforge.jp/maxima_26.html
http://maxima.sourceforge.net/docs/manual/en/maxima_26.html