Simple-Tensors

Transcription

Simple-Tensors
Simple-Tensors
Christopher Nerz
17. Februar 2014
Zusammenfassung
Diese kleine EX-Paket1 deniert Tensoren. Tensoren sind hier mathematische Objekte mit (optionalen) linken und rechten Indizes, wobei
rechte Indizes nebeneinander gesetzt werden sollten.
LAT
Inhaltsverzeichnis
1 Lizenz
1
2 Einführung
1
3 Anwendung von Tensoren
2
4 Tensoren-Denitionen
3
5 Erklärung der Tensoren Denition an Beispielen
4
6 Befehlsübersicht
5
1 Lizenz
Es darf nach Belieben in eigenen Arbeit verwendet werden, so lange auf den Autor dieses Paketes hingewiesen wird (Creative Commons attribution Namensnennung Lizenz, CC BY).
2 Einführung
Tensoren unterscheiden sich für den Autor (in Notation) zum einen darin, dass
Indizes an ihnen die Bedeutung von Koordinatisierungen (bzw. abstrakten Indizes) haben. Insbesondere sollten diese nebeneinander und nicht übereinander
gesetzt werden, damit klar ist, welcher Index zu welchem Tensoren-Argument
1 Es ist dem Autor wohlbekannt, dass das Paket nicht LAT X- oder gar T X-optimal geE
E
schrieben ist. Es ist ein dirty-hack, um das gewünschte Resultat zu erreichen.
1
gehört. Als Beispiel diene der nicht-symmetrische Riemann-Tensor
ner Riemannschen Mannigfaltigkeit
ren, so ist es üblich
R(∂i , ∂j , ∂k , ∂l )
(M, g).
Bezeichnet
abzukürzen als
∂i
Rijkl .
R
Heben wir (unter
Verwendung der Einstein-Notation) nun einen Index, so ergibt sich
Rijkl g
jm
über ei-
Koordinatenvekto-
Rm
ikl :=
eine Uneindeutigkeit in der Reihenfolge der Argument des Ten-
sors. Um das gewünschte Ergebnis
\mathcal R_i\,\!^j\,\!_{kl}
A
Rimkl
zu erhalten, wird häug L TEX-Code
verwendet, welcher das gewünschte Ergebnis
liefert. Dies ist recht umständlich zu schreiben, einfacher wäre es einen Befehl
\Rm zu denieren so, dass \Rm_i^j_{kl} das gewünschte Resultat liefert. Weiter
entsteht durch obigen Lösungsansatz das Problem, dass dies nicht das gewünschte Ergebnis liefert, sobald der Buchstabe von falscher Höhe ist dies tritt bspw.
beim
e
auf. Um das Problem zu verdeutlichen verwenden einen Extremfall: die
Klammer. Der zu Obigem äquivalente Code
\big)_i\,\!^j\,\!_{kl}
liefert
hier
j
,
i kl
j
statt
i kl
Wenn mehrere (Riemannsche-)Mannigfaltigkeiten
.
M1 , M2 ,
. . . gleichzeitig ver-
wendet werden, so taucht das weitere Problem auf, dass jede einzelne bspw.
einen Krümmungstensor haben und es (aufgrund obiger Indizierung) nicht möglich ist gewöhnliche Indizes (rechts unten oder recht oben) zu verwenden, um
zwischen diesen zu unterscheiden. Die Lösung ist es entweder für jede Mannigfaltigkeit einen anderen Buchstaben für die Metrik, Krümmung, . . . zu wählen was die Lesbarkeit nicht unbedingt fördert oder Akzente (Überstrich etc.) zu
verwenden auch dies führt bei vielen Mannigfaltigkeiten zu Problemen. Hier
schlagen wir einen alternativen Lösungsweg vor: linke Indizes
1
Rijkl , 2Rijkl ,
. . . bzw. 1Rijkl , 2Rijkl . Wiederum gilt, dass der weitverbreitete Weg diese in
AT X zu setzen
L
E
{}^1\mathcal R_{ijkl}
nicht gerade bequem ist und einen
Index-Höhen-Fehler verursachen kann vergl. zu dem oben beschriebenen. Weiter ist dies bspw. für
g
unschön, vergleiche dafür
r
g
mit dem gewünschten
welches üblicherweise durch den umständlichen Befehl
r
g
r
g,
erzeugt würde.
Das hier vorliegende Paket löst die oben beschriebenen Probleme und ermöglicht einen
rade
1
Rimkl
Tensor
\Rm
zu denieren so, dass bspw.
\Rm[1]_i^m_{kl}
ge-
erzeugt. Dabei ist der linke Index optional und natürlich ist auch
ein unterer, linker Index möglich. Weiter können bei der Denition des Tensors
Korrektur-Abstände eingefügt werden, wenn diese nötig sind (siehe das Beispiel
g
von oben). Dabei muss dieser Korrekturabstand allerdings nur einmal
angegeben werden.
3 Anwendung von Tensoren
Exemplarisch betrachten wir die Metrik g und die Skalarkrümmung
durch den Tensor
\Tensor
\g
bzw.
\scalar
S,
welche
deniert seien. Für jeden Tensor-Befehl
gibt es zwei Möglichkeiten, entweder er nimmt (im Standard-Fall) Ar-
gumente entgegen oder nicht. Die Metrik g nimmt klassischerweise zwei Tan-
2
gentialvektoren entgegen, d, h.
larkrümmung
S
\g XY
ergibt g (X, Y ). Dagegen nimmt die Ska-
keine Argumente entgegen, d. h.
\scalar XY ergibt SXY . Aus
selbigem Grund kommen rechte Indizes der Metrik prinzipiel von einer Koordi-
l
natisierung und liegen daher nebeneinander gk , während solche von
S
(sollten
je solche existieren) nicht von einer Koordinatisierung kommen können, also
normal gesetzt werden
Sij .
Beide Tensoren nehmen drei verschiedene optionale Argumente entgegen:
Ein linker, oberer Index in eckigen Klammern
in dreieckigen Klammern
<r>
[t],
ein linker, unterer Index
und ein optionalen Stern
*
die ersten beiden
können dabei in beliebiger Reihenfolge kommen, der Stern nach ihnen. Wird
der Stern gegeben, so erwartet die Metrik keine Argumente und keine Indizes
mehr, d. h. verhält sich wie in obiger Beschreibung
S.
Insgesamt erhalten wir
für diese beiden beispiel Tensoren:
\g XY
\g<r> XY
⇒
⇒
)
g
(X,
Y
)
r
\g[t] XY
\g<r>[t] XY
⇒
⇒
t
g (X, Y )
t
r g (X, Y )
\g^i_j
\g<r>^{ij}
⇒
⇒
g j
i
\g[t]_{ij}
\g<r>[t]_{ij}
⇒
⇒
t
gij
t
r gij
\g*
\g*<r>
⇒
⇒
rg
\g*[t]
\g*<r>[t]
⇒
⇒
t
g
t
rg
\scalar XY
\scalar<r> XY
⇒
⇒
SXY
r SXY
\scalar[t] XY
\scalar<r>[t] XY
⇒
⇒
\scalar^i_j
\scalar<r>^{ij}
⇒
⇒
Sji
ij
rS
\scalar[t]_{ij}
\scalar<r>[t]_{ij}
⇒
⇒
\scalar*
\scalar*<r>
⇒
⇒
S
rS
\scalar*[t]
\scalar*<r>[t]
⇒
⇒
g (X, Y
ij
rg
g
t
SXY
t
r SXY
t
Sij
t
r Sij
t
S
t
rS
4 Tensoren-Denitionen
Als Beispiele geben wir die folgenden Tensoren an:
Metrik
Riemann-Tensor
Ricci-Tensor
Skalarkrümmung
Levi-Civita Zsgh.
2. Fundamentalform.
\g
\Rn
\Ric
\Sc
\levi
\levi
Zwei Argumente
Keine Argumente
Zwei Argumente
Keine Argumente
Ein Argument
2
Zwei Argumente
g (X, Y
)
Rijkl
Ric (X, Y )
S
∇X Y , Γijk
k (X, Y )
welche mit Hilfe der Parameter-Funktionen
2 Der Levi-Civita Zusammenhang hat eine zusätzliche spezielle Funktion: Ohne Indizes (mit
Stern oder einem Argument) ist das Symbol ∇, mit Indizes ist es das der Christoelsymbole
Γ.
3
\newcommand\TwoArgumentsInBraces[2]{(#1,#2)}
\newcommand\oneparameterindex[1]{_{\hspace{-.2em}#1}}
wie folgt deniert werden
\NewTensor[\mathcal]*\Sc S
\NewTensor[\textrm]<\TwoArgumentsInBraces>\g[\hspace{-.05em}]g
\NewTensor[\textrm]<\TwoArgumentsInBraces>\Ric{Ric}
\NewTensor[\mathcal]\Rm R
\NewTensor<\oneparameterindex>\levi<\MakeSymbol<>{\!}>
{\MakeSymbol<\Gamma>\nabla}
\NewTensor[\textrm]<\TwoArgumentsInBraces>\zFund{k}
5 Erklärung der Tensoren Denition an Beispielen
Fügen wir den Code
\NewTensor[\mathcal]\Rm R
\NewTensor[\textrm]\g[\hspace{-.05em}]g
AT X-Dokuments ein, so erhalten wir die folgenden Ausgaben
in den Header des L
E
\Rm_i^j_{kl}
\Rm<r>_i^j_{kl}
⇒
⇒
Rij kl
j
r Ri kl
\Rm[t]_i^j_{kl}
\Rm<r>[t]_i^j_{kl}
⇒
⇒
Rij kl
t
j
r Ri kl
\g^i_j
\g<r>^{ij}
⇒
⇒
g j
i
\g[t]_{ij}
\g<r>[t]_{ij}
⇒
⇒
t
gij
t
g
r ij .
ij
rg
t
Wir erklären kurz die Befehle, mit welchen hier gearbeitet wurde. Die erste
\NewTensor[\mathcal]\Rm R deniert einen Befehl \Rm, welcher
R ist. Entsprechend deniert die zweite
\NewTensor[\textrm]\g[\hspace{-.05em}]g den Befehl \g dessen Symbol g
Code-Zeile
einen Tensor erzeugt dessen Symbol ein
ist nur dass dieses Mal auch angegeben wurde, dass jeder linke, obere Index
\Rm und \g nehmen zwei optionale Pa[,] und einen in drei-eckigen <,> Klammern)
etwas näher an g liegen soll. Beide Befehl
rameter entgegen (einen in eckigen
welche als linker oberer bzw. linker unterer Index gesetzt werden dabei wir
der Korrekturparameter des Tensors (hier
0
und
\hspace{-.05em})
beachtet.
Natürlich kann auch für den unteren Index ein Korrekturparameter angegeben
werden.
Bekannterweise ist die Metrik g ein
(0, 2)-Tensor,
d. h. nimmt zwei Tangen-
tialvektoren als Argument entgegen. Wir können den obigen Befehl mit
\NewTensor[\textrm]<\TwoArgumentsInBraces>\g[\hspace{-.05em}]g
\newcommand\TwoArgumentsInBraces[2]{(#1,#2)}
ersetzen und erhalten einen Befehl, welcher entweder Indizes oder Parameter
entgegen nimmt, wobei natürlich die linken Indizes weiter zur Verfügung stehen:
4
\g XY
\g<r> XY
⇒
⇒
)
g
(X,
Y
)
r
\g[t] XY
\g<r>[t] XY
⇒
⇒
t
g (X, Y )
t
r g (X, Y )
\g^i_j
\g<r>^{ij}
⇒
⇒
g j
i
\g[t]_{ij}
\g<r>[t]_{ij}
⇒
⇒
t
gij
t
g
r ij .
g (X, Y
ij
rg
Auf das Symbol g ohne Parameter und Index kann jetzt per
\g*
zugegrien
werden.
Als letztes Beispiel, betrachten wir den Levi-Civita-Zusammenhang
ist üblich den eigentlichen Zusammenhang mit
Koordinatisierung
∇
∇.
Es
zu bezeichnen, während seine
3 die Christoel-Symbole sind, welche üblicherweise mit
Γ
bezeichnet werden. Um das Ergebnis
\levi XY
\levi<r> XY
⇒
⇒
∇X Y
r∇X Y
\levi[t] XY
\levi<r>[t] XY
⇒
⇒
\levi^i_j
\levi<r>_{ij}^k
⇒
⇒
Γij
k
r Γij
\levi[t]_{ij}^k
\levi<r>[t]_{ij}^k
⇒
⇒
zu erhalten, müssen wir das Symbol
∇
zu
Γ
t
∇X
t
r∇X
Y
Y
t
Γij k
t
k
r Γij .
ändern, falls ein Index auftritt. Die
Lösung dafür ist es das Symbol Fall-abhängig zu übergeben. Dies übernimmt der
\MakeSymbol[*-Fall]<Index-Fall>(Sonstige-Fälle){Standard}, der
∇) je nach Situation ausgibt. Im hier betrachteten Fall benötigen wir das Symbol \MakeSymbol<\Gamma>{\nabla}. Für obiges Ergebnis
Befehl
ein Symbol (hier
bemerken wir weiter, dass die Korrektur des linken, unteren Abstands ebenfalls vom Fall abhängig ist (bei
∇
wird der Platz etwas verringert, bei
Insgesamt erhalten wir den Befehl
\levi*
Γ
nicht).
daher durch
\NewTensor<\oneparameterindex>\levi<\MakeSymbol<>{\!}>
{\MakeSymbol<\Gamma>\nabla}
\newcommand\oneparameterindex[1]{_{\!#1}}
6 Befehlsübersicht
Es folgen die Befehle, deren Parameter jeweils (in passenden Klammern) folgen. Dabei sind alle Parameter in eckigen
[],
dreieckigen
[]
und runden
()
Klammern sowie zwischen * optional ebenso wie auftauchende Sterne (oder
Plu-Zeichen) bei
[*]
(oder
[+]=.
\NewTensor[#1]<#2>[*]{#4}[#5]<#6>{#7}: Deniert einen Tensor #4, dieser
ist deniert als \IndexSymbol(#1)+#2+*[#5]<#6>{#7} bzw.
\IndexSymbol(#1)+#2+[#5]<#6>{#7} (je nach dem ob der * übergeben
wurde oder nicht).
\MakeSymbol[#1]<#2>(#3){#4}: Kann als Parameter #7 bei \NewTensor bzw.
als Parameter #6 bei \IndexSymbol verwendet und ersetzt das Hauptsymbol durch ein angepasstes. Wird der Tensor mit
3 Da
es kein eigentlicher Tensor ist, ist dies auch keine Tensoren-Indizierung
5
*
aufgerufen, so wird
#1
als Symbol verwendet;
Indizes aufgerufen, so wird das Symbol
sonst wird das Symbol
3
#2
verwendet;
verwendet.
Jeder nicht-gesetzte optionalen Parameter wird durch
#4
ersetzt.
\IndexSymbol(#1)+#2+[*][#4]<#5>{#6}[#7]<#8>[*]:
#1:
#2:
#6 (bzw. siehe \IndexSymbol) wird mit der Funktion
#1=\textrm) aufgerufen, d. h. jede Ausgabe des Symbols
erfolgt als #1{#6} (falls #1 gesetzt ist). Dabei erfolgt die Platzierung
der Indizes ohne Beachtung von #1;
das Symbol
#1
(bspw.
dieser Befehl wird nach dem Tensor aufgerufen, falls keine Indizes
und keine Stern gegeben sind (bspw.
\TwoArgumentsInBraces);
#3: ist ein Stern angegeben, so werden die rechten Indizes wie gewöhnlich
(d. h. übereinander) gesetzt, sonst nebeneinander;
#4:
Korrekturabstand vor einem evtl. linken, oberen Index
(bspw.
#5:
Korrekturabstand vor einem evtl. linken, unteren Index
(bspw.
#6:
#4=\hspace{-.05em});
#5=\hspace{-.05em});
einfaches Symbol in
{,}
bzw. mit
\IndexSymbol
je nach Fall ange-
gebenes Symbol;
#7:
linker, oberer Index;
#8:
linker, unterer Index;
#9:
intern, nur für abwärts-Kompatibilität;
\SimpleIndexSymbol(#1)[*][#3]<#4>{#5}:
#1:
#6 (bzw. siehe \IndexSymbol) wird mit der Funktion
#1=\textrm) aufgerufen, d. h. jede Ausgabe des Symbols
erfolgt als #1{#6} (falls #1 gesetzt ist). Dabei erfolgt die Platzierung
der Indizes ohne Beachtung von #1;
das Symbol
#1
(bspw.
#2: ist ein Stern angegeben, so werden die rechten Indizes wie gewöhnlich
(d. h. übereinander) gesetzt, sonst nebeneinander;
#3:
Korrekturabstand vor einem evtl. linken, oberen Index
(bspw.
#4:
#4=\hspace{-.05em});
Korrekturabstand vor einem evtl. linken, unteren Index
(bspw.
#5=\hspace{-.05em});
#5:
einfaches Symbol in
{,};
#6:
linker, oberer Index;
#7:
linker, unterer Index.
6
\RightIndices{#1}: Setzt
Gibt nicht #1 aus!
folgende Indizes in richtiger Höhe nebeneinander.
\LeftIndices[*][*][+][#4]<#5>{#6}[#7]<#8>: Gibt linke Indizes (ohne Symbol!) aus.
#1
#3:
für internen Gebrauch und abwärts-Kompatbilität des Pakets;
#4:
linker, oberer Index;
#5:
linker, unterer Index.
#6:
einfaches Symbol, wird
#7:
zweiter linker, oberer Index, folgt auf
wenn
#8:
nicht ausgegeben!
#4
zweiter linker, unterer Index, folgt auf
wenn
#5
#4
und wird nur ausgegeben,
#5
und wird nur ausgegeben,
nicht-leer ist;
nicht-leer ist;
7