2次元トーラスのオイラー形式¶
トーラスにはガウス曲率が正の領域と負の領域がありますが、その総和は 相殺されます。
$$\int_{T^2}e(TT^2)=\chi(T^2)=0.$$
このNotebookでは、埋め込まれたトーラスから局所的なオイラー形式を計算し、 この相殺を明示します。
埋め込まれたトーラスと計量¶
$a$ を管の半径、$b$ を管の中心から対称軸までの距離とします。 $a\cos\theta+b$ を囲むopaque quote(不透明引用)により、行列計算の途中でも、 この式をひとまとまりのコンパクトな記号式として保持します。
declare symbol θ, φ, a, b : MathValue
def x : Vector MathValue := [| θ, φ |]
def X : Vector MathValue :=
[| `(a * cos θ + b) * cos φ
, `(a * cos θ + b) * sin φ
, a * sin θ |]
def e_i_j : Matrix MathValue := ∂/∂ X_j x~i
def g_i_j : Matrix MathValue :=
generateTensor (\[u, v] -> V.* e_u_# e_v_#) [2, 2]
def g~i~j : Matrix MathValue := M.inverse g_#_#
g_#_#
正規直交枠での接続¶
多脚場(vielbein)によって座標のスケール因子を取り除きます。球面の場合と同様に、 枠を変換するときには非斉次項 $A^{-1}dA$ が不可欠です。
def Γ_i_j_k : Tensor MathValue :=
(1 / 2) *
(∂/∂ g_i_k x~j + ∂/∂ g_i_j x~k - ∂/∂ g_j_k x~i)
def Γ~i_j_k : Tensor MathValue := withSymbols [m]
g~i~m . Γ_m_j_k
def A : Matrix MathValue :=
[| [| 1 / a, 0 |]
, [| 0, 1 / `(a * cos θ + b) |] |]
def d (t : Tensor MathValue) : Tensor MathValue :=
!(flip ∂/∂) x t
def ω0~i_j : Matrix MathValue := Γ~i_j_#
def ω~i_j : Tensor MathValue := withSymbols [u, v]
(M.inverse A)~i_u . ω0~u_v . A~v_j
+ (M.inverse A)~i_u . d A~u_j
ゼロでない接続係数はトーラス上で符号を変え、それに伴って曲率の符号も 変化します。
ω~1_2_2
曲率とオイラー形式¶
カルタンの方程式を適用した後、2つの形式添字を明示的に反対称化し、 階数2のパフィアン(Pfaffian)を取ります。
def Ω~i_j : Tensor MathValue := withSymbols [k]
antisymmetrize (d ω~i_j + ω~i_k ∧ ω~k_j)
def eulerForm : Tensor MathValue :=
(1 / (4 * π)) * withSymbols [t1, t2]
(Ω~1_2_t1_t2 - Ω~2_1_t1_t2)
eulerForm
上三角側のテンソル成分は $\cos\theta/(4\pi)$ です。その反対称な相方も 含めると、向き付き密度 $\cos\theta\,d\theta\wedge d\phi/(2\pi)$ が得られます。子午線方向を 一周する積分はゼロになります。
$$\int_0^{2\pi}\cos\theta\,d\theta=0.$$
したがって、外側の正の曲率と内側の負の曲率が相殺され、 $\chi(T^2)=0$ が得られます。この結果は $a$ と $b$ に依存しません。