Untersuchung von Integrationsmethoden am Beispiel von

Werbung
Untersuchung von Integrationsmethoden am Beispiel von
Mehrkörpersystemen und Visualisierung in einer virtuellen
3D-Welt
von
Bastian Kayser
Bachelor’s Thesis
zur Erlangung des akademischen Grades
Bachelor of Science (B.Sc.)
Gutachter: Dr. Tim Conrad
Zweitgutachter: Prof. Dr. Christof Schütte
Fachbereich Mathematik und Informatik
Freie Universität Berlin
September, 2008
c Copyright
by
Bastian Kayser
2008
There is never time to do it right, but there is always time to do it over.
- Murphy’s Law
iii
Inhaltsverzeichnis
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vi
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
viii
1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
2 Einkörpersysteme . . . . . . . . . . . . . . . . . . . .
2.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . .
2.1.1 Das mathematische Pendel . . . . . . . . .
2.1.2 Integratoren . . . . . . . . . . . . . . . . . .
2.2 Formulierungen der Mechanik . . . . . . . . . . . .
2.2.1 Lagrangemechanik . . . . . . . . . . . . . .
2.2.2 Hamiltonmechanik . . . . . . . . . . . . . .
2.3 Numerische Lösungsverfahren . . . . . . . . . . . .
2.3.1 Diskretisierung von Anfangswertproblemen
2.3.2 Integrationsverfahren . . . . . . . . . . . . .
2.4 Theoretische Analyse . . . . . . . . . . . . . . . . .
2.4.1 Explizites Eulerverfahren . . . . . . . . . .
2.4.2 Implizites Eulerverfahren . . . . . . . . . .
2.4.3 Velocity-Verlet-Verfahren . . . . . . . . . .
2.5 Numerische Experimente . . . . . . . . . . . . . . .
2.5.1 Gesamtenergie . . . . . . . . . . . . . . . .
2.5.2 Erhaltung der Pendellänge . . . . . . . . .
2.6 Diskussion und Schlussfolgerungen . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
3
4
4
4
6
8
8
9
10
11
14
16
17
17
26
29
3 Mehrkörpersysteme . . . . . . . . . . . . . . . . . . . . .
3.1 Veränderungen und Probleme bei Mehrkörpersystemen
3.1.1 Kräfteauswertungen . . . . . . . . . . . . . . .
3.1.2 Kollisionen . . . . . . . . . . . . . . . . . . . .
3.2 Lösungstrategien . . . . . . . . . . . . . . . . . . . . .
3.2.1 Lösungsstrategien zur Aufwandsreduktion . . .
3.2.2 Lösungsstrategie für Kollisionen . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
31
31
31
32
32
33
4 Visualisierung . . . . . . . . . . . . . . .
4.1 Wonderland . . . . . . . . . . . . . . .
4.2 Modellsystem . . . . . . . . . . . . . .
4.3 Implementierung . . . . . . . . . . . .
4.3.1 Aufbau des Partikelsystem . .
4.3.2 Client-Server Kommunikation .
4.3.3 Darstellung des Modellsystems
4.3.4 Programmsteuerung . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
35
35
35
37
37
38
38
38
iv
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
v
Untersuchung von Integrationsmethoden am Beispiel von
Mehrkörpersystemen und Visualisierung in einer virtuellen
3D-Welt
Bastian Kayser
[email protected]
Freie Universität Berlin, 2008
Gutachter: Dr. Tim Conrad
[email protected]
Zweitgutachter: Prof. Dr. Christof Schütte
[email protected]
Abstract
Der Erkenntnisgewinn in den Naturwissenschaften stützt sich heute zu einem nicht unerhebliche Teil auf Computersimulationen von physikalischen Systemen. Diese sind nicht
nur in den Biowissenschaften (z.B. Molekulardynamiksimulationen) sondern auch in anderen Gebieten, z.B. der Astrophysik oder der Materialforschung, von großer Bedeutung.
Ohne ein grundlegendes Verständis der dabei verwendeten mathematischen Verfahren und
deren Schwierigkeiten ist eine sinnvolle Deutung von Simulationsergebnissen schwierig. In
dieser Arbeit sollen daher drei Integrationsverfahren sowohl analytisch als auch numerisch
untersucht werden. Zusätzlich soll über die Implementierung eines Mehrkörpersystems in
einer 3D-Welt eine Möglichkeit geschaffen werden, das Verhalten und Fehlverhalten von
Integrationsmethoden anschaulich darzustellen.
vi
Untersuchung von Integrationsmethoden am Beispiel von
Mehrkörpersystemen und Visualisierung in einer virtuellen
3D-Welt
Erklärung
Ich versichere hiermit, dass ich die vorliegende Arbeit selbstständig verfasst und keine
anderen als die im Literaturverzeichnis angegebenen Quellen benutzt habe. Alle Stellen,
die wörtlich oder sinngemäß aus veröffentlichten oder noch nicht veröffentlichten Quellen
entnommen sind, sind als solche kenntlich gemacht. Die Zeichnungen oder Abbildungen in
dieser Arbeit sind von mir selbst erstellt worden oder mit einem entsprechenden Quellennachweis versehen. Die Arbeit ist in gleicher oder ähnlicher Form noch bei keiner anderen
Prüfungsbehörde eingereicht worden.
Bastian Kayser
29. September 2008
vii
Danksagung
Zuallererst möchte ich mich bei Dr. Tim Conrad für die Übernahme der Betreuung, das
Engagement, die Korrekturen und die Tipps bedanken, die ich während der Arbeit von ihm
erhalten habe. Weiterhin gilt mein besonderer Dank Dr. Carsten Hartmann, der sehr viel
Zeit und Geduld für Fragen aufgebracht hat. Ich danke Prof. Dr. Schütte für die Übernahme der Zweitkorrektur. Uwe Kamper, der mir die Arbeit mit Project Wonderland
wesentlich erleichtert hat, und Kathrin Trappe danke ich für die angenehmen Stunden im
Büro, die hilfreichen Korrekturen und Verbesserungsvorschläge und die netten Mittagessen. Zum Schluss möchte ich mich bei Natalie Gorczynski bedanken. Ohne ihre ständige
Aufmunterung, Motivation und verordneten Zwangspausen wäre diese Arbeit kaum zustande gekommen wäre.
Bastian Kayser
Freie Universität Berlin
September 2008
viii
Kapitel 1
Einleitung
Die Simulation von physikalischen Systemen ist in den Natur- und Ingenieurswissenschaften von großer Bedeutung. Mit ihrer Hilfe lassen sich zusätzliche Erkenntnisse gewinnen
und teure und aufwändige Experimente einsparen. Beispiele hierfür sind MolekulardynamikSimulationen, Simulationen zur Entstehung von Galaxien oder Belastungssimulationen von
Prothesen. Die zwei wichtigsten Voraussetzung hierbei sind:
• Das simulierte System muss sich vergleichbar zum realen System verhalten.
• Die Ergebnisse der Simulation müssen in einer angemessenen Zeitspanne verfügbar
sein.
Von den Anwendungsgebieten hängt ab, wie genau diese Voraussetzungen definiert werden.
Diese Arbeit beschäftigt sich mit den mathematischen Verfahren zur Simulation von
Mehrkörpersystemen und der Visualisierung in einer virtuellen 3D-Umgebung. Ziel der
Arbeit ist es, einige Schwierigkeiten und Probleme bei der Simulation von physikalischen
Systemen zu zeigen und anschaulich darzustellen.
Dazu wurden drei numerische Integrationsverfahren anhand eines einfachen Beispiels sowohl analytisch als auch numerisch untersucht. Außerdem wurde das Verhalten eines Integrators anhand eines Mehrkörpersystems in der virtuellen 3D-Umgebung Project Wonderland visualisiert.
Wie Untersuchungen gezeigt haben [23], eignen sich virtuelle 3D-Umgebungen gut zur
Vermittlung von komplexen Inhalten, da sie dem Benutzer ein Gefühl der körperlichen
Präsenz vermitteln. Daraus kann sich ein Gefühl für Größenverhältnisse und Bewegungen
von Objekten entwickeln, welches bei 2D-Darstellung häufig nicht gegeben ist.Durch Hinzufügen von Interaktivität zur Simulation soll der Lerneffekt verbessert werden, da der
Benutzer dadurch die Auswirkungen von Änderungen sofort erleben kann. Als Voraussetzung gilt hierbei, dass die Simulation nicht zu langsam ablaufen darf, da das System
ansonsten nicht das Gefühl von Interaktivität vermittelt.
Im folgenden Kapitel werden daher drei Integrationsverfahren ausführlich Einkörpersystems untersucht. Im darauf folgenden Kapitel wird erläutert, welche Probleme bei dem
Übergang von Einkörper- zu Mehrkörpersystemen auftreten können. Das vorletzte Kapitel beschreibt die Visualisierung eines Mehrkörpersystems. Es stellt somit die praktische
Umsetzung der vorherigen theoretischen Betrachtungen dar.
1
2
KAPITEL 1. EINLEITUNG
Kapitel 2
Einkörpersysteme
Der theoretische Teil der Arbeit untersucht drei Integrationsverfahren sowohl analytisch
als auch numerisch am Beispiel eines Einkörpersystems. Als konkretes Beispielsystem dient
das einfache mathematische Pendel.
Dieses Modellsystem sowie eine Definition von numerischen Integrationsverfahren werden
im folgenden Abschnitt 2.1 beschrieben.
Anschließend werden in Abschnitt 2.2 zwei wichtige Formulierungen der klassischen Mechanik beschrieben: der Lagrangeformalismus und der Hamiltonformalismus. Für jede dieser
Formulierungen werden die Bewegungsgleichungen des Pendels hergeleitet.
In Abschnitt 2.3 wird die Diskretisierung von Anfangswertproblemen und die verwendeten
numerischen Verfahren formal hergeleitet.
In den darauf folgenden beiden Abschnitten dieses Kapitels wird zuerst eine analytische
und anschließend eine numerische Untersuchung der Integrationsverfahren durchgeführt.
Im letzten Teil dieses Kapitels werden die Beobachtungen zusammen zusammengefasst
und diskutiert.
Notation
In dieser Arbeit werden Orts- bzw. Geschwindigkeitskoordinaten allgemein mit q bzw. q̇
bezeichnet. Die Entwicklung des Ortsvektors über die Zeit wird durch die Funktion q(t)
beschrieben. Die dazugehörige Funktion der Geschwindigkeit in Abhängigkeit der Zeit wird
als
d
q̇(t) = q(t)
(2.1)
dt
bezeichnet.
In Ausnahmefällen wird die Bezeichnung der Geschwindigkeit davon abweichend gewählt
um deutlich zu machen, dass diese unabhängig von q bzw. q(t) ist.
Winkel werden, falls nicht anders gekennzeichnet, im Bogenmaß angegeben.
2.1
Grundlagen
Dieser Abschnitt beschreibt für das weitere Verständnis dieses Kapitels wichtige Voraussetzungen.
2.1.1
Das mathematische Pendel
Als Modellsystem im theoretischen Teil dieser Arbeit dient das einfache mathematische
Pendel.
3
4
KAPITEL 2. EINKÖRPERSYSTEME
Abbildung 2.1: das mathematische Pendel
Dieses Modellsystem wird verwendet, da es ein Standardbeispiel in der theoretischen
Mechanik ist. Außerdem lässt es sich in verschiedenen Koordinatensystemen beschreiben
und erlaubt die Einführung von Zwangsbedingungen.
2.1.2
Integratoren
Physikalische Systeme werden durch ihre Bewegungsgleichungen und Anfangsbedingungen
beschrieben. Bei den Bewegungsgleichungen handelt es sich meist um Differentialgleichungen (DFG) 1. oder 2. Ordnung. Da diese DFGs im Allgemeinen keine analytische Lösung
besitzen oder diese nicht bekannt ist, muss sie durch numerische Verfahren an diskreten
Zeitpunkten angenähert werden. Verfahren dieser Art werden als Integrationsverfahren
bezeichnet. In dieser Arbeit sollen folgende Verfahren näher untersucht werden:
Das explizite Eulerverfahren. Als einfachstes Integrationsverfahren eignet es sich zur Demonstration von generellen Problemen bei der numerischen Integration.
Das implizite Eulerverfahren. Es dient als Beispiel eines impliziten Verfahrens und den
damit verbundenen Vor- und Nachteilen.
Das Velocity-Verlet-Verfahren. Dieses Verfahren stellt eine Erweiterung des bekannten
Störmer-Verlet-Verfahren bzw. Leapfrog-Verfahrens dar. Dieses sind, in der Molekulardynamik und der Astrophysik, weit verbreitete Verfahren.
Eine formale Beschreibung der Diskretisierung sowie die mathematische Formulierung
der verwendeten Integrationsverfahren werden in den Abschnitten 2.3.1 und 2.3.2 eingeführt.
2.2
Formulierungen der Mechanik
Mit Hilfe der klassischen Mechanik lassen sich die Bewegungen von makroskopischen Objekten beschreiben. Dies gilt für Molekülfaltungen ebenso wie für Planetenbewegungen. In
diesem Kapitel werden daher zwei wichtige Formulierungen der Mechanik hergeleitet und
erläutert.
2.2.1
Lagrangemechanik
Als erstes wird die Lagrangemechanik eingeführt. Diese wird durch die Lagrangefunktion
(L), die die Differenz von kinetischer (K) und potentieller (U) Energie ist, charakterisiert.
2.2. FORMULIERUNGEN DER MECHANIK
5
L(v, q) = K(v) − U (q)
(2.2)
Hierbei ist (q, v) ∈ R6N der Vektor der Orte und Geschwindigkeiten von N Körpern
im dreidimensionalen Raum. Mit M wird die Massenmatrix bezeichnet. Sie hat folgende
Gestalt:


m1

m1


m1


M =




..










.
mN
mN
mN
Mit mi wird die Masse des Körpers i bezeichnet.
Aus dem Hamilton’schen Variationsprinzip folgt, dass die Bewegungen eines Systems das
Wirkungsintegral
Z
S=
L(q̇, q, t)dt
stationär machen. Es kann gezeigt werden, dass die Euler-Lagrange-Gleichungen eine notwendige Bedingung für die geforderte Stationarität des Systems darstellen [18]:
d
dt
∂L
∂ q̇
−
∂L
=0
∂q
(2.3)
Durch die hier spezielle Form der Lagrangefunktion (2.2) und der Definition von
K(v) =
M 2
|v|
2
vereinfachen sich die Bewegungsgleichungen zu
M q̈ = −∇q U (q).
(2.4)
Dies entspricht den Newton’schen Bewegungsgleichungen.
Die Lagrangemechanik erlaubt im Gegensatz zur Newton’schen Mechanik die Formulierung des Systems in verallgemeinerten Koordinaten und die Einführung von Zwangsbedingungen.
Bewegungsgleichung des Modellsystems
Die kartesischen Koordinaten q des Pendels können durch den Auslenkungswinkel α gegenüber der Senkrechten (siehe Abbildung 2.1) durch eine Transformation T dargestellt
werden.
(
qx = l sin(α)
T :=
qy = −l cos(α)
(2.5)
6
KAPITEL 2. EINKÖRPERSYSTEME
Hierbei wird vorausgesetzt, dass die Pendellänge l konstant bleibt.
Die Geschwindigkeit q̇(t) des Pendels in kartesischen Koordinaten kann über die Winkelgeschwindigkeit α̇(t) wie folgt ausgedrückt werden:
d
qx (t) = α̇(t)l cos(α(t))
dt
d
qy (t) = α̇(t)l sin(α(t))
dt
(2.6)
(2.7)
Da sich die kartesischen Koordinaten und Geschwindigkeiten vollständig durch α bzw. α̇
darstellen lassen, reicht diese Koordinate zur Beschreibung des Systems aus. Die Lagrangefunktion 2.2 ergibt sich dann als
L(β, α) =
m 22
β l + mgl cos(α).
2
(2.8)
β bezeichnet hier eine von α unabhängige Winkelgeschwindigkeit.
Die aus (2.3) folgende Bewegungsgleichung lautet
g
α̈ = − sin(α).
l
(2.9)
Lösung der Bewegungsgleichung
Eine geschlossene analytische Lösung der Bewegungsgleichung (2.9) ist nur durch die Näherung
sin(α) ≈ α, α < 1
zu erreichen, da die Differentialgleichung dann die Form
g
l
annimmt. Hierbei handelt es sich um eine lineare homogene Differentialgleichung. Diese
besitzt die Lösung
√
√
α(t) = (c1 sin( ωt) + c2 cos( ωt)).
(2.10)
α̈ = −ω α, ω =
Der Beweis erfolgt durch zweimaliges Ableiten von α(t) nach t.
√
Für t = 0 folgt, dass c1 = α̇(0)
und c2 = α(0).
ω
2.2.2
Hamiltonmechanik
In der Hamilton’schen Formulierung der klassischen Mechanik wird ein System über seine
Gesamtenergie, der Summe aus kinetischer und potenzieller Energie aller Teilchen des
Systems, definiert. Als Hamiltonfunktion H(q, p) ergibt sich damit
1
H(q, p) = pT M −1 p + U (q, p).
2
Die Hamiltonfunktion H(q, p) ist also eine Funktion der Energie in Abhängigkeit des Phasenraums. Dabei beschreibt q die Orte und p die Impulse des Systems. M −1 ist die invertierte Massenmatrix. Im dreidimensionalen Raum ist die Hamiltonfunktion auf einem
R6N Phasenraum definiert, wobei N die Anzahl der Teilchen des Systems angibt. Die
Hamilton’schen Bewegungsgleichungen ergeben sich als
q̇ =
∂H
∂p
2.2. FORMULIERUNGEN DER MECHANIK
ṗ = −
7
∂H
∂q
Die Ableitung der Hamiltonfunktion nach der Zeit
d
∂H
∂H
H =
q̇ +
ṗ
dt
∂q
∂p
= ∇q U (q) p M −1 − ∇q U (q) p M −1
= 0
(2.11)
(2.12)
(2.13)
zeigt, dass die Hamiltonmechanik energieerhaltend ist.
Weiterhin sind die Lösungen der Hamiltonfunktion impuls- und drehimpulserhaltend,
wenn die Hamiltonfunktion, wie in den hier betrachteten Fällen, invariant unter Translation und Rotation ist. Da keine explizite Abhängigkeit der kinetischen und potentiellen
Energie von der Zeit vorliegt, sind die Lösungen zeitreversibel.
Bewegungsgleichung des Modellsystems
Die Bewegungsgleichung des mathematischen Pendels soll hier direkt über die potentielle
und kinetische Energie erfolgen. Da in diesem Fall die Darstellung der Koordinaten als
q = (qx , qy )T beibehalten wird, muss die Pendellänge mit Hilfe einer Zwangsbedingung
ϕ(q) konstant gehalten werden.
Durch diese Vorgehensweise soll gezeigt werden, welchen Einfluss die Beschreibung des
Systems auf die anschließende Diskretisierung hat.
Die Hamiltonfunktion des Pendels ist:
H(q, p) =
1
|p|2 − mgqx
2m
Die eingeführte Zwangsbedingung ϕ(q) hält die Pendelmasse in konstantem Abstand zum
Aufhängpunkt des Pendels. Sie ist definiert als
ϕ(q) = qx2 + qy2 − l2 = 0
und muss zu jedem Zeitpunkt erfüllt sein. Die Eingliederung der Zwangsbedingung in
die Hamiltonfunktion folgt aus dem Lagrange-Multiplikator Theorem und der LegendreTransformation. Das Lagrange-Multiplikator Theorem besagt, dass eine Lagrangefunktion
durch Zwangsbedingungen zu der Form
L 7→ L + λ ϕ(q)
erweitert werden kann.
Aus der Legendre-Transformation ergibt sich die Hamiltonfunktion formal durch
H := pq̇ − L(q̇, q),
mit
p := ∇q̇ L(q̇, q).
Dadurch erweitert sich die Hamiltonfunktion zu
Ĥ(q, p) = H(q, p) + λϕ(q)
1
= pT
p − mgqy + λ(qx2 + qy2 − l2 )
2m
(2.14)
(2.15)
8
KAPITEL 2. EINKÖRPERSYSTEME
Als Bewegungsgleichungen ergeben sich dann


q̇ =
px
m
∂ Ĥ
∂H
=
= 
py
∂p
∂p
(2.16)
m

ṗ = −
2.3

−2λqx
∂ Ĥ
∂H
∂ϕ 

=−
−λ
=

∂q
∂q
∂q
−mgqy − 2λqy
(2.17)
Numerische Lösungsverfahren
In diesem Abschnitt wird kurz die Funktionsweise von numerischen Integrationsverfahren
erläutert. Anschließend werden die in dieser Arbeit untersuchten Verfahren hergeleitet
bzw. vorgestellt.
2.3.1
Diskretisierung von Anfangswertproblemen
Ein physikalisches System kann durch ein Anfangswertproblem (AWP) der Form
q̈(t) = f (q, q̇, t), q(0) = q0 , q̇(0) = q̇0
(2.18)
beschrieben werden. Dabei handelt es sich um eine Differentialgleichung(DFG) 2. Ordnung.
Probleme dieser Art besitzen im Allgemeinen keine analytische Lösung oder sie ist nicht
bekannt.
Durch Methoden der numerischen Mathematik ist es möglich, Lösungen für das AWP
an diskreten Zeitpunkten zu bestimmen, indem dieses diskretisiert wird. Formulierungen
hierfür finden sich in [16] und [19].
In dieser Arbeit soll die Formulierung aus [16] verwendet werden. Hier bezeichnet
z(t, z0 )
die Lösung des AWP zum Zeitpunkt t ausgehend von
z0 = (q0 , q̇0 ).
Diese Lösung wird über die Funktion
Φt (z0 ) = z(t, z0 )
bestimmt. Diese Funktion gibt für einen Zeitpunkt t die Lösung des AWP mit den Anfangsbedingungen z0 an. Da
Φt1 ◦ Φt2 = Φt1+t2
gilt, kann die Funktion
ΦT (zi ) , zi = z(ti , z0 )
durch die Funktionskomposition
ΦT (zi ) ≈ Φ̂h ◦ ... ◦ Φ̂h (zi ), h · n = T
angenähert werden, wenn gilt
Φ̂h (zi ) ≈ Φh (zi ) , für h 1.
2.3. NUMERISCHE LÖSUNGSVERFAHREN
9
Numerische Verfahren, die eine solche Näherung berechnen, werden allgemein als Integrationsverfahren bezeichnet.
2.3.2
Integrationsverfahren
In diesem Abschnitt werden die verwendeten Verfahren formal hergeleitet. Alle in dieser
Arbeit betrachteten numerischen Integrationsverfahren gehören zur Klasse der Einschrittverfahren (ESV). Diese Klasse von Verfahren betrachtet zur Berechnung der Näherung
zi+1 nur den Zustand zi .
Außerdem sind die verwendeten Verfahren nur zur Lösung von DFGs 1.Ordnung geeignet.
Da es sich bei der Bewegungsgleichung (2.9) um eine DFG 2. Ordnung handelt, muss diese
in ein System von DFGs 1. Ordnung überführt werden.
Dies ist möglich, indem
q̈ = f (q, q̇)
(2.19)
überführt wird in
q̇ = v
(2.20)
v̇ = f (q, v).
(2.21)
Herleitung der verwendeten Integrationsverfahren
Finite Differenzen stellen einen Ansatz dar, um Integrationsverfahren für DGL der Form
Ż = f (Z)
herzuleiten. Hierbei wird als Näherung angenommen, dass
Ż(t) ≈
Z(t + h) − Z(t)
h
(2.22)
gilt. Da eine Näherung für Z(t + h) gesucht ist, ergibt sich durch Umstellen von (2.22)
nach
Z(t + h) ≈ Z(t) + h f (Z(t))
(2.23)
die Berechnungsvorschrift des expliziten Eulerverfahrens. Natürlich muss für (2.21) genauso vorgegangen werden.
Die Herleitung des impliziten Eulerverfahrens verläuft analog. Der Unterschied besteht
darin, dass Ż(t + h) statt Ż(t) durch finite Differenzen angenähert wird. Dadurch ergibt
sich als Berechnungsvorschrift des impliziten Eulerverfahrens
Z(t + h) ≈ Z(t) + h f (Z(t + h)).
(2.24)
Das Verfahren wird implizit genannt, da die Lösung Z(t+h) von sich selbst abhängt. Daher
muss bei impliziten Verfahren in jedem Schritt ein Gleichungssystem gelöst werden.
Das dritte in dieser Arbeit untersuchte Verfahren ist das Velocity-Verlet-Verfahren. Dieses
beruht auf dem bekannten Leapfrog-Verfahren [18]. Die Herleitung kann [7] bzw. [18]
entnommen werden.
Die Berechnungsvorschrift für das Velocity-Verlet-Verfahren lautet
10
KAPITEL 2. EINKÖRPERSYSTEME
h2 −1
M F (qn )
2
(2.25)
h −1
M [F (qn ) + F (qn+1 )].
2
(2.26)
qn+1 = qn + hvn +
vn+1 = vn +
Dieses Verfahren ist durch seine Form besonders gut geeignet, um ein Gleichungssysteme
wie (2.21)/(2.21) zu integrieren.
Wichtige Eigenschaften von numerische Integrationsverfahren
Folgende physikalische Größen werden von den exakten Lösungen der Bewegungsgleichungen erhalten:
• der Gesamtimpuls I :=
n
X
mi · vi
i=0
• der Gesamtdrehimpuls D :=
n
X
(qi − qo ) × mi · vi
i=0
• die Gesamtenergie E := K(v) + U (q)
Wenn die Entwicklung einer dieser Eigenschaften mit Hilfe eines numerischen Verfahrens
untersucht werden soll, muss sie durch das Verfahren erhalten werden.
Zwei weitere, häufig geforderte Eigenschaft von numerische Integrationsverfahren sind
Symplektizität In dieser Arbeit wird die Definition aus [18] benutzt.
Nach dieser ist ein ESV Φ̂ symplektisch, wenn für die Jacobimatrix JΦ̂ gilt
JΦ̂T
IJ JΦ̂ = IJ , IJ =
0 I
.
−I 0
(2.27)
Symplektische Verfahren haben in der Regel sehr gute Energieerhaltungseigenschaften, die auch über lange Integrationszeiträume bestehen bleiben [18].
Zeitreversibilität Ein numerisches Integrationsverfahren wird als zeitreversibel bezeichnet, wenn eine Umkehrung der Impulse oder eine Umkehr der Integrationsrichtung
von h zu −h dafür sorgt, dass das System sich in der Zeit wieder zum Ausgangspunkt
zurück entwickelt.
Dies ist bei zeitreversiblen Verfahren nur garantiert, falls keine Rundungsfehler auftreten.
Die Eigenschaften der hier vorgestellten Methoden zur numerischen Integration werden in
den beiden folgenden Abschnitten anhand des Modellsystems untersucht.
2.4
Theoretische Analyse
Die hier gemachten Fehleranalysen orientieren sich an [16]. Bei der Fehleranalyse eines
numerischen Integrationsverfahrens müssen zwei Arten von Fehlern betrachtet werden:
• der Fehler pro Integrationsschritt
• der kumulierte Fehler nach n Integrationsschritten
2.4. THEORETISCHE ANALYSE
2.4.1
11
Explizites Eulerverfahren
Die Berechnungsvorschrift des expliziten Eulerverfahrens lautet
zn+1 = zn + h f (zn )
bzw.
qn+1
vn+1
=
qn
vn
+h
vn
.
M −1 F (qn )
(2.28)
(2.29)
Das explizite Eulerverfahren für den Lagrangeformalismus
Aus der Iterationsvorschrift und der Bewegungsgleichung (2.3) ergibt sich folgende Iteration für die Position und die Geschwindigkeit:
αn+1
αn
βn
=
+h
.
(2.30)
βn+1
βn
(− gl sin(αn ))
Fehleranalyse des expliziten Eulerverfahrens
Der Fehler bei jedem Integrationsschritt lässt sich über die Taylorentwicklung im Zeitpunkt t abschätzen. Dabei wird angenommen, dass die Anfangswerte des Verfahrens zt
der exakten Lösung z(t) der DGL entsprechen. Zur Erinnerung:
q(t)
(2.31)
z(t) =
q̇(t)
Die Differenz der Taylorentwicklung der exakten Lösung zum numerischen Verfahren ergibt
sich als
h2
z̈(t) + O(h3 ) − (zt + h f (zt ))
2
h2
= (z(t) − zt ) + h (ż(t) − f (zt )) + z̈(t) + O(h3 ).
2
z(t + h) − zt+h = z(t) + h ż(t) +
(2.32)
(2.33)
Nach Voraussetzung z(t) = zt ergibt sich der lokale Fehler le := z(t + h) − zt+h damit als
le =
h2
z̈(t) + O(h3 ).
2
(2.34)
Nach [16] ergibt sich z̈(t) als
z̈(t) = Jf (z(t)) ż(t)
= Jf (z(t)) f (z(t)).
(2.35)
(2.36)
Jf (z(t)) bezeichnet die Jacobimatrix von f (...) an der Stelle z(t). Für (2.9) ergibt sich als
lokaler Fehler für das explizite Eulerverfahren
h2
β(t)
leexp =
(2.37)
g
2 ( l )2 cos (α(t)) sin (α(t))
Der lokale Fehler wächst also in O(h2 ).
Für die Abschätzung des globalen Fehlers (ge) muss angenommen werden, dass die Funktion f der Lipschitzbedingung
||f (d) − f (e)|| ≤ L||d − e|| , d, e ∈ D ⊂ R
(2.38)
12
KAPITEL 2. EINKÖRPERSYSTEME
genügt. Dabei bezeichnet L die Lipschitzkonstante. Der globale Fehler im Integrationsschritt n + 1 ergibt sich aus allen lokalen Fehlern der vorangegangenen n Schritte und dem
lokalen Fehler von n → n + 1.
Wie beim lokalen Fehler (2.32) erfolgt die Abschätzung über die Differenz der Taylorentwicklung der exakten Lösung zum numerischen Verfahren:
h2
z̈(ξ)) − (zn ) + h f (zn ))
2
h2
= (z(tn ) − zn ) + (hż(tn ) − h f (zn )) + z̈(ξ)
2
h2
= (z(tn ) − zn ) + h(f (z(tn )) − f (zn )) + z̈(ξ).
2
gen+1 = (z(tn ) + h ż(tn ) +
Durch die Dreiecksungleichung ergibt sich als obere Schranke für ||ge(n+1) ||
||gen+1 || ≤ ||z(tn ) − zn || + h||f (z(tn )) − f (zn )|| +
≤ ||z(tn ) − zn || + h L||z(tn ) − zn || +
= (1 + h L)||z(tn ) − zn || +
= (1 + h L)||gen || +
h2
||z̈(ξ)||
2
h2
||z̈(ξ)||
2
h2
||z̈(ξ)||
2
h2
||z̈(ξ)||.
2
(2.39)
(2.40)
(2.41)
(2.42)
Ungleichung (2.40) ergibt sich aus (2.39) durch Anwendung der Lipschitzbedingung.
Die Ungleichung (2.40) gibt also eine obere Schranke für den Gesamtfehler im Integrationsschritt n + 1 in Abhängigkeit des Gesamtfehlers im Integrationsschritt n an.
Für eine Abschätzung des Gesamtfehlers in Abhängigkeit des Anfangsfehlers ge0 := z(0)−
z0 dient die rekursive Beziehung (2.42).
Nach [16] erfüllt eine rekursive Ungleichung der Form
an+1 ≤ C an + D
die obere Schranke
an ≤ C n a0 +
Cn − 1
D
C −1
Mit dieser Überlegung folgt für den globalen Fehler gen aus (2.42):
(1 + hL)n − 1 h2
||z̈(ξ)||
(1 + hL) − 1 2
||z̈(ξ)||
= (1 + hL)n ||ge0 || + ((1 + hL)n − 1)
2L
||gen || ≤ (1 + hL)n ||ge0 || +
(2.43)
(2.44)
Es wird angenommen, dass die Startwerte der exakten Lösung entsprechen und daher
M
definiert. Dadurch
e0 = 0 gilt. Weiterhin wird M := max ||z̈(ξ)||, n · h = T und K := 2L
ξ∈[0,T ]
kann (2.44) vereinfacht werden zu
||gen || ≤ Kh(1 + hL)n .
(2.45)
Die Lipschitzkonstante L entspricht der Norm der Jacobimatrix Jf [16]. Damit ist
g
L ≤ max(1, | |).
l
(2.46)
2.4. THEORETISCHE ANALYSE
13
Aus (2.45) ist zu erkennen, dass die Schranke des globalen Fehlers exponentiell mit der
Anzahl der Integrationsschritte n wächst. Außerdem zeigt der Faktor Kh, dass der Fehler
sich linear zur Schrittweite verhält und daher für den globalen Fehler ge gilt
lim ge = 0
(2.47)
h→0
solange die Anzahl der Integrationsschritte n konstant gewählt wird.
Falls n nicht konstant gewählt wird, sondern gilt
T
,
h
n=
folgt daraus, dass
lim n = ∞.
h→0
Allerdings geht der globale Fehler auch hier gegen 0, da der Ausdruck
(1 +
T n
T
L) , h =
n
n
die Form der Euler’schen Folge hat und somit
lim (1 +
n→∞
T n
L) = const
n
folgt.
Damit ist das explizite Eulerverfahren konvergent. Dies ist allerdings nicht der Fall, wenn
Rundungsfehler mit in die Betrachtung aufgenommen werden. In diesem Fall ist das explizite Eulerverfahren nicht konvergent [1].
Der folgende Abschnitt beschreibt die Berechnung des expliziten Eulerverfahrens für die
Bewegungsgleichungen im Hamiltonformalismus.
Das explizite Eulerverfahren für den Hamiltonformalismus mit Zwangsbedingung
Die Formulierung des Modellsystems im Hamiltonformalismus und insbesondere die Einführung
von Zwangsbedingungen hat Auswirkungen auf die Diskretisierung und auf das Integrationsverfahren. Um das System in diskreten Zeitschritten integrieren zu können, wird


Ż = f (Z, λ) = 

px
m
py
m
−2λqx
−mgqx − 2λqy




definiert. Hierbei beschreibt Z = (qx , qy , px , py ) einen Zustand des Systems. Die iterative
Berechnungsvorschrift des expliziten Eulerverfahrens lautet
Zn+1 = Zn + hf (Zn , λn ).
Dabei muss λ immer so gewählt sein, dass für den nächsten berechneten Zustand Zn+1
gilt
ϕ(Zn+1 ) = 0.
Als Lösung ergeben sich daher die nichtlinearen Gleichungen
14
KAPITEL 2. EINKÖRPERSYSTEME
0 = Zn+1 − Zn + hf (Zn , λn )
(2.48)
0 = ϕ(Zn+1 )
(2.49)
Die beiden Gleichungen werden zu folgendem nichtlinearen Gleichungssystem zusammengefasst

Fexp
(n)
(n)
(n+1)
x
qx + h( pm
) − qx



(n)


py
(n)
(n+1)


q
+
h(
)
−
q
y
y
m




Zn+1 − Zn + hf (Zn , λn )
(n)
(n)
(n+1)

=0
=
=  px + h(−2λqx ) − px

ϕ(Zn+1 )


 (n)
(n)
(n+1) 
py + h(−mg + 2λqy ) − py



(n+1) 2
(n+1) 2
2
(qx
) + (qy
) −l
(2.50)
Dieses muss durch numerische Verfahren, wie z.B. dem Gauß-Newton-Verfahren oder dem
Levenberg-Marquardt-Verfahren, gelöst werden.
Schwierigkeiten beim Lösen des nicht-linearen Gleichungssystems
Wichtig für alle diese Verfahren ist die Kondition der Jacobimatrix JF . Falls JF schlecht
konditioniert bzw. singulär ist, kann es vorkommen, dass diese Verfahren zu einem falschen
Ergebnis kommen oder garnicht konvergieren [6].
Die Jacobimatrix JFexp der Funktion Fexp lautet

JFexp
−1
0
0
0
0





 0
−1
0
0
0 




(n) 

= 0
0
−1 0 −2qx  .



(n) 
 0
0
0 −1 2qy h 


(n+1)
(n+1)
2qx
2qy
0
0
0
exp t
Die Eigenwerte λexp = (λexp
1 , ..., λ5 ) dieser Matrix sind
exp
λ
= −1, −1, −1, −1, 0 .
(2.51)
(2.52)
Insbesondere ist die Determinante der Jacobimatrix gleich 0. Damit ist die Matrix nicht
invertierbar, also singulär.
2.4.2
Implizites Eulerverfahren
Das implizite Eulerverfahren für den Lagrangeformalismus
Die allgemeine Berechnungsvorschrift für das implizite Eulerverfahren lautet wie folgt:
qn+1 = qn + h vn+1
vn+1 = vn + h M
−1
(2.53)
F (qn+1 )
(2.54)
2.4. THEORETISCHE ANALYSE
15
Mit den Lagrange-Bewegungsgleichungen (2.3) ergeben sich durch Einsetzen von (2.53) in
(2.54) und umgekehrt folgende, nichtlineare Gleichungen:
g
αn+1 = αn + h [βn + h (− sin(αn+1 ))]
l
g
βn+1 = βn + h [− sin(αn + h βn+1 )].
l
(2.55)
(2.56)
Diese müssen in jedem Zeitschritt durch ein geeignetes Verfahren gelöst werden.
Theoretische Analyse im Lagrangeformalismus
Aufgrund der impliziten Struktur des impliziten Eulerverfahrens ist die Fehleranalyse komplizierter als beim expliziten Eulerverfahren.
Daher wird hier das implizite Eulerverfahren als Runge-Kutta-Verfahren (RK-Verfahren)
betrachtet [8],[16],[1].
Nach [1] ist das implizite Eulerverfahren ein implizites RK-Verfahren der Ordnung p = 1.
Daraus folgt, dass der lokale Fehler in O(h2 ) wächst und das Verfahren damit konsistent
ist. Für die Implementierung wurde die Matlabfunktion fzero verwendet. Der Algorithmus
wird beschrieben in [9].
Das implizite Eulerverfahren für den Hamiltonformalismus mit Zwangsbedingung
Zn+1 = Zn + hf (Zn+1 , λn+1 )
Auch hier ergibt sich wieder ein nichtlineares Gleichungssystem

Fimp
(n)
(n+1)
(n+1)
qx + h( pxm ) − qx



(n+1)


p
(n)
(n+1)
y


qy + h( m ) − qy




Zn+1 − Zn + hf (Zn+1 , λn+1 )
(n)
(n+1)
(n+1)
 = 0.
=
=
p
+
h(−2λq
)
−
p
x
x
x


ϕ(Zn+1 )


 (n)
(n+1)
(n+1) 
py + h(−mg + 2λqy

) − py


(n+1) 2
(n+1) 2
2
(qx
) + (qy
) −l
(2.57)
Schwierigkeiten beim Lösen des nicht-linearen Gleichungssystems
Die Jacobimatrix JFimp der Funktion Fimp lautet

JFimp
h
m

−1
0
0
0




h
 0

−1
0
0
m





=  −2hλ
0
−1 0
−2hλ 
.



(n+1) 
 0

2hλ
0 −1 2hqy


(n+1)
(n+1)
2qx
2qy
0
0
0
(2.58)
Die Determinate dieser quadratischen Matrix ist ungleich 0. Somit ist die Matrix invertierbar und nicht singulär.
16
KAPITEL 2. EINKÖRPERSYSTEME
2.4.3
Velocity-Verlet-Verfahren
Die allgemeine Berechnungsvorschrift für das Velocity-Verlet-Verfahren lautet
h2 −1
M F (qn )
2
(2.59)
h −1
M [F (qn ) + F (qn+1 )].
2
(2.60)
qn+1 = qn + hvn +
vn+1 = vn +
Des Velocity-Verlet-Verfahren für den Lagrangeformalismus
Durch Einsetzen der Bewegungsgleichung 2.9 erhält man folgende Berechnungsvorschrift
h2 g
(− ) cos(αn )
2
l
(2.61)
h g
(− )[sin(αn ) + sin(αn+1 )].
2
l
(2.62)
αn+1 = αn + hβn +
βn+1 = βn +
Eigenschaften des Velocity-Verlet-Verfahrens
Eine Herleitung des Verfahrens aus dem Leapfrog- bzw. Störmer-Verlet-Verfahren kann
[18] entnommen werden. Das Velocity-Verlet-Verfahren hat die Fehlerordnung 2, ist symplektisch und zeitreversibel. Außerdem ist es stabiler in Bezug auf Rundungsfehler als das
klassische Störmer-Verlet-Verfahren. [18].
Des Velocity-Verlet-Verfahren für den Hamiltonformalismus mit Zwangsbedingung
Da das Velocity-Verlet-Verfahren Positionen und Geschwindigkeiten getrennt berechnet,
ergeben sich folgende drei Gleichungen bzw. Gleichungssysteme:
pn h2 F (qn )
+
m
2 m
h
= pn + [F (qn ) + F (qn+1 )]
2
!
(n)
(n+1)
h
−2λ(qx + qx
)
= pn +
2 −2mg + 2λ(qy(n) + qy(n+1) )
qn+1 = qn + h
(2.63)
pn+1
(2.64)
(2.65)
ϕ(q) = qx2 + qy2 − l2 = 0
(2.66)
Wie schon beim expliziten und impliziten Eulerverfahren werden diese zu einem Gleichungssystem zusammengefasst, welches geschlossen gelöst werden muss.

Fvv
(n)
(n)
x
qx + h( pm
)+
(n)
h2
2 [−2λqx ]
(n+1)
− qx



(n)
 (n)

 qy + h( py ) − h2 [−mg + 2λqy(n) ] − qy(n+1) 
m
2




Zn+1 − Zn + hf (Zn+1 , λn+1 )
(n)
(n)
(n+1)
(n+1)

=0
h
=
=
p
+
[−2λ
(q
+
q
)]
−
p
x
x
x
x

2
ϕ(Zn+1 )


 (n) h
(n)
(n+1)
(n+1) 
py + 2 [−2mg + 2λ (qy + qy

)] − py


(n+1) 2
(n+1) 2
(qx
) + (qy
) − l2
(2.67)
2.5. NUMERISCHE EXPERIMENTE
17
Schwierigkeiten beim Lösen des nicht-linearen Gleichungssystems
Wie beim expliziten und impliziten Eulerverfahren hängt die richtige Lösung des Gleichungssystems von der Beschaffenheit der Jacobimatrix ab. Diese wird für das VelocityVerlet-Verfahren mit JFvv bezeichnet und lautet wie folgt:

JFvv
−1
0
0
0
(n)
h2 q x





2 q (n)
 0

−1
0
0
h
y




(n)
(n+1) 
=
0
−1 0 −h(qx + qx
) .
 −hλ



(n)
(n+1) 
 0
hλ
0 −1 h(qy + qy
)


(n+1)
(n+1)
2qx
2qy
0
0
0
(2.68)
Die Determinante der Matrix ist ungleich 0. Da die Matrix außerdem quadratisch ist,
ist sie invertierbar.
In den meisten Fällen werden Systeme mit Zwangsbedingungen mit Hilfe der Algorithmen
RATTLE und SHAKE berechnet [8], [2]. Während die hier verwendeten Lösungsverfahren
alle Variablen des Gleichungssystem gleichzeitig lösen, werden bei RATTLE bzw. SHAKE
abwechselnd die Zwangsbedingungen und dann Parameter wie Orte und Impulse bestimmt.
Es hat sich gezeigt, dass ein solches Vorgehen bessere Ergebnisse erzielt [12].
2.5
Numerische Experimente
Dieser Abschnitt untersucht die in Abschnitt 2.3.2 vorgestellten Verfahren experimentell
auf ihre Eigenschaften. Insbesondere wird das Verhalten der Verfahren in Abhängigkeit
der gewählten Schrittweite betrachtet. Dazu wird die Zeitdauer, über die integriert wird,
konstant gewählt. Durch Verringern der Schrittweite wird also die Anzahl der Integrationsschritte erhöht.
Die Masse des Pendels beträgt 1 Kg, die Pendellänge ist auf 1m festgelegt. Für die Erdbeschleunigung g wurde der Wert 9.81m/s2 angesetzt. Die Schrittweite wird in Sekunden
angegeben.
Zur Berechnung der Lösung des impliziten Eulerverfahrens im Lagrangeformalismus wurde die Matlab-Funktion fzero mit Standardeinstellung verwendet.
Zur Lösung der nichtlinearen Gleichungssysteme, die bei allen Verfahren im Hamiltonformalismus auftreten, wurde die Matlabfunktion fsolve des Optimization-Toolkits verwendet. Als Algorithmus wurde das Levenberg-Marquardt-Verfahren gewählt. Für alle
weiteren Einstellung wie z.B. maximale Anzahl der Iterationen, geforderte Genauigkeit
der Lösung usw. wurden die Standardeinstellungen gewählt.
2.5.1
Gesamtenergie
Als erstes wird die Erhaltung der Gesamtenergie (siehe Abschnitt 2.3.2) untersucht. Die Erhaltung der Gesamtenergie eines geschlossenes Systems ist eine grundlegende Eigenschaft
von physikalischen Systemen. Daher sollte sie von numerischen Integrationsverfahren erhalten werden.
Das System wurde über eine Zeitdauer von 500 Sekunden integriert. Als Anfangsbedingungen wurde eine Auslenkung von α0 = 10◦ (im Bogenmaß) gewählt. Alle Angaben der
Energie beziehen sich auf die Einheit Joule.
18
KAPITEL 2. EINKÖRPERSYSTEME
Lagrangeformalismus
Die folgenden Abbildungen zeigen die Entwicklung der Gesamtenergie des Systems über
die Anzahl der Integrationsschritte. Die verwendete Integrationsschrittweite h ist in den
Grafiken angegeben.
Abbildung 2.2: Explizites Eulerverfahren
Abbildung 2.3: Implizites Eulerverfahren
2.5. NUMERISCHE EXPERIMENTE
19
Abbildung 2.4: Velocity-Verlet-Verfahren
Bei einer Schrittweite von h = 0.1 zeigt sich bei den beiden Eulerverfahren (Abbildung
2.2 und 2.3), dass die Energie des Systems nicht erhalten bleibt. Während beim expliziten
Eulerverfahren die Energie während der Integration zunimmt, fällt diese beim impliziten
Eulerverfahren nach ca. 15 Integrationsschritten auf den Wert 9.81. Dies entspricht der
potentiellen Energie des Systems, wenn sich das Pendel in der Ruhelage befindet und keine
kinetische Energie besitzt. Die Gesamtenergie beim Velocity-Verlet-Verfahren (Abbilgund
2.4) oszilliert dagegen um einen Wert von 9.81, bleibt aber hier im Mittel konstant.
Abbildung 2.5: Explizites Eulerverfahren
20
KAPITEL 2. EINKÖRPERSYSTEME
Abbildung 2.6: Implizites Eulerverfahren
Bei einer Verkleinerung der Integrationsschrittweite um den Faktor 10 auf h = 0.01
zeigt sich beim expliziten und impliziten Eulerverfahren (Abbildung 2.5 und 2.6) folgendes
Verhalten: Beim expliziten Verfahren wächst die Gesamtenergie nach ca. 6000 Integrationsschritten im Mittel linear an. Beim impliziten Eulerverfahren fällt die Gesamtenergie des
Systems auf eine Wert von 9.81. Danach ist keine Veränderung der Energie zu erkennen.
Abbildung 2.7: Explizites Eulerverfahren:
2.5. NUMERISCHE EXPERIMENTE
21
Abbildung 2.8: Implizites Eulerverfahren
Eine weitere Verringerung der Schrittweite auf 0.001 (Abbildung 2.7 und 2.8) führt
beim expliziten Eulerverfahren dazu, dass die Gesamtenergie im Mittel nicht mehr ansteigt.
Allerdings nimmt die Oszillation der Energie über die Dauer der Integration zu. Das
implizite Eulerverfahren verhält sich ähnlich wie bei den vorangegangen Schrittweiten. Die
Gesamtenergie nähert sich wieder dem konstanten Wert von 9.81. Allerdings oszilliert die
Energie über sehr viel mehr Integrationsschritte als bei den vorangegangen Experimenten.
Da das Velocity-Verlet-Verfahren für Schrittweiten von h < 0.1 keine deutliche Änderung
im Verhalten zeigt, wurden die Schrittweiten vergrößert um zu überprüfen, wann das
Verfahren instabil wird.
Abbildung 2.9: Velocity-Verlet-Verfahren
22
KAPITEL 2. EINKÖRPERSYSTEME
Abbildung 2.10: Velocity-Verlet-Verfahren
Die Abbildung 2.9 zeigt, dass die Energie bei einer Integrationsschrittweite von h =
0.65 oszilliert aber im Mittel konstant bleibt. Bei einer Schrittweite von h = 0.7 ist keine
Oszillation mehr erkennbar und die Gesamtenergie steigt bis auf ca. 70000 an (Abbildung
2.10).
Hamiltonformalismus
Abbildung 2.11: Explizites Eulerverfahren
2.5. NUMERISCHE EXPERIMENTE
23
Abbildung 2.12: Implizites Eulerverfahren
Abbildung 2.13: Velocity-Verlet-Verfahren
Die Abbildungen 2.11 und 2.12 zeigen, anders als im Lagrangeformalismus, keine Oszillation der Energie. Allerdings steigt auch hier Energie des Systems beim expliziten Eulerverfahren stark an, hier etwa quadratisch mit der Anzahl der Schritte. Die Energie beim
impliziten Eulerverfahren fällt nach wenigen Integrationsschritten auf −9.81 und zeigt danach keine Veränderung mehr. Beim Velocity-Verlet-Verfahren (Abbildung 2.13) zeigt sich
eine Oszillation der Gesamtenergie. Außerdem nimmt die Gesamtenergie über die Dauer
der Integration ab.
24
KAPITEL 2. EINKÖRPERSYSTEME
Abbildung 2.14: Explizites Eulerverfahren
Abbildung 2.15: Implizites Eulerverfahren
Abbildung 2.16: Velocity-Verlet-Verfahren
2.5. NUMERISCHE EXPERIMENTE
25
Eine Verringerung der Schrittweite um den Faktor 10 führt bei den Eulerverfahren zu
keiner qualitativen Änderung im Verhalten der Gesamtenergie. Der Anstieg beim expliziten Verfahren ist weiterhin quadratisch(Abbildung 2.14), allerdings setzt dieser Anstieg
der Gesamtenergie hier erst nach ca. 18000 Integrationsschritten ein. Beim impliziten Verfahren (Abbildung 2.15) fällt die Gesamtenergie nach ca. 6000 Integrationsschritten auf
den Wert −9.81 und bleibt anschließend konstant. Das Velocity-Verlet-Verfahren reagiert
auf die Verringerung der Schrittweise mit einem Anstieg der mittleren Energie um etwa
0.03. Dies ist im Vergleich zum expliziten Eulerverfahren mit einem Anstieg von ca. 3 · 106
sehr gering.
Abbildung 2.17: Explizites Eulerverfahren
Abbildung 2.18: Implizites Eulerverfahren
26
KAPITEL 2. EINKÖRPERSYSTEME
Abbildung 2.19: Velocity-Verlet-Verfahren
Bei einer Schrittweite von h = 0.001 zeigt die Abbildung 2.17 einen S-förmigen Verlauf
des Energieanstiegs beim expliziten Eulerverfahren. Trotz der kleinen Schrittweite wächst
die Energie auf ca. 13 · 105 an. Beim impliziten Eulerverfahren fällt die Energie über die
gesamte Integrationsdauer und nähert sich gegen Ende dem Wert −9.81. Aus Abbildung
2.19 ist zu erkennen, dass die Energie beim Velocity-Verlet-Verfahren sehr stark oszilliert.
Allerdings ist im Gegensatz zu Abbildung 2.16 kein Drift der Gesamtenergie zu erkennen.
Sie oszilliert um den Anfangswert von ca. −9.66.
2.5.2
Erhaltung der Pendellänge
Da die Pendellänge eine konstante Eigenschaft des Modellsystems ist, ist die Einhaltung
dieser Eigenschaft von elementarer Bedeutung für die Korrektheit der Simulation. Die
Einhaltung im Lagrangeformalismus ist durch die Koordinatentransformation garantiert.
Daher entfällt hier ein numerisches Experiment.
Hamiltonformalismus
Im Hamiltonformalismus soll die Pendellänge über die Zwangsbedingung konstant gehalten
werden. Auch hier wurde als Anfangsbedingung der Simulation α0 = 10◦ gewählt, die Pendellänge wurde mit 1m festgelegt. Der Integrationszeitraum beträgt 500s. Die folgenden
Grafiken zeigen den absoluten Fehler in der Erhaltung der Pendellänge in Abhängigkeit
der Integrationsschritte.
2.5. NUMERISCHE EXPERIMENTE
(a) Explizites Eulerverfahren
27
(b) Implizites Eulerverfahren
Abbildung 2.20: Eulerverfahren
Abbildung 2.21: Velocity-Verlet-Verfahren
Die Abbildungen 2.20(a) und 2.20(b) zeigen den absoluten Fehler bei der Einhaltung der Zwangsbedingung vom expliziten und impliziten Eulerverfahren. Während die
Pendellänge beim expliziten Eulerverfahren (Abbildung 2.20(a)) in der Simulation immer weiter vom Startwert abweicht, bleibt dieser Fehler beim impliziten Eulerverfahren
(Abbildung 2.20(b)) sehr gering. Hier weicht die Pendellänge in der Simulation höchstens um 4 · 10−7 m vom Startwert ab. Der Fehler beim Velocity-Verlet-Verfahren oszilliert
hauptsächlich im Bereich von 1.25 · 10−6 m. Darüber hinaus gibt es vereinzelt auftretende
Fehler die größer sind, aber unterhalb von 3 · 10−6 m liegen.
28
KAPITEL 2. EINKÖRPERSYSTEME
(a) Explizites Eulerverfahren
(b) Implizites Eulerverfahren
Abbildung 2.22: Eulerverfahren
Abbildung 2.23: Velocity-Verlet-Verfahren
Durch eine Verringerung der Schrittweite auf h = 0.01 fällt der Fehler beim expliziten
und impliziten Eulerverfahren geringer aus. Während sich das implizite Eulerverfahren
ähnlich verhält wie bei größerer Schrittweite, zeigt sich beim explizitzen Verfahren ein
Abschnitt in der Fehlerfunktion, bei dem die Abweichung von der vorgegebenen Pendellänge über einen Bereich von ca. 10000 Integrationsschritten konstant bleibt (Abbildung 2.22(a)). Anschließend steigt der Fehler wie in Abbildung 2.20(a) an. Der Fehler
beim Velocity-Verlet-Verfahren zeigt auch hier eine starke Oszillation. Die Amplitude der
Oszillation, also die Abweichung der Pendellänge vom Startwert, nimmt mit der Anzahl
der Integrationsschritte zu.
2.6. DISKUSSION UND SCHLUSSFOLGERUNGEN
(a) Explizites Eulerverfahren
29
(b) Implizites Eulerverfahren
Abbildung 2.24: Eulerverfahren
Abbildung 2.25: Velocity-Verlet-Verfahren
Der Fehler beim impliziten Eulerverfahren (Abbildung 2.24(b)) oszilliert bei dieser
Schrittweite anfangs stark, bleibt aber unterhalb von 1.5 · 10−7 m. Mit zunehmender Anzahl der Schritte nimmt er weiter ab und nähert sich 0. Die Fehlerkurve beim expliziten
Eulerverfahren in Abbildung 2.24(a) ist stärker abgeflacht als bei größeren Schrittweiten.
Die Abweichung bleibt insgesamt unter 0.3m. Aus der Abbildung 2.25 für den Fehler beim
Velocity-Verlet-Verfahren ist zu erkennen, dass der Fehler sehr stark oszilliert, aber über
die gesamte Integrationsdauer unterhalb von 1.5 · 10−7 m bleibt.
2.6
Diskussion und Schlussfolgerungen
Aus den theoretischen und numerischen Untersuchungen der Verfahren wird deutlich, dass
die Eulerverfahren die Energie nicht erhalten. Selbst bei kleinen Schrittweiten gewinnt
bzw. verliert das Modellsystem langfristig Energie. Das Velocity-Verlet-Verfahren erhält
dagegen auch bei großen Schrittweiten (h = 0.65) im Lagrangeformalismus die Energie
im Mittel. Allerdings erhält das Verfahren die Energie nicht exakt, unabhängig davon wie
30
KAPITEL 2. EINKÖRPERSYSTEME
klein die Schrittweite gewählt wird.
Im Hamiltonformalismus zeigen alle untersuchten Verfahren schlechtere Energieerhaltungeigenschaften als im Lagrangeformalismus. Die Ursachen hierfür ist Lösung des nichtlinearen Gleichungssystems, welche in jedem Integrationsschritt berechnet werden muss. Da
diese numerisch berechnet wird, addiert sich in jedem Integrationsschritt ein zusätzlicher
Fehler auf die Lösung der Integrationsverfahren.
Bei der Einhaltung der Zwangsbedingungen zeigen sowohl das implizite Eulerverfahren
als auch das Velocity-Verlet-Verfahren gute Ergebnisse. Bei beiden Verfahren bleibt der
Fehler, unabhängig von den untersuchten Schrittweiten, unter einem absoluten Wert von
3·10−6 m. Der Fehler des explizite Eulerverfahren bleibt im Vergleich dazu auch bei kleinen
Schrittweiten etwa um den Faktor 106 größer.
Als Ergebnis ist festzuhalten, dass die beiden Eulerverfahren für Simulationen, bei denen
es auf die Erhaltung der Gesamtenergie ankommt, unbrauchbar sind, da sie nach einigen
tausend Integrationsschritten keine sinnvollen Ergebnisse mehr produzieren.
Bei der Erhaltung der Pendellänge liefert das implizite Eulerverfahren auch über viele
Integrationsschritte sinnvolle Ergebnisse. Allerdings ist dies auf den Verlust der Gesamtenergie während der Integration zurückzuführen. Da das Pendel während der Simulation
Energie verliert, nimmt es eine Ruhelage bei einer Auslenkung von 0◦ ein. In dieser Lage
erfährt das Pendel keine auslenkende Kraft und die Orte und Impulse des Systems ändern
sich nicht mehr. Dadurch muss das nichtlineare Gleichungssystem (2.57) nur in Bezug auf
die Einhaltung der Zwangsbedingung optimiert werden.
Abschließend ist zu bemerken, dass das Velocity-Verlet-Verfahren die besten Ergebnisse
in Bezug auf Energieerhaltung und die Einhaltung der Zwangsbedingung zeigt. Allerdings
muss die Schrittweite bei der Hamiltonformulierung des Systems wesentlich kleiner gewählt
werden, damit die Energie erhalten bleibt.
Kapitel 3
Mehrkörpersysteme
Das in Kapitel 2 untersuchte Modellsystem des mathematischen Pendels bestand aus einem
einzigen bewegten Körper, der Pendelmasse. Da die meisten realen Systeme Mehrkörpersysteme sind, z.B. unser Sonnensyteme, ein Billardspiel oder Moleküle, werden in diesem
Kapitel einige mögliche Probleme bei Simulationen von Mehrkörpersystemen beschrieben. Anschließend werden in Abschnitt 3.2 Lösungsansätze für die geschilderten Probleme
erläutert.
3.1
Veränderungen und Probleme bei Mehrkörpersystemen
Ein Mehrkörpersystem ist ein System, welches aus mehreren Objekten und Potentialen
bzw. Kräften besteht, die auf diese Objekte einwirken. Im Gegensatz zu einem Einkörpersystem können hier Wechselwirkungen zwischen den Objekten des Systems auftreten. Bei
diesen Wechselwirkungen kann es sich z.B. um chemische Bindungen, Kollisionen oder
Gravitationskräfte handeln. Daher ergeben sich Schwierigkeiten, die bei Einkörpersystemen nicht auftreten können (siehe Abschnitt 3.1.1).
Ein weiteres Problem kann die Kollision zwischen Partikeln des Systems darstellen. Die
Art der Probleme hängt allerdings stark vom betrachteten Modellsystem ab. Daher wird in
Abschnitt 3.1.2 eine Eingrenzung dieses Problems vorgenommen. Mögliche Lösungsansätze
werden in 3.2.2 diskutiert.
3.1.1
Kräfteauswertungen
Die potentielle Energie U (q) des in Kapitel 2 untersuchten Einkörpersystems war nur
abhängig von der Position der Pendelmasse.
In Mehrkörpersystemen mit n Partikeln ist die potentielle Energie U (q) abhängig von n
Partikeln bzw. deren Positionen, da hier die Wechselwirkungen der Körper untereinander
mit in die potentielle Energie des Systems eingehen. Dies kann zu Problemen bei der Simulation von Systemen dieser Art führen. Ein Beispiel hierfür ist die Berechnung aller
paarweisen Wechselwirkungen, z.B. Gravitation, der Körper eines Systems. Ihre Anzahl
wächst quadratisch mit der Anzahl der Körper. Dies ist für große Systeme, z.B. mehr als
10000 Körper, nicht effizient genug [15]. Im Folgenden werden nur Systeme betrachtet,
deren potentielle Energiefunktionen aus Ein- und Zweikörperpotentialen besteht. Strategien um den quadratischen Rechenaufwand zur Simulation solcher Systeme zu reduzieren,
werden im Abschnitt 3.2.1 vorgestellt.
3.1.2
Kollisionen
Kollisionen stellen in physikalischen Systemen, unabhängig welche Art von Kollisionen
simuliert werden sollen, aus folgenden Gründen ein Problem dar:
31
32
KAPITEL 3. MEHRKÖRPERSYSTEME
• In bzw. nach jedem Integrationsschritt muss auf aufgetretene Kollisionen geprüft
werden. Dadurch wächst der Rechenaufwand für jeden Integrationsschritt in O(n2 ),
da n Abstände zwischen n Partikeln überprüft werden müssen. Wie in Abschnitt
3.1.1 erläutert, ist dieses Laufzeitverhalten bei Simulationen von großen Systemen
nicht effizient genug.
• Kollisionen können, je nach Wert der Schrittweite und der Geschwindigkeit der Teilchen, unentdeckt bleiben. Dies ist der Fall, wenn sich Teilchen zwischen zwei Integrationsschritten vollständig durchdrungen haben. Dies widerspricht dem realen
Verhalten von z.B. Planetensystemen oder Autos. Um Fehler dieser Art in der Simulation zu vermeiden, muss eine geeigneter Wert für die Schrittweite in Abhängigkeit
der Geschwindigkeiten und Beschleunigungen gewählt werden. Dieser Wert muss
klein genug sein, damit sich Körper auch innerhalb eines Integrationsschritts nicht
vollständig durchdringen können.
Die folgende Betrachtung beschränkt sich auf ideal-elastische Stöße von starren und nicht
starren Körpern, da diese für die später verwendeten Modellsysteme von Bedeutung sind.
Bei ideal-elastischen Stößen ist die kinetische Energie der beteiligten Körper vor der Kollision gleich der kinetischen Energie nach der Kollision. Diese Eigenschaft muss in der
Simulation erhalten bleiben.
Unabhängig davon ergibt sich ein weiteres Problem bei der Kollision von starren Körpern,
da sich die Impulse bzw. die Geschwindigkeiten der beteiligten Körper abrupt ändern. Dies
stellt für die meisten numerischen Integrationsverfahren ein Problem dar, da die Funktionen von Orten und Geschwindigkeiten an diesen Stellen nicht mehr differenzierbar sind.
Da die Verfahren die Ableitungen dieser Funktionen verwenden (2.22), kann keine sinnvolle Näherung für die Geschwindigkeit und den Ort nach der Kollision berechnet werden,
wenn die Schrittweite nicht beliebig nahe bei 0 gewählt werden kann. Diese Näherung ist
aufgrund der endlichen Maschinengenauigkeit bei Computersimulationen nicht möglich.
Bei nicht-starren Körpern tritt dieses Problem nicht auf. Eine genauere Erklärung sowie
Lösungsansätze für die geschilderten Probleme finden sich in 3.2.2.
3.2
Lösungstrategien
Im folgenden werden einige generelle Lösungsstrategien für die Probleme aus Abschnitt
3.1 dargestellt.
3.2.1
Lösungsstrategien zur Aufwandsreduktion
Wie bereits in Abschnitt 3.1.1 erwähnt wurde, sind die meisten Wechselwirkungspotentiale
zwischen zwei Teilchen Funktionen ihres Abstands. Beispiele hierfür sind unter anderem
die Gravitation oder das Lennard-Jones-Potential.
Um die Anzahl der Potential- bzw. Kräfteauswertungen zu reduzieren, wird folgende Vereinfachung gemacht: Es werden nur Potentiale in der Kraftberechnung berücksichtigt, bei
denen der Abstand der beteiligten Partikel eine vorher festgelegte Schranke unterschreitet. Die Überlegung hierbei ist, dass die Energie des Potentials sonst zu gering ist, um
einen relevanten Einfluss auf das System auszuüben. Somit kann der in 3.1.1 beschriebene
rechnerische Aufwand reduziert werden. Allerdings führt dieser sogenannte cutoff von Potentialen und Kräften im System dazu, dass die Gesamtenergie verändert wird. Weiterhin
kann der cutoff dazu führen, dass die Gesamtenergie in einer Simulation nicht erhalten
bleibt. Diese Fehler sind vernachlässigbar, wenn der cutoff groß genug gewählt wird [18].
Außerdem schränkt diese Methode nur die Anzahl der Kräfteauswertungen ein. Es müssen
weiterhin alle O(n2 ) Abstände zwischen n Partikeln berechnet werden. Einen Lösungsansatz für dieses Problem bieten Algorithmen und Datenstrukturen die normalerweise zum
3.2. LÖSUNGSTRATEGIEN
33
Beschleunigen von Kollisionsabfragen verwendet werden. Beispiele sind Spatial Subdivision
[10], kd-Trees oder oriented bounding boxes [5]. Weitere Verfahren werden in [11], [5], [17]
beschriebenen. Allerdings ist nur die Broadphase 1 dieser Verfahren für die Reduzierung
der Abstandsberechnungen von Bedeutung.
3.2.2
Lösungsstrategie für Kollisionen
Die Anzahl der Kollisionsabfragen verringert sich durch die in Abschnitt 3.2.1 beschriebenen Verfahren. Die in 3.1.2 beschriebene Schwierigkeit bei der Wahl der Schrittweite lässt
sich nicht allgemein lösen. Sie muss in Abhängigkeit der Geschwindigkeiten so gewählt werden, dass Partikel sich nicht in einem Integrationsschritt vollständig durchdringen können.
Für das Problem der Kollision von starren Körpern wird in [13] eine Methodik vorgestellt,
die die Schwierigkeit der nicht stetig differenzierbaren Trajektorie löst.
Hierbei wird das System mit einem Gauß-Runge-Kutta-Verfahren integriert, bis ein Zusammenstoß (Überschneidung zweier Körper) aufgetreten ist. Der Zeitpunkt des Zusammenstoßes wird durch ein Bisektionverfahren bis auf eine festgelegte Genauigkeit aufgelöst.
Die Veränderung der Impulse wird anschließend über den Impulserhaltungssatz für idealelastische Stöße berechnet. Eine solche Vorgehensweise erhält die Impulse, Drehimpulse und die Energie des Systems, wenn das verwendete Integrationsverfahren diese exakt
erhält.
Bei nicht starren Körpern, die sich teilweise durchdringen dürfen, kann die Simulation von
Kollisionen über Zweikörperpotentiale erfolgen. Hierzu wird ein Potential definiert, welches
eine Kraft beschreibt, die zwei Körper auseinander drückt wenn sie sich überschneiden.
Die Form dieses Potentials bestimmt, wie weit sich Teilchen durchdringen können. Ein
solches Potential kann allgemein definiert werden als
(
f (dij ), dij ≤ (ri + rj )
U (dij ) =
.
(3.1)
0, dij ≥ (ri + rj )
Die Variable ri bezeichnet hierbei den Radius des Körpers i, dij den Abstand zwischen
den Körpern i und j. Die Funktion f (dij ) bezeichnet ein, für das Modellsystem, passend gewähltes Potential, welches mit abnehmendem Abstand dij schnell ansteigt und die
Körper so auseinander drückt. Diese Lösung ist energieerhaltend.
1
Broadphase bezeichnet das Vorgehen, möglichst viele Kollisionen von vornherein durch geringen Rechenaufwand ausschließen zu können.
34
KAPITEL 3. MEHRKÖRPERSYSTEME
Kapitel 4
Visualisierung
Um einen Teil der in den vorherigen Kapiteln entwickelten Theorie zu veranschaulichen,
wird ein in Echtzeit simuliertes Mehrkörpersystem in eine interaktive 3D-Umgebung integriert. Dadurch sollen Probleme bei der Simulation und das Verhalten von Integrationsmethoden auch für Betrachter ohne tiefere Kenntnis der Theorie deutlich gemacht werden.
Als Grundlage der Implementierung dient das Toolkit Project Wonderland [22]. In den
folgenden Abschnitten wird das simulierte Modellsystem spezifiziert und die entstandene
Programmstruktur beschrieben.
4.1
Wonderland
Als Visualisierungsplattform dient Project Wonderland der Firma Sun Microsystems, Inc.
Dabei handelt es sich um ein Open-Source Projekt mit dem virtuelle 3D-Welten aufgebaut
werden können. Es wird aus verschiedenen Gründen für diese Arbeit verwendet:
• Es basiert vollständig auf der universellen Programmiersprache Java und ist daher
portabel.
• Das Programm stellt einen großen Teil der Visualisierung, Benutzersteuerung, Netzwerkkommunikation und weitere wichtige Teile der Infrastruktur zur Verfügung. Dadurch kann man sich auf die Implementierung neuer Funktionalität konzentrieren.
• Da es sich um ein Open-Source Projekt handelt können alle Teile den eigenen Bedürfnissen angepasst werden.
Project Wonderland basiert auf dem Open-Source Gameserver Project Darkstar. Für
Details über die Struktur von Project Wonderland und Project Darkstar wird an dieser
Stelle auf [14], [22], [21] und [4] verwiesen.
In den beiden folgenden Abschnitten wird das Modellsystem vorgestellt und die Programmstruktur der Implementierung vorgestellt.
4.2
Modellsystem
Als Modellsystem wurde ein Würfel implementiert, der aus n × n × n Punktmassen, also
Partikeln ohne räumliche Ausdehnung, besteht.
Alle Partikel haben die gleiche Masse m und sind über ein Zweikörperpotential gekoppelt. Da in der Simulation nur Kräfte und keine Potentiale berechnet werden müssen,
35
36
KAPITEL 4. VISUALISIERUNG
Abbildung 4.1: Das abgebildete Modellsystem besteht aus 4 × 4 × 4 Punktmassen (hier Kugeln).
Diese sind paarweise über Kräfte (hier Stäbe) verbunden. Zur besseren Übersicht
wurden nur die äußeren Partikel mit ihren Wechselwirkungen dargestellt.
wird die Kraft definiert als
F (qi , qj ) = e · (rm − dij )2
qi − qj
, e ∈ R+ .
|qi − qj |
(4.1)
Hierbei ist dij der euklidische Abstand zwischen zwei Partikeln qi und qj . Der Parameter rm
gibt den Ruheabstand zwischen zwei Partikeln an, bei dem die Kraft 0 ist. Der Parameter
e ist ein linearer Skalierungsfaktor. Da es sich hierbei um eine Kraft handelt, die nur
zwischen verbundenen Partikeln wirkt, ist sie für alle nicht verbundenen Partikelpaare 0.
Der Würfel befindet sich in einem leeren Raum, der von Wänden umschlossen ist. In
diesem Raum wirkt ein homogenes Schwerefeld. Dieses Modellsystem wurde aus folgenden
Gründen gewählt:
• Es ist aufgrund der geringen Komplexität für einen Betrachter schnell zu begreifen.
• Die Implementierung und insbesondere die Visualisierung war in dem knappen Zeitrahmen der Arbeit zu bewältigen.
• Die Größe des Systems lässt eine Simulation in Echtzeit zu.
Kollisionen von Partikeln untereinander sind in diesem Modellsystem ausgeschlossen.
Allerdings kann eine Kollision von Partikeln mit den umgebenen Wänden auftreten. Dies
wird durch ein Wandpotential gelöst. Die durch das Potential definierte Kraft wirkt abstoßend auf jedes Teilchen, dass einen Abstand rw zu einer der Wände unterschreitet. Die
Kraft ist definiert als



k

· qi −w , falls d(qi , w) < rw
d(qi ,w)2 + |qi −w|
FW (qi ) =
(4.2)


0
sonst
Wenn ein Körper einen Abstand rw zu einer der umgebenen Wände w unterschreitet,
wirkt eine entgegengesetzte Kraft auf ihn. Diese wächst für einen Abstand d(qi , w) < 1
quadratisch. Der Parameter k ∈ R+ ist ein linearer Skalierungsfaktor der Kraft. Durch
die Konstante 0 < 1 wird verhindert, dass bei der Simulation eine Division durch 0
auftreten kann bzw. die Kraft zu groß und das Teilchen zu stark beschleunigt wird.
4.3. IMPLEMENTIERUNG
4.3
4.3.1
37
Implementierung
Aufbau des Partikelsystem
In diesem Abschnitt wird die Struktur des implementierten Partikelsystems beschrieben.
Ein Ziel der Implementierung war, dass das System einfach zu verändern und zu erweitern
ist. Dies betrifft vor allem die Kräfte, die Partikel und das verwendete numerische Integrationsverfahren. Um dies zu gewährleisten wurden für die Kräfte und das Integrationsverfahren Java-Interfaces definiert. Im folgenden wird die entstandene Programmstruktur
beschrieben.
Kräfte
Jede implementierte Kraft enthält eine Variable vom Typ Vector,die Objekte vom Typ
Particle enthält. Nur auf diese Objekte wirkt die Kraft. Das Interface Forces, das jede
neue Kraft implementieren muss, enthält zwei Funktionsprototypen:
• void addParticle(Particle p). Über diese Funktion werden Partikel einer Kraft
hinzugefügt.
• void calculateForce(). Diese Funktion berechnet für jeden Partikel die auf ihn
wirkende Kraft und addiert diese auf Gesamtkraft, die auf den Partikel wirkt.
Integrationsverfahren
Jedes verwendete Integrationsverfahren benötigt die Partikel des Systems. Außerdem muss
das Java-Interface Integrator implementiert werden. Dieses definiert die Funktion void
nextStep(double h). Beim Aufruf dieser Funktion muss das Integrationsverfahren einen
Integrationsschritt der Länge h machen. Der Parameter wird normalerweise vor dem Start
einer Simulation vom Benutzer fest gewählt.
In der Implementierung wurde das Velocity-Verlet-Verfahren benutzt, um das Modellsystem zu berechnen.
Partikel
Jedes Partikel des Systems wird als Objekt vom Typ Particle implementiert. Jedes dieser
Objekte enthält:
• eine eindeutige ID id
• seine Masse m
• seinen Radius r
• die aktuelle und die vorangegangene Position qn und qn−1
• die aktuelle und die vorangegangene Geschwindigkeit vn und vn−1
• die aktuelle und die vorangegangene Kraft Fid (qn ) und Fid (qn−1 )
Da nur die Orte und Geschwindigkeiten eines vorangegangen Integrationsschritts gespeichert werden, ist bisher nur die Verwendung von Einschrittverfahen möglich.
Partikelsystem
Alle Partikel, Kräfte und das verwendete Integrationsverfahren werden in dem Objekt
ParticleSystem kombiniert. Hier wird das gesamte Mehrkörpersystem inklusive aller
Kräfte und des Integrationsverfahrens initalisiert. Außerdem werden in dieser Klasse die
Partikel den entsprechenden Kräften zugeordnet.
38
4.3.2
KAPITEL 4. VISUALISIERUNG
Client-Server Kommunikation
Um die Simulation des Mehrkörpersystems auf den Clients darstellen zu können, müssen
die Positionen der Partikel den Clients mitgeteilt werden. Bei dieser Visualisierung werden zusätzlich auch die Geschwindigkeiten aller Teilchen übertragen. Außerdem müssen
Benutzeraktionen an den Server übertragen werden, damit dieser in geeigneter Weise reagieren kann.
Bei die hier beschriebene Implementierung benutzt zur Kommunikation von der Oberklasse CellMessage abgeleitete Klassen. Eine genaue Beschreibung der Funktionalität dieser
Oberklasse kann [20] entnommen werden.
An dieser Stelle soll nur erwähnt werden, dass der Server nach jedem Integrationsschritt
alle Positionen und alle Geschwindigkeiten in Form von Floatwerten an alle Clients sendet.
Dazu dient die ParticleCellUpdateMessage Klasse.
Benutzeraktionen werden vom Client über ParticleControllMessage-Objekte an den
Server geschickt. In der gegenwärtigen Implementierung können Benutzer die Simulation
anhalten sowie neu starten. Diese Aktionen werden durch in Textform in den MessageObjekten kodiert.
4.3.3
Darstellung des Modellsystems
Das Modellsystem wurde, wie in Abbildung 4.1 zusehen ist, als einfaches Kugel-StabModell dargestellt. Die Farben der Kugeln sollen einen Eindruck für ihre momentane
Geschwindigkeit vermitteln 1 . Diese Darstellung beruht auf der Darstellung aus [14] und
wurde gewählt, da sie mit geringem Aufwand implementierbar ist und ausreicht, um die
wichtigsten Teile des Modellsystem anschaulich zu visualisieren. Eine weitere wichtige Anforderung die Visualisierungen ist die flüssige Darstellung der Simulation, da Sprünge oder
Verzögerungen in der Darstellung dem Beobachter ein falsches Verhalten des simulierten
Systems vermitteln. Um dies zu vermeiden, werden die vom Server geschickten Nachrichten
auf dem Client in eine Queue geschrieben. Erst wenn die Queue eine gewisse Größe erreicht
hat, werden Nachrichten daraus gelesen und entfernt. Durch dieses Vorgehen haben kurze
Verzögerungen bei der Datenübertragung vom Server zum Client keinen Einfluss auf die
Darstellung. Falls eine Verzögerungen so lang sind, dass die Queue in dieser Zeit geleert
wird, ist eine flüssige Darstellung nicht möglich.
Da die berechneten Zeitpunkte und Geschwindigkeiten diskrete Zustände darstellen, würde
das System in der Darstellung von einem Zustand i in den nächsten Zustand i + 1 “springen” statt sich dahin zu entwickeln. Dies widerspricht der gewohnten Wahrnehmung von
Bewegungen und sollte daher vermieden werden. Dafür muss die Bewegung der Partikel
von den Positionen q i zu q i+1 in der Visualisierung durch eine gradlinige Bewegung interpoliert werden. Dies gilt auch für die Zylinder, mit denen die Bindungen dargestellt
werden. Um dies zu erreichen wurden Interpolatoren-Objekte verwendet. Diese gehören
zur Java3D API, auf der die gesamte Darstellung von Project Wonderland beruht. Details
dieser Funktionalität können [3] entnommen werden.
4.3.4
Programmsteuerung
An dieser Stelle soll kurz die Benutzerinteraktion mit der Simulation geschildert werden.
Benutzer haben die Möglichkeit in die Simulation einzugreifen. In der augenblicklichen Implementierung beschränkt sich diese Interaktivität auf das pausieren und das Neustarten
der Simulation und damit der Darstellung. Allerdings bringen diese Funktionalitäten das
Problem mit, dass sie vom ausführenden Client über den Server zu allen anderen Clients
1
Ruhende Partikel werden blau dargestellt, je höher die Geschwindigkeit eines Partikels ist, umso mehr
ins Rote verschoben ist seine Farbe
4.3. IMPLEMENTIERUNG
39
weitergeleitet werden muss. Außerdem soll der Benutzer nicht zu lange auf eine von ihm
getätigte Aktion warten müssen, da sonst das Gefühl der Interaktivität verloren geht.
Am Beispiel der Benutzeraktion “Simulation neu starten” wird erläutert, wie diese Schwierigleiten glöst wurden: Die Ausführung dieses Befehls (hier Drücken der Taste ’r’) führt zu
einem sofortigen Löschen der Queue (4.3.3), was wiederum zu einem Anhalten der Visualisierung führt. Außerdem werden alle weiteren ankommenden Updates der Positionen der
Teilchen ignoriert. Erst danach wird eine Nachricht gesendet, die dem Server signalisiert
die Simulation neu zustarten.
Wenn der Server diese Nachricht erhält, wird eine Flag gesetzt die verhindert, dass während
der Phase des Neustarts ein anderer Client den Server neustarten kann. Anschließend wird
eine Nachricht an alle Clients gesendet, die daraufhin ihre Queue löschen und keine weiteren Positionsupdates des Servers akzeptieren. Erst danach wird das System neu gestartet.
Als letztes sendet der Server allen Clients die Nachricht, dass der Vorgang des Neustartens abgeschlossen ist. Diese akzeptieren daraufhin wieder Positionsnachrichten und die
Darstellung läuft wie gewohnt ab 4.3.3.
40
KAPITEL 4. VISUALISIERUNG
Kapitel 5
Zusammenfassung
In dieser Arbeit wurde die Funktionsweise von numerischen Integrationsverfahren anhand
von Beispielen untersucht und visualisiert. Als Modellsystem diente in den theoretischen
Betrachtungen und den numerischen Experimenten das mathematische Pendel. Dabei
wurde deutlich, dass sowohl das explizite als auch das implizite Eulerverfahren für Simulationen aufgrund ihrer Energieerhaltungseigenschaften ungeeignet sind. Das VelocityVerlet-Verfahren eignet sich dagegen für längere Simulation von physikalischen Systemen.
Nachdem das Velocity-Verlet-Verfahren als Integrationsverfahren für die spätere Visualisierung identifiziert worden war, wurde in Kapitel 3 beschrieben, welche zusätzlichen
Schwierigkeiten bei der Simulation von Mehrkörpersystemen im Vergleich zu Einkörpersystemen auftreten können. Diese betrafen das Laufzeitverhalten und das Auftreten von
Kollisionen. Für diese Probleme wurden Lösungsansätze beschrieben, die hauptsächlich
aus dem Bereich der Kollisionserkennung stammen. Nach dieser ausführlichen theoretischen Betrachtung von Mehrkörpersystemen und Integrationsverfahren, wurde in Kapitel
4 die Visualisierung eines Mehrkörpersystems in einer virtuellen 3D-Umgebung beschrieben. Dabei wurde ein interaktives System geschaffen, welches sich zur dreidimensionalen
Darstellung von physikalischen Systemen und deren Berechnung in Project Wonderland
eignet. Mit diesem System kann das Verhalten von physikalischen System und insbesondere von Integrationsverfahren anschaulich dargestellt werden. Zusätzlich kann das System
verändert und einfach erweitert werden.
41
42
KAPITEL 5. ZUSAMMENFASSUNG
Literaturverzeichnis
[1] A.Quarteroni, R.Sacco, and F.Saleri. Numerische Mathematik 2. Springer Verlag,
2000.
[2] Eric Barth, Krzysztof Kuczera, Benedict Leimkuhler, and Robert D. Skeel. Algorithms for constrained molecular dynamics. Journal of Computational Chemistry,
16:pp 1192–1209, 1995.
[3] Dennis J. Bouvier. Getting Started with the Java 3D API - A Tutorial for Beginners.
Sun Microsystems, Inc., 1999.
[4] Brendan Burns. Darkstar: The Java Game Server. O’Reilly, 2007.
[5] Ming C.Lin, Dinesh Manocha, Jon Cohen, and Stefan Gottschalk. Collision detection:
Algoritms and applications.
[6] Peter Deuflhard. Newton Methods for Nonlinear Problems: Affine Invariance and
Adaptive Algorithms. Springer Verlag, 2004.
[7] D.Frenkel and B.Smit. Understanding Molecular Simulation: From Algorithms to
Applications. Academic Press, 2002.
[8] E.Hairer, C.Lubich, and G.Wanner. Geometric Numerical Integration: StructurePreserving Algorithms for Ordinary Differential Equations. Springer Verlag, 2002.
[9] Forsythe, G. E., M. A. Malcolm, and C. B. Moler. Computer Methods for Mathematical Computations. Prentice-Hall, 1976.
[10] Scott Le Grand. Broad-phase collision detection with cuda. 2007.
[11] Takahiro Harada. Real-time rigid body simulation on gpus. 2007.
[12] Dr. Carsten Hartmann. persönliche Korrespondenz.
[13] Galina Kalibaeva, Michele Di Pierro, Giovanni Ciccotti, Carsten Hartmann, and Christof Schütte. Fast simulation of polymer chains. 2008.
[14] Uwe Kamper. 3D-Visualisierung und Simulation von Biomolekülen innerhalb der
3D-Umgebung Project Wonderland. 2008.
[15] lars Nyland, Mark Harris, and Jan Prins. Fast n-body simulation with CUDA. 2007.
[16] Benedict Leimkuhler and Sebastian Reich. Simulating Hamiltonian Dynamics. Cambridge University Press, 2004.
[17] Rodrigo G. Luque, Jo ao L. D. Comba, and Carla M. D. S. Freitas. Broad-phase
collision detection using semi-adjusting bsp-trees.
43
44
LITERATURVERZEICHNIS
[18] M.Griebel, S.Knapek, G.Zumbusch, and A.Caglar. Numerische Simulation in der
Moleküldynamik. Springer Verlag, 2004.
[19] M.Hermann. Numerik gewöhnlicher Differentialgleichungen.
schaftsverlag, 2004.
Oldenburg Wissen-
[20] Jordan Slott.
Extending project wonderland by creating new cell types.
http://wiki.java.net/bin/view/Javadesktop/ProjectWonderlandNewCell, July 2008.
[21] Sun Microsystems, Inc. Project darkstar. http://projectdarkstar.com/.
[22] Sun Microsystems, Inc. Project wonderland: Toolkit for building 3d virtual worlds.
https://lg3d-wonderland.dev.java.net/, 2008.
[23] Martin Usoh, Christina Alberto, and Mel Slater. Presence: Experiments in the psychology of virtual environments.
Herunterladen