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