[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

# 26. ctensor

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

## 26.1 Introduction to ctensor

`ctensor`は成分テンソル操作パッケージです。 `ctensor`パッケージを使うには `load(ctensor)`とタイプしてください。 `ctensor`と対話的セッションを始めるには `csetup()`とタイプしてください。 最初に多様体の次元を指定するよう尋ねられます。 もし次元が2, 3, 4のいずれかなら、 座標のリストがそれぞれ `[x,y]`, `[x,y,z]`, `[x,y,z,t]`に設定されます。 これらの名前は、座標の新しいリストを(以下で記述する)変数 `ct_coords`に割り当てることで変えることができ、ユーザーはこれについて尋ねられます。 座標名が他のオブジェクト定義と衝突することを避けるように注意を払わなければいけません。

次に、ユーザーは計量を直接、または順序位置 (ordinal position)を指定してファイルから入力します。 計量は行列 `lg`に保存されます。 最後に、計量の逆元が計算され、行列 `ug`に保存されます。 すべての計算を冪級数で実行するオプションがあります。

サンプルプロトコルは、 例として、 (Schwarzschild解に至る) Einsteinの真空方程式を導出する問題に適用される 静的な球対称計量(標準座標)に関して、以下のように開始されます。 `ctensor`の関数の多くは例のように標準計量に対して表示されます。

    (%i1) load(ctensor);
    (%o1)      /share/tensor/ctensor.mac
    (%i2) csetup();
    Enter the dimension of the coordinate system:
    4;
    Do you wish to change the coordinate names?
    n;
    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
    Answer 1, 2, 3 or 4
    1;
    Row 1 Column 1:
    a;
    Row 2 Column 2:
    x^2;
    Row 3 Column 3:
    x^2*sin(y)^2;
    Row 4 Column 4:
    -d;

    Matrix entered.
    Enter functional dependencies with the DEPENDS function or 'N' if none
    depends([a,d],x);
    Do you wish to see the metric?
    y;
                              [ a  0       0        0  ]
                              [                        ]
                              [     2                  ]
                              [ 0  x       0        0  ]
                              [                        ]
                              [         2    2         ]
                              [ 0  0   x  sin (y)   0  ]
                              [                        ]
                              [ 0  0       0       - d ]
    (%o2)                                done
    (%i3) christof(mcs);
                                                a
                                                 x
    (%t3)                          mcs        = ---
                                      1, 1, 1   2 a

                                                 1
    (%t4)                           mcs        = -
                                       1, 2, 2   x

                                                 1
    (%t5)                           mcs        = -
                                       1, 3, 3   x

                                                d
                                                 x
    (%t6)                          mcs        = ---
                                      1, 4, 4   2 d

                                                  x
    (%t7)                          mcs        = - -
                                      2, 2, 1     a

                                               cos(y)
    (%t8)                         mcs        = ------
                                     2, 3, 3   sin(y)

                                                   2
                                              x sin (y)
    (%t9)                      mcs        = - ---------
                                  3, 3, 1         a

    (%t10)                   mcs        = - cos(y) sin(y)
                                3, 3, 2

                                                d
                                                 x
    (%t11)                         mcs        = ---
                                      4, 4, 1   2 a
    (%o11)                               done

Categories: Tensors · Share packages · Package ctensor

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

## 26.2 Functions and Variables for ctensor

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

### 26.2.1 Initialization and setup

関数: csetup ()

  パッケージを初期化し、ユーザーに計量を対話的に入力可能にする `ctensor`(成分テンソル)パッケージの関数。 より詳細は `ctensor`を参照してください。

  Categories: Package ctensor

関数: cmetric
`cmetric` (dis)
`cmetric` ()

  計量の逆元を計算し、将来の計算のためパッケージを設定する `ctensor`(成分テンソル)パッケージの関数。

  `cframe_flag`が `false`なら、 関数は逆計量 `ug`を(ユーザー定義の)行列 `lg`から計算します。 計量の行列式も計算され、変数 `gdet`に保存されます。 更に、パッケージは計量が対角的か調べ、結果に従って `diagmetric`の値を設定します。 オプション引数 disが渡されて、それが `false`でないなら、 ユーザーは計量の逆元を見るように促されます。

  `cframe_flag`が `true`なら、 関数は `fri` (逆標構行列)と `lfg`(標構計量)の値が定義されていると考えます。 これらから標構行列 `fr`と逆標構計量 `ufg`が計算されます。

  Categories: Package ctensor

関数: ct_coordsys
`ct_coordsys` (coordinate_system, extra_arg)
`ct_coordsys` (coordinate_system)

  あらかじめ定義された座標系と計量を設定します。 引数 coordinate_systemは以下のシンボルのいずれかです:

       SYMBOL             Dim Coordinates     Description/comments
       ------------------------------------------------------------------
       cartesian2d           2  [x,y]             Cartesian 2D 座標系
       polar                 2  [r,phi]           極座標系
       elliptic              2  [u,v]             楕円座標系
       confocalelliptic      2  [u,v]             共焦点楕円座標
       bipolar               2  [u,v]             二極座標系
       parabolic             2  [u,v]             放物座標系
       cartesian3d           3  [x,y,z]           Cartesian 3D 座標系
       polarcylindrical      3  [r,theta,z]       円筒z極2D
       ellipticcylindrical   3  [u,v,z]           円筒z楕円2D
       confocalellipsoidal   3  [u,v,w]           共焦点楕円
       bipolarcylindrical    3  [u,v,z]           円筒z二極2D
       paraboliccylindrical  3  [u,v,z]           円筒z放物2D
       paraboloidal          3  [u,v,phi]         Paraboloidal coords.
       conical               3  [u,v,w]           円錐座標
       toroidal              3  [phi,u,v]         環状座標
       spherical             3  [r,theta,phi]     球座標系
       oblatespheroidal      3  [u,v,phi]         偏球座標系
       oblatespheroidalsqrt  3  [u,v,phi]
       prolatespheroidal     3  [u,v,phi]         長形球座標系
       prolatespheroidalsqrt 3  [u,v,phi]
       ellipsoidal           3  [r,theta,phi]     楕円体座標系
       cartesian4d           4  [x,y,z,t]         Cartesian 4D 座標系
       spherical4d           4  [r,theta,eta,phi] 球 4D 座標系
       exteriorschwarzschild 4  [t,r,theta,phi]   Schwarzschild 計量
       interiorschwarzschild 4  [t,z,u,v]         内部 Schwarzschild 計量
       kerr_newman           4  [t,r,theta,phi]   荷電軸対称計量

  `coordinate_system`は 座標変数を含むリストが続く変換関数のリストでもあり得ます。 例えば、以下のように球計量を指定できます:

      (%i1) load(ctensor);
      (%o1)       /share/tensor/ctensor.mac
      (%i2) ct_coordsys([r*cos(theta)*cos(phi),r*cos(theta)*sin(phi),
            r*sin(theta),[r,theta,phi]]);
      (%o2)                                done
      (%i3) lg:trigsimp(lg);
                                 [ 1  0         0        ]
                                 [                       ]
                                 [     2                 ]
      (%o3)                      [ 0  r         0        ]
                                 [                       ]
                                 [         2    2        ]
                                 [ 0  0   r  cos (theta) ]
      (%i4) ct_coords;
      (%o4)                           [r, theta, phi]
      (%i5) dim;
      (%o5)                                  3

  `cframe_flag`が `true`の時、変換関数も使うことができます:

      (%i1) load(ctensor);
      (%o1)       /share/tensor/ctensor.mac
      (%i2) cframe_flag:true;
      (%o2)                                true
      (%i3) ct_coordsys([r*cos(theta)*cos(phi),r*cos(theta)*sin(phi),
            r*sin(theta),[r,theta,phi]]);
      (%o3)                                done
      (%i4) fri;
      (%o4)
       [cos(phi)cos(theta) -cos(phi) r sin(theta) -sin(phi) r cos(theta)]
       [                                                                ]
       [sin(phi)cos(theta) -sin(phi) r sin(theta)  cos(phi) r cos(theta)]
       [                                                                ]
       [    sin(theta)           r cos(theta)                0          ]

      (%i5) cmetric();
      (%o5)                                false
      (%i6) lg:trigsimp(lg);
                                 [ 1  0         0        ]
                                 [                       ]
                                 [     2                 ]
      (%o6)                      [ 0  r         0        ]
                                 [                       ]
                                 [         2    2        ]
                                 [ 0  0   r  cos (theta) ]

  オプションの引数 extra_argは以下のいずれかです:

  `cylindrical`は `ct_coordsys`に追加の極座標を結びつけるよう命じます。

  `minkowski`は `ct_coordsys`に 負の計量符号を持つ追加の座標を結びつけるよう命じます。

  `all`は `ct_coordsys`に 計量を設定した後、 `cmetric`と `christof(false)`をコールするよう命じます。

  もしグローバル変数 `verbose`が `true`に設定されているなら、 `ct_coordsys`は、 `cframe_flag`の値に依存して `dim`, `ct_coords`と、 `lg`か `lfg`のいずれかと `fri`の値を表示します。

  Categories: Package ctensor

関数: init_ctensor ()

  `ctensor`パッケージを初期化します。

  `init_ctensor`関数は`ctensor`パッケージを再初期化します。 それは`ctensor`が使う配列、行列すべてを削除し、フラグすべてをリセットし、 `dim`を4にリセットし、標構計量を Lorentz標構にリセットします。

  Categories: Package ctensor

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

### 26.2.2 The tensors of curved space

`ctensor`パッケージの 主な目的は曲がった空間(時間)のテンソル、 最も顕著には一般相対性理論で使われるテンソルを計算することです。

計量基底が使われる時、 `ctensor`は以下のテンソルを計算できます:

     lg  -- ug
       \      \
        lcs -- mcs -- ric -- uric
                  \      \       \
                   \      tracer - ein -- lein
                    \
                     riem -- lriem -- weyl
                         \
                          uriem

`ctensor`は動標構を使って機能することもできます。 `cframe_flag`が `true`に設定されている時、 以下のテンソルを計算できます:

     lfg -- ufg
         \
     fri -- fr -- lcs -- mcs -- lriem -- ric -- uric
          \                       |  \      \       \
           lg -- ug               |   weyl   tracer - ein -- lein
                                  |\
                                  | riem
                                  |
                                  \uriem

関数: christof (dis)

  `ctensor` (成分テンソル)パッケージの関数。 各種Christoffel記号を計算します。 引数 disはどの結果をすぐに表示するか決めます。 第一種と第二種Christoffel記号は それぞれ配列 `lcs[i,j,k]`と `mcs[i,j,k]`に格納され、 最初の 2つの添字に対して対称と定義されます。 もし `christof`の引数が `lcs`か `mcs`なら、 それぞれ `lcs[i,j,k]`か `mcs[i,j,k]`の固有の非零値が表示されます。 もし引数が `all`なら、 `lcs[i,j,k]`と `mcs[i,j,k]`の固有の非零値が表示されます。 もし引数が `false`なら要素の表示はされません。 配列要素 `mcs[i,j,k]`は最後の添字が反変であるような方法で定義されます。

  Categories: Package ctensor

関数: ricci (dis)

  `ctensor` (成分テンソル)パッケージの関数。 `ricci`は Ricciテンソルの共変(対称)成分 `ric[i,j]`を計算します。 引数 disが `true`なら非零成分が表示されます。

  Categories: Package ctensor

関数: uricci (dis)

  この関数は最初にRicciテンソルの共変成分 `ric[i,j]`を計算します。 そして混合 Ricciテンソルが反変計量テンソルを使って計算されます。 もし引数 disの値が `true`なら これらの(添字 `i`は共変で、添字 `j`は反変の)混合成分 `uric[i,j]` は直接表示されます。 そうでないなら、 `ricci(false)`は結果を表示することなく、単に配列 `uric[i,j]`の要素を計算します。

  Categories: Package ctensor

関数: scurvature ()

  与えられた計量を持つ Riemannian多様体の (Ricciテンソルを縮約することで得られる)スカラ曲率を返します。

  Categories: Package ctensor

関数: einstein (dis)

  `ctensor` (成分テンソル)パッケージの関数。 `einstein`は、 (関数 `christof`と `ricci`を使って) Christoffel記号と Ricciテンソルを得られた後、 混合 Einsteinテンソルを計算します。 もし引数 disが `true`なら、 混合 Einsteinテンソル `ein[i,j]`の非零値が表示されます。 ここで `j`は反変添字です。 変数 `rateinstein`は これらの成分上の有理整理をもたらします。 もし `ratfac`が `true`なら、 成分は因数分解もされます。

  Categories: Package ctensor

関数: leinstein (dis)

  共変 Einsteinテンソル。 `leinstein`は 配列 `lein`に共変 Einsteinテンソルの値を格納します。 共変 Einsteinテンソルは、 計量テンソルを掛けることで 混合 Einsteinテンソル `ein`から計算されます。 もし引数 disが `true`なら、 共変 Einsteinテンソルの非零値が表示されます。

  Categories: Package ctensor

関数: riemann (dis)

  `ctensor` (成分テンソル)パッケージの関数。 `riemann`は 与えられた計量と対応するChristoffel記号から Riemann曲率テンソルを計算します。 以下の添字慣例が使われます:

                      l      _l       _l       _l   _m    _l   _m
       R[i,j,k,l] =  R    = |      - |      + |    |   - |    |
                      ijk     ij,k     ik,j     mk   ij    mj   ik

  この表記法は `itensor`パッケージとその `icurvature`関数で使われる表記法と 一致しています。 もしオプション引数 disが `true`なら、 固有の非零成分 `riem[i,j,k,l]`が表示されます。 Einsteinテンソルと同様に ユーザーが設定する様々なスイッチが Riemannテンソルの成分の整理を制御します。 もし `ratriemann`が `true`なら、 有理整理がされます。 もし `ratfac`が `true`なら、 成分のそれぞれは因数分解もされます。

  もし変数 `cframe_flag`が `false`なら、 Riemannテンソルは Christoffel記号から直接計算されます。 もし `cframe_flag`が `true`なら、 共変 Riemannテンソルは 標構場係数から最初に計算されます。

  Categories: Package ctensor

関数: lriemann (dis)

  共変 Riemannテンソル (`lriem[]`).

  配列 `lriem`として 共変 Riemannテンソルを計算します。 引数 disが `true`なら固有の非零値が表示されます。

  変数 `cframe_flag`が `true`なら、 共変 Riemannテンソルを標構場係数から直接計算します。 そうでないなら、 (3,1) Riemannテンソルを最初に計算します。

  添字順序の情報は `riemann`を参照してください。

  Categories: Package ctensor

関数: uriemann (dis)

  配列要素 `uriem[i,j,k,l]`として Riemann曲率テンソルの反変成分を計算します。 disが `true`ならこれらを表示します。

  Categories: Package ctensor

関数: rinvariant ()

  テンソル

      lriem[i,j,k,l]*uriem[i,j,k,l].

  を縮約することで得られる Kretschmann不変量 (`kinvariant`)を形成します。

  このオブジェクトは非常に大きくなるかもしれないので、自動で整理はしません。

  Categories: Package ctensor

関数: weyl (dis)

  Weylの共形テンソルを計算します。 引数 disが `true`なら、 非零成分 `weyl[i,j,k,l]`をユーザーに示します。 そうでないなら、これらの成分を単に計算し、格納します。 スイッチ `ratweyl`が `true`に設定されているなら、 成分を有理整理します; `ratfac`が `true`なら結果を因数分解もします。

  Categories: Package ctensor

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

### 26.2.3 Taylor series expansion

`ctensor`パッケージは 結果が Taylor級数近似であると仮定することで、結果を切り詰める機能を持ちます。 この振る舞いは `ctayswitch`変数で制御されます; trueに設定されている時、 結果を整理する際に `ctensor`は内部的に関数 `ctaylor`を利用します。

以下の `ctensor`関数が `ctaylor`関数を呼び出します:

        Function     Comments
        ---------------------------------
        christof()   For mcs only
        ricci()
        uricci()
        einstein()
        riemann()
        weyl()
        checkdiv()

関数: ctaylor ()

  `ctaylor`関数は、 `taylor`を使ってその後`ratdisrep`をコールすることで 引数をTaylor級数に変換することで、 引数を切り詰めます。 これは展開変数 `ctayvar`に関してより高い項を落とす合わせ効果を持ちます。 落とす項の次数は`ctaypov`で定義されます; 級数展開が実行される点は `ctaypt`で指定されます。

  例として、 Minkowski計量の置換である簡単な計量を考えます。 追加の制約なしでは、対角計量でさえはるかに複雑すぎる Einsteinテンソルの式を生成します:

      (%i1) load(ctensor);
      (%o1)       /share/tensor/ctensor.mac
      (%i2) ratfac:true;
      (%o2)                                true
      (%i3) derivabbrev:true;
      (%o3)                                true
      (%i4) ct_coords:[t,r,theta,phi];
      (%o4)                         [t, r, theta, phi]
      (%i5) lg:matrix([-1,0,0,0],[0,1,0,0],[0,0,r^2,0],
                      [0,0,0,r^2*sin(theta)^2]);
                              [ - 1  0  0         0        ]
                              [                            ]
                              [  0   1  0         0        ]
                              [                            ]
      (%o5)                   [          2                 ]
                              [  0   0  r         0        ]
                              [                            ]
                              [              2    2        ]
                              [  0   0  0   r  sin (theta) ]
      (%i6) h:matrix([h11,0,0,0],[0,h22,0,0],[0,0,h33,0],[0,0,0,h44]);
                                  [ h11   0    0    0  ]
                                  [                    ]
                                  [  0   h22   0    0  ]
      (%o6)                       [                    ]
                                  [  0    0   h33   0  ]
                                  [                    ]
                                  [  0    0    0   h44 ]
      (%i7) depends(l,r);
      (%o7)                               [l(r)]
      (%i8) lg:lg+l*h;
            [ h11 l - 1      0          0                 0            ]
            [                                                          ]
            [     0      h22 l + 1      0                 0            ]
            [                                                          ]
      (%o8) [                        2                                 ]
            [     0          0      r  + h33 l            0            ]
            [                                                          ]
            [                                    2    2                ]
            [     0          0          0       r  sin (theta) + h44 l ]
      (%i9) cmetric(false);
      (%o9)                                done
      (%i10) einstein(false);
      (%o10)                               done
      (%i11) ntermst(ein);
      [[1, 1], 62]
      [[1, 2], 0]
      [[1, 3], 0]
      [[1, 4], 0]
      [[2, 1], 0]
      [[2, 2], 24]
      [[2, 3], 0]
      [[2, 4], 0]
      [[3, 1], 0]
      [[3, 2], 0]
      [[3, 3], 46]
      [[3, 4], 0]
      [[4, 1], 0]
      [[4, 2], 0]
      [[4, 3], 0]
      [[4, 4], 46]
      (%o12)                               done

  しかし、もしこの例を変数 `l`に対して線形という近似として 再計算するなら、もっと簡潔な式を得ます:

      (%i14) ctayswitch:true;
      (%o14)                               true
      (%i15) ctayvar:l;
      (%o15)                                 l
      (%i16) ctaypov:1;
      (%o16)                                 1
      (%i17) ctaypt:0;
      (%o17)                                 0
      (%i18) christof(false);
      (%o18)                               done
      (%i19) ricci(false);
      (%o19)                               done
      (%i20) einstein(false);
      (%o20)                               done
      (%i21) ntermst(ein);
      [[1, 1], 6]
      [[1, 2], 0]
      [[1, 3], 0]
      [[1, 4], 0]
      [[2, 1], 0]
      [[2, 2], 13]
      [[2, 3], 2]
      [[2, 4], 0]
      [[3, 1], 0]
      [[3, 2], 2]
      [[3, 3], 9]
      [[3, 4], 0]
      [[4, 1], 0]
      [[4, 2], 0]
      [[4, 3], 0]
      [[4, 4], 9]
      (%o21)                               done
      (%i22) ratsimp(ein[1,1]);
                               2      2  4               2     2
      (%o22) - (((h11 h22 - h11 ) (l )  r  - 2 h33 l    r ) sin (theta)
                                    r               r r

                                  2               2      4    2
                    - 2 h44 l    r  - h33 h44 (l ) )/(4 r  sin (theta))
                             r r                r

  例えば、重力源から遠く、弱い場極限で取り組む時に この機能が役に立つかもしれません。

  Categories: Package ctensor

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

### 26.2.4 Frame fields

変数 `cframe_flag`を trueに設定している時、 `ctensor`パッケージは動標構 (moving frame)を使って計算を実行します。

関数: frame_bracket (fr, fri, diagframe)

  標構(frame)ブラケット (`fb[]`)。

  以下の定義に従って標構ブラケットを計算します:

         c          c         c        d     e
      ifb   = ( ifri    - ifri    ) ifr   ifr
         ab         d,e       e,d      a     b

  Categories: Package ctensor

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

### 26.2.5 Algebraic classification

`ctensor`の(2004年11月時点で)新しい特長は 4次元時空計量の Petrov分類を計算する能力です。 この機能のデモンストレーションは、 ファイル `share/tensor/petrov.dem`を参照してください。

関数: nptetrad ()

  Newman-Penroseヌルテトラド(null tetrad) (`np`)と上付き添字対応物 (`npi`)を計算します。 例えば `petrov`を参照してください。

  ヌルテトラドは計量符号 (-,+,+,+)を持つ4次元直交標構計量が使われいるという仮定の上で構成されます。 以下のように、ヌルテトラドの成分は逆標構行列に関係します:

      np  = (fri  + fri ) / sqrt(2)
        1       1      2

      np  = (fri  - fri ) / sqrt(2)
        2       1      2

      np  = (fri  + %i fri ) / sqrt(2)
        3       3         4

      np  = (fri  - %i fri ) / sqrt(2)
        4       3         4

  Categories: Package ctensor

関数: psi (dis)

  5つの Newman-Penrose係数 `psi[0]`...`psi[4]`を計算します。 `dis`が `true`に設定されているなら係数を表示します。 例は `petrov`を参照してください。

  これらの係数は座標基底に関して、Weylテンソルから計算されます。 もし標構基底が使われるなら、最初に Weylテンソルを座標基底に変換します。 これは計算量の多い手続きになるかもしれません。 この理由で、いくつかの場合、 Weylテンソルを計算する前に まず座標基底を使うのがより都合がいいかも知れません。 しかし、 Newman-Penroseヌルテトラドを構成することは標構基底を要求することに注意してください。 それ故に、重要な一連の計算は標構基底で始めることができます。 標構基底は、後で (`cmetric`が自動的に計算する) `lg`と `ug`を計算するのに使われます。 例は`petrov`を参照してください。 この時点で、 Christoffel記号を計算し始める前に `cframe_flag`を falseに設定することで 座標基底に戻ることができます。 後の段階で標構基底に変えると、 標構基底で計算したいくつか、座標基底でのいくつかと 2つを識別する方法がないまま、テンソルの混ざった状態で終わるかもしれないので、 矛盾する結果をもたらすかもしれません。

  Categories: Package ctensor

関数: petrov ()

  `psi[0]`...`psi[4]`で特徴付けられる計量の Petrov分類を計算します。

  例えば、以下は Kerr計量の Petrov分類を得る方法を例示します:

      (%i1) load(ctensor);
      (%o1)       /share/tensor/ctensor.mac
      (%i2) (cframe_flag:true,gcd:spmod,ctrgsimp:true,ratfac:true);
      (%o2)                                true
      (%i3) ct_coordsys(exteriorschwarzschild,all);
      (%o3)                                done
      (%i4) ug:invert(lg)$
      (%i5) weyl(false);
      (%o5)                                done
      (%i6) nptetrad(true);
      (%t6) np =

      [ sqrt(r - 2 m)           sqrt(r)                                 ]
      [---------------   ---------------------    0            0        ]
      [sqrt(2) sqrt(r)   sqrt(2) sqrt(r - 2 m)                          ]
      [                                                                 ]
      [ sqrt(r - 2 m)            sqrt(r)                                ]
      [---------------  - ---------------------   0            0        ]
      [sqrt(2) sqrt(r)    sqrt(2) sqrt(r - 2 m)                         ]
      [                                                                 ]
      [                                          r      %i r sin(theta) ]
      [       0                    0          -------   --------------- ]
      [                                       sqrt(2)       sqrt(2)     ]
      [                                                                 ]
      [                                          r       %i r sin(theta)]
      [       0                    0          -------  - ---------------]
      [                                       sqrt(2)        sqrt(2)    ]

                                   sqrt(r)         sqrt(r - 2 m)
      (%t7) npi = matrix([- ---------------------,---------------, 0, 0],
                            sqrt(2) sqrt(r - 2 m) sqrt(2) sqrt(r)

                sqrt(r)            sqrt(r - 2 m)
      [- ---------------------, - ---------------, 0, 0],
         sqrt(2) sqrt(r - 2 m)    sqrt(2) sqrt(r)

                 1               %i
      [0, 0, ---------, --------------------],
             sqrt(2) r  sqrt(2) r sin(theta)

                 1                 %i
      [0, 0, ---------, - --------------------])
             sqrt(2) r    sqrt(2) r sin(theta)

      (%o7)                                done
      (%i7) psi(true);
      (%t8)                              psi  = 0
                                            0

      (%t9)                              psi  = 0
                                            1

                                                m
      (%t10)                             psi  = --
                                            2    3
                                                r

      (%t11)                             psi  = 0
                                            3

      (%t12)                             psi  = 0
                                            4
      (%o12)                               done
      (%i12) petrov();
      (%o12)                                 D

  Petrov分類関数は以下の文献で発表されたアルゴリズムに基づいています。

  "Classifying geometries in general relativity: III Classification in practice" by Pollney, Skea, and d'Inverno, Class. Quant. Grav. 17 2885-2902 (2000).

  いくつかの簡単なテストケースを除いて、 2004年12月19日時点、実装はテストされていなく、エラーを含みそうです。

  Categories: Package ctensor

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

### 26.2.6 Torsion and nonmetricity

`ctensor`はねじれ係数と非計量性係数を計算し、接続係数内に含める能力を持ちます。

ユーザーが供給するテンソル `tr`からねじれ係数を計算します。 `tr`は階数 (2,1)テンソルでなければいけません。 `tr`から、ねじれ係数 `kt`は以下の公式に従って計算されます:

                  m          m      m
           - g  tr   - g   tr   - tr   g
              im  kj    jm   ki     ij  km
    kt   = -------------------------------
      ijk                 2

      k     km
    kt   = g   kt
      ij         ijm

混合添字テンソルだけを計算し、配列 `kt`に格納することに注意してください。

非計量性係数はユーザーが供給する非計量性ベクトル `nm`から計算します。 `nm`から非計量性係数 `nmc`は以下のように計算されます:

                 k    k        km
           -nm  D  - D  nm  + g   nm  g
       k      i  j    i   j         m  ij
    nmc  = ------------------------------
       ij                2

ここで Dは Kroneckerのデルタを表します。

`ctorsion_flag`が `true`に設定されている時、 `kt`の値が `christof`で計算された混合添字付き接続係数から引かれ、 `mcs`に格納されます。 同様に、もし `cnonmet_flag`が `true`に設定されているなら、 `nmc`の値が混合添字付き接続係数から引かれます。

もし必要なら、 `christof`は、`kt`と `nm`を計算するために 関数 `contortion`と `nonmetricity`をコールします。

関数: contortion (tr)

  ねじれテンソル trから (2,1)コントーション (contortion)係数を計算します。

  Categories: Package ctensor

関数: nonmetricity (nm)

  非計量性ベクトル nmから (2,1)非計量性係数を計算します。

  Categories: Package ctensor

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

### 26.2.7 Miscellaneous features

関数: ctransform (M)

  任意の平方対称行列 M上で座標変換を実行する `ctensor` (成分テンソル)パッケージの関数。 ユーザーは変換を定義する関数を入力しなければいけません。 (以前 `transform`と呼ばれていました。)

  Categories: Package ctensor

関数: findde (A, n)

  n次元の平方配列 A要素に対応しただ1つに定まる微分方程式(式)のリストを返します。 現在、 nは 2か 3を指定できます `deindex`はこれらのただ1つに定まる微分方程式に従う Aの添字を含むグローバルリストです。 2次元配列である Einsteinテンソル (`ein`)に関して、 もし以下の例で計量に関して計算するなら、 `findde`は以下の独立微分方程式を与えます:

      (%i1) load(ctensor);
      (%o1)       /share/tensor/ctensor.mac
      (%i2) derivabbrev:true;
      (%o2)                                true
      (%i3) dim:4;
      (%o3)                                  4
      (%i4) lg:matrix([a, 0, 0, 0], [ 0, x^2, 0, 0],
                                    [0, 0, x^2*sin(y)^2, 0], [0,0,0,-d]);
                                [ a  0       0        0  ]
                                [                        ]
                                [     2                  ]
                                [ 0  x       0        0  ]
      (%o4)                     [                        ]
                                [         2    2         ]
                                [ 0  0   x  sin (y)   0  ]
                                [                        ]
                                [ 0  0       0       - d ]
      (%i5) depends([a,d],x);
      (%o5)                            [a(x), d(x)]
      (%i6) ct_coords:[x,y,z,t];
      (%o6)                            [x, y, z, t]
      (%i7) cmetric();
      (%o7)                                done
      (%i8) einstein(false);
      (%o8)                                done
      (%i9) findde(ein,2);
                                                  2
      (%o9) [d  x - a d + d, 2 a d d    x - a (d )  x - a  d d  x
              x                     x x         x        x    x

                                                    2          2
                                + 2 a d d   - 2 a  d , a  x + a  - a]
                                         x       x      x
      (%i10) deindex;
      (%o10)                     [[1, 1], [2, 2], [4, 4]]

  Categories: Package ctensor

関数: cograd ()

  スカラ関数の 共変勾配を計算します。 `contragrad`が以下で例示する例のように ユーザーは対応するベクトル名を選べます。

  Categories: Package ctensor

関数: contragrad ()

  スカラ関数の反変勾配を計算します。 Schwarzschild計量に関する以下の例が例示するように ユーザーは対応するベクトル名を選べます:

      (%i1) load(ctensor);
      (%o1)       /share/tensor/ctensor.mac
      (%i2) derivabbrev:true;
      (%o2)                                true
      (%i3) ct_coordsys(exteriorschwarzschild,all);
      (%o3)                                done
      (%i4) depends(f,r);
      (%o4)                               [f(r)]
      (%i5) cograd(f,g1);
      (%o5)                                done
      (%i6) listarray(g1);
      (%o6)                            [0, f , 0, 0]
                                            r
      (%i7) contragrad(f,g2);
      (%o7)                                done
      (%i8) listarray(g2);
                                     f  r - 2 f  m
                                      r        r
      (%o8)                      [0, -------------, 0, 0]
                                           r

  Categories: Package ctensor

関数: dscalar ()

  いったん依存性が関数に宣言されれば、スカラ関数のテンソル d'Alembert演算子を計算します。 例えば:

      (%i1) load(ctensor);
      (%o1)       /share/tensor/ctensor.mac
      (%i2) derivabbrev:true;
      (%o2)                                true
      (%i3) ct_coordsys(exteriorschwarzschild,all);
      (%o3)                                done
      (%i4) depends(p,r);
      (%o4)                               [p(r)]
      (%i5) factor(dscalar(p));
                                2
                          p    r  - 2 m p    r + 2 p  r - 2 m p
                           r r           r r        r          r
      (%o5)               --------------------------------------
                                             2
                                            r

  Categories: Package ctensor

関数: checkdiv ()

  ベクトル場(発散)の対応する n個の成分を印字することで (最初の添字が共変でなければいけない)混合二階テンソルの共変発散を計算します。 ここで n = `dim`です。 もし関数の引数が `g`なら、 Einsteinテンソルの発散が形成され、零にならなければいけません。 加えて、発散(ベクトル)は配列名 `div`を与えられます。

  Categories: Package ctensor

関数: cgeodesic (dis)

  `ctensor` (成分テンソル)パッケージの関数。 `cgeodesic`は与えられた計量での運動の測地方程式を計算します。 それらは配列 `geod[i]`に格納されます。 もし引数 disが `true`なら、 これらの方程式が表示されます。

  Categories: Package ctensor

関数: bdvac (f)

  Brans- Dicke重力理論の真空場の方程式の共変成分を生成します。 スカラ場は引数 fで指定されます。 fは、例えば、`'p(x)`のように、 関数依存性を持つ(クォートされた)関数名でなければいけません。

  二階共変場テンソルの成分は配列 `bd`で表されます。

  Categories: Package ctensor

関数: invariant1 ()

  R^2の不変密度に関する混合 Euler- Lagrangeテンソル(場の方程式)を生成します。 場の方程式は `inv1`と名付けられた配列の成分です。

  Categories: Package ctensor

関数: invariant2 ()

  *** NOT YET IMPLEMENTED ***

  `ric[i,j]*uriem[i,j]`の不変密度に関する 混合 Euler- Lagrangeテンソル(場の方程式)を生成します。 場の方程式は `inv2`と名付けられた配列の成分です。

  Categories: Package ctensor

関数: bimetric ()

  *** NOT YET IMPLEMENTED ***

  Rosenの二計量(bimetric)理論の場の方程式を生成します。 場の方程式は `rosen`と名付けられた配列の成分です。

  Categories: Package ctensor

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

### 26.2.8 Utility functions

関数: diagmatrixp (M,n)

  もし Mの最初の n行と n列が対角行列か対角 (2D) 配列を形成するなら `true`を返します。

  Categories: Package ctensor · Predicate functions

関数: symmetricp (M, n)

  もし Mが nかける nの対称行列か対称 (2D) 配列なら `true`を返し、そうでなければ `false`を返します。

  もし n が Mのサイズより小さいなら、 `symmetricp` は 行1から行 nと列1から列 nからなる nかける nの部分行列(もしくは部分配列)のみを考慮します。

  Categories: Package ctensor · Predicate functions

関数: ntermst (f)

  ユーザーに 二重に下付き添字されているテンソル(配列) fの「サイズ」のぱっと見を与えます。 二番目の要素が一番目の要素が指定する成分の NTERMSに対応する2つの要素のリストを印字します。 この方法で、非零式をすばやく見つけて整理を試みることが可能です。

  Categories: Package ctensor

関数: cdisplay (ten)

  多次元配列で表されるように、テンソル tenの要素すべてを表示します。 他のタイプの変数はもちろん、階数　0と　1のテンソルが `ldisplay`を使ったように表示されます。 階数　2のテンソルは　2次元行列として表示され、 より高い階数のテンソルは2次元行列のリストとして表示されます。 例えば、 Schwarzschild計量の Riemannテンソルは以下のように見ることができます:

      (%i1) load(ctensor);
      (%o1)       /share/tensor/ctensor.mac
      (%i2) ratfac:true;
      (%o2)                                true
      (%i3) ct_coordsys(exteriorschwarzschild,all);
      (%o3)                                done
      (%i4) riemann(false);
      (%o4)                                done
      (%i5) cdisplay(riem);
                [ 0               0                   0           0     ]
                [                                                       ]
                [                              2                        ]
                [      3 m (r - 2 m)   m    2 m                         ]
                [ 0  - ------------- + -- - ----      0           0     ]
                [            4          3     4                         ]
                [           r          r     r                          ]
                [                                                       ]
      riem    = [                                m (r - 2 m)            ]
          1, 1  [ 0               0              -----------      0     ]
                [                                     4                 ]
                [                                    r                  ]
                [                                                       ]
                [                                           m (r - 2 m) ]
                [ 0               0                   0     ----------- ]
                [                                                4      ]
                [                                               r       ]

                                      [    2 m (r - 2 m)       ]
                                      [ 0  -------------  0  0 ]
                                      [          4             ]
                                      [         r              ]
                           riem     = [                        ]
                               1, 2   [ 0        0        0  0 ]
                                      [                        ]
                                      [ 0        0        0  0 ]
                                      [                        ]
                                      [ 0        0        0  0 ]

                                      [         m (r - 2 m)    ]
                                      [ 0  0  - -----------  0 ]
                                      [              4         ]
                                      [             r          ]
                           riem     = [                        ]
                               1, 3   [ 0  0        0        0 ]
                                      [                        ]
                                      [ 0  0        0        0 ]
                                      [                        ]
                                      [ 0  0        0        0 ]

                                      [            m (r - 2 m) ]
                                      [ 0  0  0  - ----------- ]
                                      [                 4      ]
                                      [                r       ]
                           riem     = [                        ]
                               1, 4   [ 0  0  0        0       ]
                                      [                        ]
                                      [ 0  0  0        0       ]
                                      [                        ]
                                      [ 0  0  0        0       ]

                                     [       0         0  0  0 ]
                                     [                         ]
                                     [       2 m               ]
                                     [ - ------------  0  0  0 ]
                          riem     = [    2                    ]
                              2, 1   [   r  (r - 2 m)          ]
                                     [                         ]
                                     [       0         0  0  0 ]
                                     [                         ]
                                     [       0         0  0  0 ]

                   [     2 m                                         ]
                   [ ------------  0        0               0        ]
                   [  2                                              ]
                   [ r  (r - 2 m)                                    ]
                   [                                                 ]
                   [      0        0        0               0        ]
                   [                                                 ]
        riem     = [                         m                       ]
            2, 2   [      0        0  - ------------        0        ]
                   [                     2                           ]
                   [                    r  (r - 2 m)                 ]
                   [                                                 ]
                   [                                         m       ]
                   [      0        0        0         - ------------ ]
                   [                                     2           ]
                   [                                    r  (r - 2 m) ]

                                      [ 0  0       0        0 ]
                                      [                       ]
                                      [            m          ]
                                      [ 0  0  ------------  0 ]
                           riem     = [        2              ]
                               2, 3   [       r  (r - 2 m)    ]
                                      [                       ]
                                      [ 0  0       0        0 ]
                                      [                       ]
                                      [ 0  0       0        0 ]

                                      [ 0  0  0       0       ]
                                      [                       ]
                                      [               m       ]
                                      [ 0  0  0  ------------ ]
                           riem     = [           2           ]
                               2, 4   [          r  (r - 2 m) ]
                                      [                       ]
                                      [ 0  0  0       0       ]
                                      [                       ]
                                      [ 0  0  0       0       ]

                                            [ 0  0  0  0 ]
                                            [            ]
                                            [ 0  0  0  0 ]
                                            [            ]
                                 riem     = [ m          ]
                                     3, 1   [ -  0  0  0 ]
                                            [ r          ]
                                            [            ]
                                            [ 0  0  0  0 ]

                                            [ 0  0  0  0 ]
                                            [            ]
                                            [ 0  0  0  0 ]
                                            [            ]
                                 riem     = [    m       ]
                                     3, 2   [ 0  -  0  0 ]
                                            [    r       ]
                                            [            ]
                                            [ 0  0  0  0 ]

                                     [   m                      ]
                                     [ - -   0   0       0      ]
                                     [   r                      ]
                                     [                          ]
                                     [        m                 ]
                                     [  0   - -  0       0      ]
                          riem     = [        r                 ]
                              3, 3   [                          ]
                                     [  0    0   0       0      ]
                                     [                          ]
                                     [              2 m - r     ]
                                     [  0    0   0  ------- + 1 ]
                                     [                 r        ]

                                          [ 0  0  0    0   ]
                                          [                ]
                                          [ 0  0  0    0   ]
                                          [                ]
                               riem     = [            2 m ]
                                   3, 4   [ 0  0  0  - --- ]
                                          [             r  ]
                                          [                ]
                                          [ 0  0  0    0   ]

                                      [       0        0  0  0 ]
                                      [                        ]
                                      [       0        0  0  0 ]
                                      [                        ]
                           riem     = [       0        0  0  0 ]
                               4, 1   [                        ]
                                      [      2                 ]
                                      [ m sin (theta)          ]
                                      [ -------------  0  0  0 ]
                                      [       r                ]

                                      [ 0        0        0  0 ]
                                      [                        ]
                                      [ 0        0        0  0 ]
                                      [                        ]
                           riem     = [ 0        0        0  0 ]
                               4, 2   [                        ]
                                      [         2              ]
                                      [    m sin (theta)       ]
                                      [ 0  -------------  0  0 ]
                                      [          r             ]

                                    [ 0  0          0          0 ]
                                    [                            ]
                                    [ 0  0          0          0 ]
                                    [                            ]
                         riem     = [ 0  0          0          0 ]
                             4, 3   [                            ]
                                    [                2           ]
                                    [         2 m sin (theta)    ]
                                    [ 0  0  - ---------------  0 ]
                                    [                r           ]

                 [        2                                             ]
                 [   m sin (theta)                                      ]
                 [ - -------------         0                0         0 ]
                 [         r                                            ]
                 [                                                      ]
                 [                         2                            ]
                 [                    m sin (theta)                     ]
      riem     = [        0         - -------------         0         0 ]
          4, 4   [                          r                           ]
                 [                                                      ]
                 [                                          2           ]
                 [                                   2 m sin (theta)    ]
                 [        0                0         ---------------  0 ]
                 [                                          r           ]
                 [                                                      ]
                 [        0                0                0         0 ]

      (%o5)                                done

  Categories: Package ctensor

関数: deleten (L, n)

  n番目の要素を削除した Lから成る新しいリストを返します。

  Categories: Package ctensor

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

### 26.2.9 Variables used by `ctensor`

オプション変数: dim

  デフォルト値: 4

  `ctensor` (成分テンソル)パッケージのオプション。 `dim`はデフォルト 4の多様体の次元です。 コマンド `dim: n`は次元を任意の別の値 `n`に再設定します。

  Categories: Package ctensor

オプション変数: diagmetric

  デフォルト値: `false`

  `ctensor` (成分テンソル)パッケージのオプション。 もし `diagmetric`が `true`なら、 特殊なルーチンが計量の対角性を考慮して (計量テンソルを明示的に含む)幾何的オブジェクトすべてを計算します。 もちろん、実行時間短縮になります。 注意: もし対角計量が指定されたら、 `csetup`は自動的にこのオプションを設定します。

  Categories: Package ctensor

オプション変数: ctrgsimp

  テンソルを計算する時、三角関数整理を使うようにします。 現在、 `ctrgsimp`は動標構を含む計算だけに影響します。

  Categories: Package ctensor · Simplification flags and variables

オプション変数: cframe_flag

  計算をホロノミック (holonomic)計量と対比して動標構に関係して実行するようにします。 標構は逆標構配列 `fri`と標構計量 `lfg`で定義されます。 Cartesian標構を使う計算に関して、 `lfg`は適切な次元の単位行列でなければいけません; Lorentz標構での計算に関して、 `lfg`は適切な符号を持たなければいけません。

  Categories: Package ctensor

オプション変数: ctorsion_flag

  コントーションテンソルが接続係数の計算に含まれるようにします。 コントーションテンソル自体はユーザーが提供するテンソル `tr`から `contortion`によって計算されます。

  Categories: Package ctensor

オプション変数: cnonmet_flag

  非計量性係数が接続係数の計算に含まれるようにします。 コントーションテンソルはユーザーが提供する非計量性ベクトル `nm`から 関数 `nonmetricity`によって計算されます。

  Categories: Package ctensor

オプション変数: ctayswitch

  もし `true`に設定されているなら、いくつかの `ctensor`計算が Taylor級数展開を使って実行されるようにします。 現在、 `christof`, `ricci`, `uricci`, `einstein`, `weyl`がこの設定を考慮します。

  Categories: Package ctensor

オプション変数: ctayvar

  `ctayswitch`が `true`に設定されている場合、 Taylor級数展開で使われる変数。

  Categories: Package ctensor

オプション変数: ctaypov

  `ctayswitch`が `true`に設定されている場合、 Taylor級数展開で使われる最大べき数

  Categories: Package ctensor

オプション変数: ctaypt

  `ctayswitch`が `true`に設定されている場合、 Taylor級数展開が実行される点。

  Categories: Package ctensor

システム変数: gdet

  計量テンソル `lg`の行列式。 `cframe_flag`が `false`に設定されている時、 `cmetric`が計算します。

  Categories: Package ctensor

オプション変数: ratchristof

  `christof`が有理整理を適用するようにします。

  Categories: Package ctensor

オプション変数: rateinstein

  デフォルト値: `true`

  もし `true`なら、 Einsteinテンソルの非零成分上で有理整理が実行されます; もし `ratfac`が `true`なら、成分は因数分解もされます。

  Categories: Package ctensor

オプション変数: ratriemann

  デフォルト値: `true`

  Riemannテンソルの整理を制御するスイッチの1つです; もし `true`なら、有理整理がされます; もし `ratfac`が `true`なら、成分それぞれは因数分解もされます。

  Categories: Package ctensor

オプション変数: ratweyl

  デフォルト値: `true`

  もし `true`なら、このスイッチは, `weyl`関数が Weylテンソルの値に有理整理を適用するようにします。 もし `ratfac`が `true`なら、成分は因数分解もされます。

  Categories: Package ctensor

変数: lfg

  共変標構計量。 デフォルトでは、符号 (+,+,+,-)を持つ4次元Lorentz標構に初期化されます。 `cframe_flag`が `true`の時使われます。

  Categories: Package ctensor

変数: ufg

  逆標構計量。 `cframe_flag`が `true`に設定されているなら、 `cmetric`がコールされた時 `lfg`から計算されます。

  Categories: Package ctensor

変数: riem

  (3,1) Riemannテンソル。 関数 `riemann`が呼び出された時計算されます。 添字順序についての情報については `riemann`の記述を参照してください。

  もし `cframe_flag`が `true`なら、 `riem`は共変Riemannテンソル `lriem`から計算されます。

  Categories: Package ctensor

変数: lriem

  共変Riemannテンソル。 `lriemann`が計算します。

  Categories: Package ctensor

変数: uriem

  反変Riemannテンソル。

  Categories: Package ctensor

変数: ric

  混合Ricciテンソル。 `ricci`が計算します。

  Categories: Package ctensor

変数: uric

  反変Ricciテンソル。 `ricci`が計算します。

  Categories: Package ctensor

変数: lg

  計量テンソル。 このテンソルは他の計算が実行される前に (`dim`掛け `dim`行列として)指定されなければいけません。

  Categories: Package ctensor

変数: ug

  計量テンソルの逆元。 `cmetric`が計算します。

  Categories: Package ctensor

変数: weyl

  Weylテンソル。 `weyl`が計算します。

  Categories: Package ctensor

変数: fb

  `frame_bracket`が計算する標構ブラケット係数。

  Categories: Package ctensor

変数: kinvariant

  Kretchmann不変量。 `rinvariant`が計算します。

  Categories: Package ctensor

変数: np

  Newman-Penroseヌルテトラド。 `nptetrad`が計算します。

  Categories: Package ctensor

変数: npi

  上付き添字 Newman-Penroseヌルテトラド。 `nptetrad`が計算します。 `ug.np`として定義されます。 積 `np.transpose(npi)`は定数です:

      (%i39) trigsimp(np.transpose(npi));
                                    [  0   - 1  0  0 ]
                                    [                ]
                                    [ - 1   0   0  0 ]
      (%o39)                        [                ]
                                    [  0    0   0  1 ]
                                    [                ]
                                    [  0    0   1  0 ]

  Categories: Package ctensor

変数: tr

  ユーザーが提供するねじれを表す階数3のテンソル。 `contortion`が使います。

  Categories: Package ctensor

変数: kt

  コントーションテンソル。 `contortion`が `tr`から計算します。

  Categories: Package ctensor

変数: nm

  ユーザーが提供する非計量性ベクトル。 `nonmetricity`が使います。

  Categories: Package ctensor

変数: nmc

  `nonmetricity`が `nm`から計算する 非計量性係数。

  Categories: Package ctensor

システム変数: tensorkill

  テンソルパッケージが初期化されたかを示す変数。 `csetup`が設定し使います。 `init_ctensor`が再設定します。

  Categories: Package ctensor

オプション変数: ct_coords

  デフォルト値: `[]`

  `ctensor` (成分テンソル)パッケージのオプション。 `ct_coords`は座標のリストを含みます。 関数 `csetup`がコールされる時通常定義される一方、 割り当て `ct_coords: [j1, j2, ..., jn]`で座標を再定義できます。 ここで、 jは新しい座標名です。 `csetup`も参照してください。

  Categories: Package ctensor

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

### 26.2.10 Reserved names

`ctensor`パッケージによって以下の名前が内部的に使われます。 なので再定義してはいけません:

      Name         Description
      ---------------------------------------------------------------------
      _lg()        Evaluates to lfg if frame metric used, lg otherwise
      _ug()        Evaluates to ufg if frame metric used, ug otherwise
      cleanup()    Removes items drom the deindex list
      contract4()  Used by psi()
      filemet()    Used by csetup() when reading the metric from a file
      findde1()    Used by findde()
      findde2()    Used by findde()
      findde3()    Used by findde()
      kdelt()      Kronecker-delta (not generalized)
      newmet()     Used by csetup() for setting up a metric interactively
      setflags()   Used by init_ctensor()
      readvalue()
      resimp()
      sermet()     Used by csetup() for entering a metric as Taylor-series
      txyzsum()
      tmetric()    Frame metric, used by cmetric() when cframe_flag:true
      triemann()   Riemann-tensor in frame base, used when cframe_flag:true
      tricci()     Ricci-tensor in frame base, used when cframe_flag:true
      trrc()       Ricci rotation coefficients, used by christof()
      yesp()

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

### 26.2.11 Changes

2004年11月に `ctensor`パッケージは広範囲に渡って書き直されました。 多くの関数と変数は、パッケージにMacsymaの商用版との互換性を持たせるために、 リネームされました。

      New Name     Old Name        Description
      ---------------------------------------------------------------------
      ctaylor()    DLGTAYLOR()     Taylor-series expansion of an expression
      lgeod[]      EM              Geodesic equations
      ein[]        G[]             Mixed Einstein-tensor
      ric[]        LR[]            Mixed Ricci-tensor
      ricci()      LRICCICOM()     Compute the mixed Ricci-tensor
      ctaypov      MINP            Maximum power in Taylor-series expansion
      cgeodesic()  MOTION          Compute geodesic equations
      ct_coords    OMEGA           Metric coordinates
      ctayvar      PARAM           Taylor-series expansion variable
      lriem[]      R[]             Covariant Riemann-tensor
      uriemann()   RAISERIEMANN()  Compute the contravariant Riemann-tensor
      ratriemann   RATRIEMAN       Rational simplif. of the Riemann-tensor
      uric[]       RICCI[]         Contravariant Ricci-tensor
      uricci()     RICCICOM()      Compute the contravariant Ricci-tensor
      cmetric()    SETMETRIC()     Set up the metric
      ctaypt       TAYPT           Point for Taylor-series expansion
      ctayswitch   TAYSWITCH       Taylor-series setting switch
      csetup()     TSETUP()        Start interactive setup session
      ctransform() TTRANSFORM()    Interactive coordinate transformation
      uriem[]      UR[]            Contravariant Riemann-tensor
      weyl[]       W[]             (3,1) Weyl-tensor

[ << ] | [ >> ] |  |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

This document was generated by 市川雄二 on June, 21 2016 using texi2html 1.76.