読者です 読者をやめる 読者になる 読者になる

余白の書きなぐり

aueweのブログ

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