Interaktive Visualisierung der Entstehung der Sterne Diplomarbeit

Transcrição

Interaktive Visualisierung der Entstehung der Sterne Diplomarbeit
Fachbereich 4: Informatik
Interaktive Visualisierung der
Entstehung der Sterne
Diplomarbeit
zur Erlangung des Grades eines Diplom-Informatikers
im Studiengang Computervisualistik
vorgelegt von
Nicole Wewior
Erstgutachter:
Prof. Dr.-Ing. Stefan Müller
(Institut für Computervisualistik, AG Computergraphik)
Zweitgutachter:
Dipl.-Inform. Diana Röttger
(Institut für Computervisualistik, AG Computergraphik)
Koblenz, im Juli 2010
Erklärung
Ich versichere, dass ich die vorliegende Arbeit selbständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel benutzt habe.
Ja
Nein
Mit der Einstellung der Arbeit in die Bibliothek bin ich einverstanden.
Der Veröffentlichung dieser Arbeit im Internet stimme ich zu.
.................................................................................
(Ort, Datum)
(Unterschrift)
i
Inhaltsverzeichnis
1
Einleitung
1
2
Entstehung von Sternen
2.1 Interstellare Molekülwolken . . . . . . . . . . . . . . . . . . .
2.2 Entstehung eines Protosterns . . . . . . . . . . . . . . . . . .
2.3 Evolution zum Hauptreihenstern . . . . . . . . . . . . . . . .
2
3
6
8
3
Simulation des Entstehungsvorgangs
3.1 Modellannahmen . . . . . . . . . . . . . . . . . . . .
3.2 Modellierung und Darstellung einer Gaswolke . . .
3.2.1 Ansätze zur Modellierung von Gasen . . . .
3.2.2 Darstellung der interstellarer Molekülwolke
3.2.3 Modellierung der Verdichtungsgebiete . . .
3.3 Entstehung eines Sternes . . . . . . . . . . . . . . . .
3.3.1 Bewegung der Partikel . . . . . . . . . . . . .
3.3.2 Entwicklung zum Stern . . . . . . . . . . . .
3.3.3 Kernfusion . . . . . . . . . . . . . . . . . . . .
4
Programm ’Starformator’
4.1 Oberflächenmodellierung . . .
4.2 Interaktion . . . . . . . . . . . .
4.2.1 Direkte Methoden . . .
4.2.2 Indirekte Methoden . .
4.3 Klassen . . . . . . . . . . . . . .
4.3.1 Klasse gldisplay . . . . .
4.3.2 Klassen Cluster und Star
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
12
14
14
16
17
19
19
23
25
.
.
.
.
.
.
.
26
27
29
29
31
33
33
38
5
Bewertung des Programmes
39
6
Zusammenfassung
43
7
Ausblick
44
ii
1
Einleitung
Die Erforschung der Vorgänge in unserem Universum ist eines der interessantesten Gebiete der Physik. Zu ihnen gehören unter anderem die Entstehung von Galaxien, Sternen und Planetensystemen, oder die Expansion
des Universums, welche aus der Urknalltheorie folgt.
Leider ist die Beobachtung solcher Vorgänge in ihrer Gänze nicht möglich,
da sie mehrere Millionen Jahre dauern.
Diese Arbeit beschäftigt sich mit der Simulation der Entstehung von
Sternen, angefangen bei der Verdichtung und dem gravitationsbedingten
Kollaps der interstellaren Molekülwolke bis hin zur Entstehung von spezifischen Sternen und deren Zuordnung zu Spektralklassen.
Ziel der Arbeit ist es, ein Programm zu entwickeln, mit dem die Entstehung von Sternen auf Basis einer Simulation interaktiv erforscht werden
kann.
Hierbei liegt besonderes Augenmerk auf der Darstellung der Molekülwolke und der Bewegung der Partikel, welche diese Wolke ausmachen.
Das Kapitel 2 der Arbeit befasst sich zunächst mit den astrophysikalischen Grundlagen und den verschiedenen Phasen der Sternentstehung.
Ziel ist es, den Vorgang, welcher visualisiert werden soll, genauer zu beschreiben um aus diesen Informationen dann ein zur Simulation geeignetes Modell zu extrahieren.
Das Kapitel 3 behandelt Methoden und Modelle zur Umsetzung der
physikalischen Fakten in eine interaktive Simulation, während Kapitel 4
die Klassen und Methoden der entstandenen Software beschreibt, ihre Bedienung und interaktive Möglichkeiten erläutert.
Die in Kapitel 3 aufgeführten Methoden umfassen vor allem die möglichst
physikalisch plausible Darstellung und Bewegung der Partikel innerhalb
einer interstellaren Molekülwolke.
Die Bewertung der Ergebnisse, welche das entstandene Programm liefert, wird in Kapitel 5 betrachtet. Hierbei wird versucht, die physikalische
Plausibilität anhand von Bildern und Beobachtungen zu ermitteln, da eine
Beobachtung des Phänomens Sternentstehung nicht möglich ist.
Letztendlich fasst Kapitel 6 die Arbeit zusammen und gibt einen Ausblick auf mögliche Verbesserungen der Simulation.
1
2
Entstehung von Sternen
Abbildung 1: M83 Pinwheel, Oktober 2009 [11]
Für die Vorgänge im Universum ist Zeit ein sehr relativer Begriff. Die
Entstehung eines Sternes allein benötigt Millionen von Jahren - ganz zu
schweigen von der Entstehung eines ganzen Planetensystemes. Ähnliches
gilt für den Raum welchen eine solche Molekülwolke, der Geburtsort eines Sternes, einnehmen kann - er beträgt mehrere Lichtjahre (ein Lichtjahr
hat eine Länge von ca. 9· 1012 km). Im Weltall sind solche Entfernungen von
mehreren Millionen Kilometern noch klein.
Beobachtungen einzelner Phasen eines solchen Prozesses, dank Teleskopen wie Hubble [15], ermöglichen es der Wissenschaft, fundierte Theorien über diverse Vorgänge aufzustellen, wie etwa für die Entstehung des
Universums die Big-Bang-Theory - die Theorie des Urknalls.
Gerade Hubble hat den Astronomen auch aufschlussreiche Bilder über die
Entstehung von Sternen geliefert. (Abb. 1, [11])
Als Basis für diese Diplomarbeit soll im folgenden die allgemeine Theorie der Sternentstehung, wie zum Beispiel von Stahler [16] oder Hermann
[5], beschrieben werden. Sie geht davon aus, dass eine Wolke unter bestimmten Voraussetzungen (Druck, Temperatur) durch ihre Gravitation kollabiert.
Auf die genauen Zusammenhänge zwischen einzelnen Übergängen, in
Form von physikalischen Formeln und Gesetzen, wird in Kapitel 3 eingegangen.
2
Abbildung 2: Helle Spiralgalaxie M81 von Hubble, 2007 ([8])
2.1
Interstellare Molekülwolken
Interstellare Molekülwolken werden auch interstellare Materie oder einfach Nebel genannt. Abbildung 3 zeigt ein Beispiel für eine solche Molekülwolke, den Geburtsorten der Sterne. Das Bild ist eine Komposition verschiedener Aufnahmen der ACS - Advanced Camera for Surveys - des Hubble
Teleskops [9]
Eine solche Komposition ist notwendig, da die Partikel im sichtbaren Licht
nicht wahrnehmbar sind.
Ein solcher Nebel hat im Schnitt eine Größe von mehreren hundert
Lichtjahren - das sind etwa 1016 km - und besteht zu 99% aus Wasserstoff und Spuren anderer Gase wie Helium und Lithium und zu 1 % aus
Staubpartikeln. Diese Partikel sind es letztendlich auch, welche durch Sterne emittierte Strahlung absorbieren und wieder emittieren und sie somit
weiterleiten und für uns sichtbar machen.
In diesen interstellaren Wolken herrscht ein Gleichgewicht der Kräfte.
Auf der einen Seite steht die Gravitation wie sie Newton beschrieben hat
[5]:
„Alle Massen im Weltall ziehen sich gegenseitig an.“
Auf der anderen Seite stehen die Kräfte, welche die Partikel auseinander
3
Abbildung 3: Galaxy Cluster Abell 1689, August 2008 ([9])
treiben. Hierzu gehören unter anderem die durch Bewegung induzierten
Kräfte (Impulskraft, Fliehkraft) und der Gasdruck. Zusammenfassend nennt
man diese Kräfte auch Gaskräfte. [2]
In diesen Wolken entsteht allerdings nicht nur ein Stern allein. Sie bieten Material für hunderte oder tausende neue Sterne, die alle miteinander
in Wechselwirkung stehen, sei es durch Gravitation, oder durch Winde auf
der Oberfläche von Sternen, die die Partikel in der Wolke beeinflussen.
Ob eine interstellare Wolke überhaupt kollabieren kann und somit Sterne entstehen, beschreibt das so genannte Jeanskriterium, benannt nach James Jeans. [2] Eine Instabilität tritt auf, wenn die Gravitationskräfte die
Gaskräfte übersteigen. Jeans Kriterium besagt, das ein Kollaps eintritt, sobald die Masse der Wolke einen kritischen Punkt überschreitet - die kritische
Jeansmasse.
M>
5kT R
µmg
k = Boltzmannkonstante
T = Temperatur
4
R= Radius
g = Gravitationskonstante
µ = Molare Masse
Angaben über größere Massen, wie etwa von Sternen oder Wolken,
werden in der Astronomie oft als Sonnenmasse angegeben, um sie mit unserer - sehr durchschnittlichen - Sonne besser vergleichen zu können. Eine
Sonnenmasse beträgt 1.9 · 1030 kg.
5
2.2
Entstehung eines Protosterns
Um eine Molekülwolke, welche das Jeanskriterium erfüllt, aus ihrem Gleichgewicht zu bringen, braucht es nicht viel Kraft. Es ist jedoch noch nicht
genau erforscht, wie diese Kräfte zustande kommen. Zum Beispiel könnte
der Kollaps durch eine Schockwelle induziert werden, die durch die Supernova eines Sterns verursacht wird, ebenso könnten Magnetfelder oder
Winde mögliche Ursachen sein. [19]
Durch diese Kräfte fragmentiert sich die Wolke zunächst. Es entstehen
Verdichtungsgebiete - die Globule [5]. In ihnen steigen Gasdruck und Dichte an.
Kann die so frei gewordene Strahlungsenergie noch abgegeben werden,
bleibt die Temperatur in den Verdichtungsgebieten etwa gleich und somit
sinkt die kritische Jeansmasse. Das Fragment kollabiert in seinem Zentrum.
[4]
Betrachten wir im Weiteren einen einzelnen Stern:
Einmal aus dem Gleichgewicht, kollabiert das Fragment der Wolke von
innen nach außen und verdichtet sich dabei zu einem Kern, der aufgrund
der Drehimpulserhaltung immer schneller rotiert, sobald Partikel auftreffen und ihre Geschwindigkeit und Kraft übertragen.
Im Inneren des Kerns steigt die Temperatur mit größer werdender Dichte so, dass keine Strahlung mehr entweichen kann. Der Druck im Kern
steigt ebenfalls und gleicht somit die Gravitation aus. Der Kern und seine Dichte sind nun stabil. Von außen fallen aber weiterhin Gasteilchen ein
und lagern sich an der Oberfläche an. Diese Gasteilchen geben Strahlung
ab und kühlen so von etwa 1 · 106 Kelvin auf ca. 100 Kelvin ab.
Dies hat zwei Effekte: Zum einen beginnt der Stern auf diese Weise zu
leuchten. Die Strahlung wird von Staubpartikeln, die in der Wolke vorhanden sind, absorbiert und reemittiert, bis sie irgendwann auch im sichtbaren
Bereich liegt. Dieser Vorgang erklärt auch die hohe Leutkraft junger Sterne.
Momentan können Astronomen in Abell 1689 einige der hellsten jungen
Sterne beobachten. [9]
Zum anderen setzt durch den Temperaturunterschied zwischen Oberfläche und Kern - der nun eine Temperatur von mehreren tausend Kelvin
hat - die Konvektion ein.
6
Bei der Konvektion wandern heiße Gasmassen aus dem Gasinneren an
die Oberfläche. Die kühleren Gasmassen der Oberfläche ’fallen’ in Richtung des Kernes, wo sie aufgeheizt werden und ihrerseits aufsteigen.
Im Kern ist die Temperatur nun so hoch, dass die Fusion des wenigen
Deuteriums (schwerer Wasserstoff), welches in der interstellaren Materie
vorkommt, stattfindet. Ab diesem Punkt hat der zukünftige Stern das Stadium eines Protosterns erreicht.
Durch das Umwälzen der Gase - heiße Gase strömen an die Oberfläche,
kühlere Gase zum Kern - bläht sich der Stern weiter auf.
7
2.3
Evolution zum Hauptreihenstern
Irgendwann lagert sich keine Masse mehr am Stern an. Entweder wurden
die Reste des Verdichtungsgebietes von Winden verweht oder alle Materie,
deren Gasdruck kleiner als die Gravitation des Sternes ist, wurde bereits
angezogen und abgelagert.
Bleibt interstellare Materie in der Umlaufbahn des Sternes - d.h. die
Gravitation ist zu schwach, um diese Partikel anzuziehen, aber stark genug um die Materie zu hindern sich vom Stern weg zu bewegen - ist dies
der Ort an dem potentiell Planeten entstehen können. [13]
Besitzt der Stern nun lediglich eine Masse von weniger als 0.8 Sonnenmassen ist er nicht in der Lage, genügend Kerntemperatur zu erzeugen,
um Wasserstoff zu fusionieren. Er wird als brauner Zwerg bezeichnet.
Ist die Masse des Sternes jedoch zu hoch (mehr als 100 Sonnenmassen),
wird er instabil und kann keine Hülle halten. Das sind so genannte WolfRayet Sterne. Der massereichste Stern unserer Milchstrasse ist η Carinae mit
100 Sonnenmassen. [5]
Für Sterne zwischen 0.8 und 100 Sonnenmassen ist die Temperatur im
Kern hoch genug, dass auch andere Partikel außer Deuterium miteinander
verschmelzen können - angefangen bei normalem Wasserstoff. Während
eines solchen Vorgangs schrumpft der Stern nun wieder.
Abbildung 4: Hertzsprung-Russel-Diagramm
8
Ab dem Punkt der Wasserstofffusion ist ein Stern als Hauptreihenstern
deklariert. Die meisten Sterne im Universum lassen sich im HertzsprungRussel-Diagramm [Abb. 4] [5] in die so genannte Hauptreihe einordnen daher auch die Deklaration Hauptreihenstern.
Im Herzsprung-Russel-Diagramm setzt man Sterne anhand ihrer absoluten Helligkeit oder ihrer Leuchtkraft im Verhältnis zur Sonne in Bezug zur
Spektralklasse oder der Oberflächentemperatur des Sternes und trägt dies
in ein Diagramm ein.
Man stellt fest, dass sich die Mehrzahl der Sterne in einer Reihe anordnet - die Hauptreihe.[5]
Grob lassen sich Hauptreihensterne in folgende Spektralklassen einteilen (Tabelle 1):
Klasse
O
B
A
F
G
K
M
Oberflächentemperatur
> 30.000 K
10.000 K - 30.000 K
7500 K - 10.000 K
6000 K - 7500 K
5000 K - 6000 K
3500 K - 5000 K
2000 K - 3500 K
Farbe
Blau
Blau
Weiß
Weiß-Gelb
Gelb
Orange
Rot
Tabelle 1: Oberflächentemperaturen der Spektralklassen
Sterne mit einer Oberflächentemperatur von weniger als 2000 Kelvin
haben üblicherweise eine zu geringe Kerntemperatur, um Wasserstoff zu
fusionieren und fallen in die Kategorie Brauner Zwerg mit ihren Spektralklassen L und T (Rot).
In der weiteren Entwicklung werden sich im Stern Fusions- und Konvektionsphasen solange abwechseln, bis keine weitere Fusion möglich ist.
Dies geschieht entweder wenn die Kerntemperatur aufgrund zu geringer
Masse nicht ausreicht, um weitere Materie zu fusionieren, oder wenn der
Kern des Sternes aus Eisen besteht (massereiche Sterne).
Erstere expandieren zunächst zu roten Riesen, stoßen ihre Hülle ab und
beenden ihr Leben als weiße Zwerge [Abb. 4].
Massereiche Sterne hingegen, welche alle leichten Elemente in ihrem
9
Kern zu Eisen verbrannt haben, können verschiedene Endstadien erreichen.
Sie können nach dem Abstoßen der Masse durch eine Supernova entweder ebenfalls zum weißen Zwerg werden, oder bei höherer Masse zu einem Neutronenstern (Pulsar) oder schwarzem Loch, wobei Physiker über die
Existenz schwarzer Löcher momentan nur spekulieren können. Es war bisher nicht möglich, die Existenz eines Schwarzen Loches eindeutig zu beweisen bzw. eines zu beobachten.
Abbildung 5: fast unsichtbare Auswirkungen des Todes eines massereichen Sternes, 2006 ([7])
10
3
Simulation des Entstehungsvorgangs
Die Entstehung von Sternen ist, wie in Kapitel 2 beschrieben, ein komplexer
Vorgang, welcher noch immer nicht vollständig erforscht ist. Aus diesem
Grund wird es zunächst notwendig, Einschränkungen zu treffen (Kapitel
3.1). Abbildung 6 zeigt in einem vereinfachten Diagramm die Entstehung
der Sterne.
Abbildung 6: Vereinfachtes Modell der Sternentstehung
Aus diesem Diagramm kann nun ein Modell abgeleitet werden, was
sich in einem Programm beschreiben lässt (Abb. 7).
11
Abbildung 7: Entstehung der Sterne zusammengefasst in einem Statechart
3.1
Modellannahmen
Im vorherigen Kapitel wurde die astrophysikalische Seite der Sternentstehung beleuchtet. Der aktuelle Stand der Forschung weist allerdings noch
Lücken auf, weswegen für die Simulation Einschränkungen getroffen werden müssen, weitere Einschränkungen ergeben sich aus Rechenleistung,
wie etwa die Darstellung der Wolke durch ein Grid, anstelle einzelner Partikel und zeitlicher Beschränkungen.
12
Die erste Einschränkung betrifft die Entstehung der Verdichtungsgebiete. Welche genauen Kräfte, wie stark sie einwirken und woher diese Kräfte
kommen ist noch ungeklärt. Es existieren wie beschrieben lediglich Vermutungen.
In dieser Simulation können Verdichtungsgebiete durch Zugabe von
Masse durch den Nutzer definiert werden
Eine weitere Einschränkung müssen wir in Bezug auf die Impulserhaltung treffen. Physikalisch gesehen müsste sich die Geschwindigkeit eines
Partikels auf den Stern übertragen, wenn es auf diesen trifft. Rein rechnerisch würde dieser Impuls aber so stark werden, das er den Stern zerreißt. [13] Da offensichtlich Sterne existieren, muss der Drehimpuls durch
irgend etwas vermindert werden. Erste Theorien gehen davon aus, dass
unter anderem eine Kombination von magnetischer Bremsung, Fragmentation duch Kollaps, Reibung und polare Massenausflüsse (Jets) dies verursacht. [13]
Die genauen physikalischen Zusammenhänge, die für eine Simulation
notwendig wären, sind leider noch nicht bekannt, so dass der Impuls hier
vernachlässigt wird.
Die nächste Einschränkung betrifft die Zusammensetzung der Wolke.
Zu 98% besteht diese aus Wasserstoff, dessen molare Masse bei etwa
1, 00794· 10−3 g liegt. Da die genaue Zusammensetzung der restlichen 2%
nicht bekannt ist, aber zur Berechnung der Masse der Wolke und der Masse des Sterns notwendig ist, wird für diese Simulation angenommen, dass
alle Partikel der Wolke die molare Masse von Wasserstoff besitzen.
Der Fokus der Visualisierung liegt in dieser Arbeit auf der Bewegung
der Partikel der Wolke und der daraus entstehenden, stetig wachsenden
Sterne, bis keine Masse mehr zur Verfügung steht oder ein Gleichgewicht
erreicht ist. Die Vorgänge im Inneren eines Sterns (die Konvektion) werden
hier nicht simuliert.
Eine Anzeige der inneren und effektiven Temperatur wird im Eigenschaftsfenster eines Sterns zur Verfügung gestellt.
Die letzte Einschränkung betrifft die zeitliche Dimension. Die Zeit der
Entwicklung des Sternes von der Wolke bis zum Hauptreihenstern beträgt
etwa 30 Mrd. Jahre. Eine Echtzeitdarstellung ist aus diesem Grund natürlich nicht möglich.
13
3.2
Modellierung und Darstellung einer Gaswolke
Eine interstellare Wolke besteht, wie bereits beschrieben, aus Gas. Im Gegensatz zu festen Körpern oder Flüssigkeiten hängen die Moleküle in einer
Wolke nicht fest zusammen. Sie hat außerdem auch keine feste geometrische Struktur. Jedes Molekül eines Gases kann sich somit frei bewegen.
Die Masse einer Molekülwolke beträgt mehrere Sonnenmassen - also
mehr als 1031 kg - [5] was bei der molaren Masse von Wasserstoff
1, 00794· 10−3 g bedeutet, dass mehrere Milliarden von Molekülen (Im folgenden auch als Partikel bezeichnet) betrachten werden müssen.
3.2.1
Ansätze zur Modellierung von Gasen
Bei der Simulation einer Wolke sind hauptsächlich zwei Probleme zu lösen:
Zum einen die Darstellung der Wolke und zum anderen die Berechnung der Bewegung der einzelnen Partikel, die das Gas der Wolke bilden.
[14] beschreibt für das Problem der Modellierung von Gas drei Ansätze:
Abbildung 8: Ansatz Particle Based
Particle Based
Für den Particle Based Ansatz wird jedes Partikel als eigenständiges Objekt betrachtet. Jedem einzelnen Teilchen werden Attribute wie Masse oder
Geschwindigkeit zugeordnet.
Berechnungen der Bewegung innerhalb eines Gases erfolgen nun durch
das direkte Bewegen und Verfolgen jedes einzelnen Teilchens.
Diese Methode bietet eine exakte Repräsentation der physikalischen
Zusammenhänge. Damit eine Wolke aber auch optisch als solche zu erken14
nen ist, muss eine sehr große Anzahl an Partikeln betrachtet werden, was
sich auf die Performance und Leistung der Simulation niederschlägt.
Grid Based
Bei dieser Methode wird die Szene in ein gleichmäßiges Grid unterteilt.
Innerhalb eines Abschnitts werden für die Darstellung Attribute der Wolke
wie Dichte und Geschwindigkeit als konstant angenommen und für jeden
Grid wird Geschwindigkeit und einwirkende Kraft fest definiert.
Bewegungen der Teilchen des Gases werden modelliert, indem man
den Austausch von Partikeln zwischen zwei Grids anhand der dort vorherrschenden Kraft und Geschwindigkeit berechnet.
Vorteil dieser Methode ist es, das nicht jedes Partikel einzeln berechnet
werden muss, sondern immer eine Menge von Teilchen betrachtet wird.
Die Genauigkeit der Simulation hängt hier aber stark von der Feinheit des
Grids und der jedem Grid zugeteilten Werte für Kraft und Geschwindigkeit ab.
Abbildung 9: Zwei Gridvarianten für eine Wolke
Abbildung 9 zeigt zwei mögliche Grids für eine Wolke. In der gröberen
Aufteilung A geht verloren, dass sich in der Mitte der Wolke Masse zusammenballt. Für Aufteilung B wäre der Rechenaufwand höher.
Hybrid Die Hybrid Variante stellt eine Kombination aus der Particle Based
und Grid Based Methode dar.
15
Dieser Ansatz nutzt den Vorteil eines Grids, um nicht jedes Partikel einzeln betrachten zu müssen. Im Gegensatz zur Grid Based Methode werden
Kraft und Geschwindigkeit nicht für ein Grid festgelegt, sondern ändern
sich mit dem Partikelfluss. Die Teilchen übertragen somit ihre Attribute
auf das Grid und nicht umgekehrt.
Auch hier hängt die Genauigkeit der Darstellung von der Feinheit des
Grids ab. Die Hybridmethode nutzt allerdings den Vorteil des Particle Based
Ansatzes und passt für jedes Grid die Attribute (Kraft, Geschwindigkeit,
etc.) an die Anzahl der Partikel an, welche sich im jeweiligen Grid befinden.
3.2.2
Darstellung der interstellarer Molekülwolke
Bei der Particle Based Methode ist der Rechenaufwand auf einem Standardsystem (2GB RAM, Intel Core Duo 2,2 GHz) bereits beim Zeichnen von wenigen Partikeln sehr hoch, so dass die Simulation nur stockend läuft. Dabei
wurde für jedes Partikel die physikalischen Kräfte und die neue Position
noch nicht berechnet.
Deswegen wurde für die Simulation ein ähnlicher (hybrider) Ansatz
gewählt wie bei Jos Stam, welcher in seiner Simulation zur Ströhmungsdynamik [17] die Szene in Zellen unterteilt, in denen Kraft, Dichte und Geschwindigkeit jeweils konstant sind.
Der Austausch von Dichte geschieht in zwei Schritten:
Zunächst werden abhängig von der Geschwindigkeit Partikel und somit
Dichte an andere Zellen abgegeben. Im zweiten Schritt wird das für Gase
typische diffuse Verhalten simuliert, indem jede Zelle ihre Dichte mit ihren
direkten Nachbarn mittelt und ausgleicht.
Auf diese Weise würde sich hinzu gegebene Masse im Stillstand mit
fortschreitender Zeit über die gesamte Szene gleichmäßig verteilen.
Ähnlich wie bei Jos Stam wurde die Wolke in ein Raster aufgeteilt die Cluster. In diesen Clustern wird die interstellare Wolke dargestellt. Innerhalb dieser Cluster herrschen jeweils einheitliche Bedingungen, welche
sich mit jedem Zeitschritt neu berechnen.
Für jeden Cluster wird zu Anfang der Simulation ein Startwert für Partikel, Kraft, Dichte, Druck und Temperatur angenommen. Mit der Bewegung der Partikel ändern sich diese Attribute. Abbildung 10 zeigt die Darstellung der Wolke in der Simulation.
16
Abbildung 10: Darstellung der Wolke im Simulator
Details zur Implementation der Klasse Clusters werden in Kapitel 4.3.2
erläutert.
Zur Darstellung der einzelnen Cluster wird die Anzahl der Partikel in
dem jeweiligen Cluster zu Grunde gelegt. Diese Partikelanzahl bestimmt
den Alpha-Wert der Farbe (die Transparenz). Je mehr Partikel also in diesem Cluster der Wolke vorhanden sind, desto ’heller’ ist die Farbe hier.
Das daraus resultierende Flatshading [1] stellt zwar den Zusammenhang
Partikel - Helligkeit korrekt dar, sieht aber nicht natürlich aus.
Um die Wolke natürlicher wirken zu lassen, wird die Farbe jedes Clusters für jeden Eckpunkt individuell bestimmt. Hierbei geht für jeden Eckpunkt nicht nur die Anzahl der Partikel in ’seinem’ Cluster ein, sondern
auch die Anzahl der Partikel der direkten drei Nachbarn. Für jeden Eckpunkt wird nun der Mittelwert der vorhandenen Partikel zur Berechnung
des Alphawertes genutzt. So interpoliert ergibt sich ein natürlicheres Bild
einer Wolke. (Abb. 11)
3.2.3
Modellierung der Verdichtungsgebiete
Wie in Kapitel 3.1 bereits beschrieben, ist die Entstehung dieser Gebiete
noch nicht vollständig erforscht.
17
Abbildung 11: Vergleich Darstellung Flatshading (B) und Interpolation (C)
Bei dieser Simulation wird für die Initialisierung eine ausgeglichene
Wolke generiert, in welcher die Anzahl der Partikel in jedem Cluster gleich
sind. Diese Anzahl wird bestimmt, indem die Menge aller in der Wolke
vorkommenden Partikel durch die Anzahl der Cluster geteilt wird.
Nun kann der User selbst Verdichtungsgebiete erschaffen, indem er der
Wolke entweder Partikel durch Linksklick hinzufügt, oder diese mit Klick
auf die Rechte Maustaste wieder entfernt.
18
3.3
Entstehung eines Sternes
Um aus der interstellaren Wolke nun einen Stern entstehen zu lassen, müssen sich die Partikel in der Wolke zunächst bewegen und sich danach an
den entstehenden Stern anlagern, sofern sie auf diesen einfallen.
3.3.1
Bewegung der Partikel
Die Eigenbewegung der Wolke im stabilen Zustand, resultierend aus der
ständigen Expansion des Universums [5], wird in dieser Simulation vernachlässigt, da sie die Eigenschaften der Partikel untereinander nicht verändert und somit auch keinen Einfluss auf die Beziehungen der Cluster
zueinander hat.
In dieser Simulation wirken ausschließlich Gravitationskräfte und die
daraus resultierende Geschwindigkeit auf die einzelnen Cluster. Würde die
Wolke gleichmäßig initialisiert werden, (d.h. in allen Clustern befindet sich
dieselbe Anzahl an Partikeln) würde sich nach dem Start der Simulation
nichts verändern. Dies ist das natürliche Gleichgewicht innerhalb der interstellaren Wolke, wie in Kapitel 2.1 erläutert.
Sobald Verdichtungsgebiete entstanden sind (eine Voraussetzung unserer Modellannahmen, vgl. Kapitel 3.1), wirkt die Gravitation anziehend auf
die Teilchen der Wolke, so dass diese sich nur in Richtung der Gravitationsquelle bewegen.
Ein Cluster mit einer höheren Anzahl Partikel hat entsprechend auch
eine größere Masse, was zu einer höheren Gravitation führt. Diese Gravitation wirkt sich auf die benachbarten Cluster aus, da der Cluster mit seiner
größeren Gravitation Partikel aus den benachbarten Clustern anzieht.
Um Partikel zwischen den Clustern zu bewegen, muss zunächst berechnet werden, welchen Weg die Partikelgruppe von einem Cluster zum
nächsten zurücklegt und in welche Richtung dies geschieht.
Die Gravitation zwischen zwei Massepunkten wird nach [5] berechnet
durch:
G=g·
M1 ·M2
r2
mit
M1 = Massen des ersten Clusters
M2 = Massen des zweiten Clusters
g = Gravitationskonstante
19
r
= Abstand der beiden Cluster voneinander
Abbildung 12: Zurückgelegter Weg des Partikels P abhängig von Masse M1 in
zwei Zeitschritten
Für jeden Cluster werden zu Beginn der Simulation die korrespondierenden Kräfte zwischen allen anderen Clustern gespeichert.
Da sich in dieser Simulation Partikel immer nur in ihrer direkten 8ter Nachbarschaft bewegen, ist für die Simulation die Richtung der Gravitation wichtiger, als deren Größe. Dies hat den positiven Nebeneffekt, dass die Gravitation nur dann unbedingt neu berechnet werden muss, wenn neue Masse
in die Wolke eingefügt wird.
Eine automatische Neuberechnung erfolgt beim Starten/Wiederaufnehmen
der Simulation und der Entstehung eines Sternes. Zudem kann manuell
durch den User jederzeit eine Neuberechnung vorgenommen werden.
Aus der durch die Addition aller Kräfte resultierenden Gesamtkraft,
welche auf einen Cluster wirkt, kann durch
vt =
F
Mt
+ vt−1
mit
vt−1 = Geschwindigkeit aus dem letzten Schritt
vt = Geschwindigkeit
t
= Zeitschritt
F = Kraft
M = Masse
die neue Geschwindigkeit berechnet und abgespeichert werden.
Aus der Gesamtkraft und der Geschwindigkeit kann danach der zurückgelegte Weg berechnet werden. Abbildung 12 zeigt grafisch den Zusammenhang zwischen aktueller Geschwindigkeit und der so festgelegten
20
Ausgangsrichtung, in die sich die Partikel bewegen und der Änderung dieser Richtung induziert durch die Kraft, welche von höherer Masse ausgeht.
s = a2 t2 + v und a =
F
M
mit
M
s
t
v
a
F
= Masse
= Weg
= Zeitschritt
= Geschwindigkeit
= Beschleunigung
= Kraft
Nachdem der zurückgelegte Weg s = [sx , sy ] berechnet ist, muss daraus
die Menge an Nachbarclustern ermittelt werden, in die Partikel abgegeben
werden. Ebenso muss man für die Cluster berechnen, wie viele Partikel
ausgetauscht werden. Wir nehmen hierfür an, das die Partikel innerhalb
eines Clusters gleich verteilt sind.
Bei genauerer Betrachtung fällt auf, das für jeden Cluster immer nur
maximal 3 Nachbarcluster in einem Zeitschritt betroffen sein können, je
nachdem ob die Werte für sx und sy positiv oder negativ sind.
Abbildung 13: Austausch von Partikeln mit den Nachbarclustern
Für jeden betroffenen Nachbarcluster wird nun die ’Schnittfläche’ berechnet. Für die Cluster 1 bis 3 aus Abbildung 13 ergibt sich folgende Rechnung:
A0 = sizeCluster2
A1 = sx ∗ (sizeCluster − sy )
21
A2 = sy ∗ (sizeCluster − sx )
A3 = sx ∗ sy
mit
sizeCluster = Seitenlänge eines Clusters
A0
= Flächeninhalt eines kompletten Clusters (Ausgangscluster)
sx , sy
= zurückgelegter Wg in x- bzw. y- Richtung
Da die Werte für sx und sy negativ werden können (je nachdem in welche Richtung sich die Partikel bewegen), wird für die weiteren Berechnungen der Betrag des errechneten Flächeninhalts genutzt.
Um zu bestimmen wie viele Partikel zwischen den Clustern ausgetauscht
werden, wird für jeden der drei in Frage kommenden Nachbarcluster die
Anzahl der Partikel mit den Flächeninhalten ins Verhältnis gesetzt. Es ergibt sich daraus folgender Zusammenhang, der bestimmt, wie viele Partikel des Ausgangsclusters in den Zielcluster übergehen:
Pn =
P0 ·An
A0
mit
A0 = Flächeninhalt des Ursprungsclusters
P0 = Partikel des Ursprungsclusters
An = Flächeninhalt des Nachbarclusters
Pn = Partikel die ausgetauscht werden
Je größer also die zurückgelegte Strecke in eine Richtung ist, umso größer ist die Fläche, welche den Zielcluster überdeckt und desto größer muss
die Anzahl der Partikel sein, die in den Zielcluster abgegeben werden.
Die so bestimmten Partikel werden zu dem entsprechenden Nachbarcluster hinzu addiert und vom Ausgangscluster abgezogen.
Theoretisch müsste nun noch eine physikalische Eigenschaft von Gasen
betrachtet werden: Ein Gas breitet sich immer über den gesamten zur Verfügung stehenden Raum aus.
Jos Stam hat dies simuliert, indem er die Dichte eines Clusters mit seinen 5 Nachbarn gemittelt und gleichmäßig verteilt hat.
Dieses führt nach einigen Iterationen dazu, dass hinzu gegebene Masse
sich über die gesamte Szene verteilt.[17]
22
Es stellt sich die Frage, ob diese Eigenschaft von Gasen auch für diese
Simulation eine Rolle spielt.
In einer Molekülwolke herrscht, wie beschrieben, ein Kräftegleichgewicht [5]. Weder ist die Gravitation groß genug um zu kollabieren, noch
reichen die Kräfte des Gases aus um auseinander zu treiben.
Sind die Gravitationskräfte zu gering, würde sich die Wolke tatsächlich
weiter in den Raum ausdehnen. Diese Ausdehnung würde zu einem Temperaturabfall führen, der wiederum zu einem Anstieg der Jeansmasse und
damit der kritischen Masse führt, die notwendig ist, um eine Wolke kollabieren zu lassen.
Da sich die Masse der Wolke aber nicht erhöht, würde eine auseinandertreibende Wolke keine Voraussetzung bieten, Sterne entstehen zu lassen.
Da wir für diese Simulation Wolken betrachten in denen Sterne entstehen sollen, herrscht ein Gleichgewicht, das ebenfalls das Ausdehnen des
Gases verhindert. Es muss hier nicht betrachtet werden.
3.3.2
Entwicklung zum Stern
Überschreitet die Anzahl der Partikel innerhalb eines Clusters einen definierten Schwellwert, wird in diesem Cluster ein Stern entstehen. Entsprechendes wird für den Cluster in einer Variablen vermerkt und ein Stern an
der Position des Clusters in den QVector Stars eingefügt.
Die genauere Implementation der Klasse Stars im Programm wird in
Kapitel 4.3.2 erläutert.
artikel
Für den Schwellwert hat sich im Laufe der Tests AnzahlP
AnzahlCluster ·20 als günstig
erwiesen.
Sobald für einen Cluster vermerkt ist, dass dort ein Stern entsteht, wird
er nur noch Partikel aufnehmen aber keine mehr an andere Cluster abgeben.
Für den Stern werden, anhand der in seinem Cluster befindlichen Partikel, alle nötigen Attribute berechnet [4], [19], [3], [18]:
Masse:
M=
(N ·µ)
Na
23
Radius:
M 0.8
R = ( SM
) · SR
Leuchtkraft:
M 3.9
) · SL
L = ( SM
Effektiv Temperatur:
1
L
T = ( 4·Π·R2 ·5.67·10
−8 ) 4
Druck:
P = T ρk
mit
SM
SR
SL
N
µ
Na
k
L
ρ
= Sonnenmasse
= Sonnenradius
= Leuchtkraft der Sonne
= Anzahl der Partikel
= Molare Masse
= AVOGADRO Konstante
= BOLTZMANN Konstante
= Leuchtdichte des Sterns
= Dichte
Die Temperatur ist hier als die so genannte Effektiv Temperatur zu verstehen - die Temperatur an der Oberfläche des Sternes.[16]
Erkennbar wird hier auch, dass sowohl Radius als auch Leuchtkraft
(und somit die Temperatur) mit Hilfe von Referenzwerten unserer Sonne
berechnet werden. Das ist möglich, da unsere Sonne ein typischer Hauptreihenstern ist.
Solange die Gravitation ausreicht, um Masse aus der Umgebung anzuziehen - entweder bis die Wolke keine Partikel mehr aufweist oder sich in
der Gravitationsumgebung keine Partikel mehr befinden - lagert der Stern
Masse an, was seine Temperatur stetig erhöht.
Ist keine Masse mehr vorhanden und die Temperatur des Sternes nicht
hoch genug, um Wasserstoff zu fusionieren, wechselt dieser in den Status
Brauner Zwerg (vgl. Kapitel 2.3).
Fusioniert der Stern Wasserstoff kann er zwei verschiedene Stadien annehmen: Hauptreihenstern undWolf-Rayet Stern (vgl. Kapitel 2.3). Letzteres
wird durch eine Masse über 100 Sonnenmassen bedingt.
24
Wenn kein Stern mehr Masse anziehen kann, befindet sich die Restwolke wieder in einem Gleichgewicht und die weiteren Zeitschritte der Simulation geben ein konstantes Bild - die Wolke hat wieder ein natürliches
Gleichgewicht erreicht.
3.3.3
Kernfusion
Für die Vorgänge im Sterninneren muss die Temperatur des Kerns bekannt
sein.
Um Deuterium zu fusionieren benötigt der Kern eine Temperatur von
mindestens 1000 Kelvin. Für Wasserstoff sind es bereits 106 Kelvin. Unsere Sonne hat eine Kerntemperatur von 15, 7 · 106 Kelvin und eine effektive
Temperatur von etwas unter 6000 Kelvin.
Wie in Kapitel 3.3.2 beschrieben, errechnet sich die effektive Temperatur annähernd über die Leuchtkraft des Sternes. [16]
Die effektive Temperatur eines Sterns ist gleichzeitig ausschlaggebend
für die Farbe des Sternes. Je heißer ein Stern, desto bläulicher erscheint dieser und je kühler er ist, um so röter.
Um die Temperatur im Kerninneren zu bestimmen, wird erneut auf
einen Vergleich mit der effektiven Temperatur und der Temperatur im Kerninneren der Sonne zurückgegriffen. [19]
Tinn = Tef f ∗
15,7·106
6000
Obwohl die Konvektion selbst nicht simuliert wird, benötigen wir die
Kerntemperatur um zu entscheiden, in welchem Stadium (Kern, Protostern, Hauptreihenstern) sich der Stern befindet.
25
4
Programm ’Starformator’
Das Programm, welches im Rahmen dieser Diplomarbeit entstanden ist,
soll einen Einblick in die Entstehung von Sternen geben.
Hauptsächlich modelliert es den Weg einzelner Partikel von ihrem Zustand als Teil einer interstellaren Wolke bis hin zum Teil eines Sternes. Zusätzlich interessant für die Thematik ist die Anzeige der durch die Gravitation induzierten Bewegungsrichtung der Partikel in den einzelnen Clustern, sowie interaktive Eingriffe in die Simulation.
Abbildung 14 zeigt ein Diagramm mit den interaktiven Möglichkeiten
des Programms, die Simulation zu beeinflussen.
Abbildung 14: Use Case Diagramm des Programms
26
4.1
Oberflächenmodellierung
Abbildung 15: Layout des Programmes ’Starformator’
Der Fokus, der mit Hilfe von QT 4.6 erstellten Benutzeroberfläche, liegt
auf dem zur Darstellung der OpenGL Simulation genutzten GLWidget.
Unter diesem Widget befinden sich Informationen zu der dargestellten
Wolke (Anzahl der Partikel, Gesamtmasse der Wolke) und Möglichkeiten,
die Wolke über 5 Buttons zu steuern.
Der Button Start startet die Simulation, der Button Pause pausiert die Simulation, sollte sie gestartet worden sein oder nimmt sie wieder auf, wenn
sie angehalten wurde.
Reset setzt die Wolke in den Default-Zustand (Programmstart) zurück,
während Wolke leeren eine Wolke mit minimaler Anzahl von Partikeln liefert.
Der letzte Button mit der Bezeichnung Kraft berechnen startet eine Neuberechnung des Kräfteverhältnisses zwischen den Clustern.
27
Über die Checkbox Gravitation anzeigen können die normierten Gravitationsvektoren eingeblendet werden. Die Richtung ist an der dunkleren Spitze der Linie abzulesen. (Abb. 16)
Auf der linken Seite befinden sich zwei GLTabWidgets:
Das obere Widget besteht aus zwei Tabs. Im ersten Tab Sterne werden die
entstandenen Sterne angezeigt mit Informationen zur Kategorie, Radius,
Masse und effektiven Temperatur.
Im zweiten Tab Einstellungen finden sich Möglichkeiten, Einstellungen
an der Simulation vorzunehmen. (Abb.19)
Im unteren Widget werden im ersten Tab ReadMe Informationen zur
Nutzung des Programmes angezeigt. Das zweite Tab Status beinhaltet Informationen zu einem aus Tab Sterne ausgewählten Stern. (Abb. 18)
Abbildung 16: Darstellung von Sternen mit eingeblendeten Gravitationslinien
28
4.2
Interaktion
Für eine Interaktion mit der Simulation gibt es direkte und indirekte Methoden:
4.2.1
Direkte Methoden
Direkte Methoden nehmen Veränderungen unmittelbar an der dargestellten Wolke im OpenGL Fenster vor, ohne dass die Simulation abgebrochen
wird. Per Mausklick innerhalb der Wolke kann Masse direkt zum angeklickten Cluster hinzugefügt (linke Taste) oder entfernt (rechte Taste) werden.
Dies ermöglicht eine individuelle Gestaltung der Wolke und die Konstruktion konkreter Szenarien.
Abbildung 17: Steuerung der Simulation
Abbildung 17 zeigt die verschiedenen Möglichkeiten, die Simulation
über die Buttons zu steuern. Mit einem Klick auf den Button Start kann die
Simulation gestartet werden.
Mit dem Button Pause kann die Simulation pausiert bzw. wieder aufgenommen werden.
Der Button Reset setzt die Wolke auf die Initalisierungswerte zurück.
Mit dem Button Kraft berechnen können die Kraftvektoren zwischen den
Clustern manuell jederzeit neu berechnet werden, wenn man zum Beispiel
Masse in einem Cluster hinzufügt oder sich im Verlauf der Simulation an
einer Stelle Masse zusammenballt.
Die Wolke kann ebenfalls komplett geleert werden, um sie neu aufzubauen. Dies geschieht mit dem Button Wolke leeren.
Abbildung 18 zeigt wie nähere Informationen zu den in der Tabelle aufgeführten Sternen erhalten werden können. Entsteht ein Stern, wird dieser
29
Abbildung 18: Anzeige der Eigenschaften entstandener Sterne
automatisch in die Tabelle (oberes Bilddrittel) eingetragen. Möchte man nähere Informationen zu diesem Stern, kann man diese durch einen Klick auf
eine beliebige Zelle in der gewünschten Zeile und einem Wechsel zur Reiterkarte Status erhalten.
Hier werden neben einem Namen Informationen zur Kategorie und
Spektralklasse des Sternes angezeigt, wie zum Beispiel eine weiterführende Beschreibung zur Kategorie des ausgewählten Sternes.
Des Weiteren erhält man unter Status Aufschluss über die Masse und
den Radius des Sternes sowie der effektiven Temperatur und der Kerntemperatur.
Der Farbverlauf zeigt den Verlauf der durch die Spektralklasse gegebenen Farbe des Sternes hin zum Kern, hier rot dargestellt.
30
4.2.2
Indirekte Methoden
Es gibt eine Reihe weiterer interaktiver Möglichkeiten, für welche die aktuelle Simulation abgebrochen und neu gestartet werden muss.
Abbildung 19: Anpassung der Ausgangswerte der Wolke
Abbildung 19 zeigt das Fenster für die Einstellungen der Simulation.
Änderbar hier sind die folgenden Werte:
Anzahl der Partikel
Wie viele Partikel beinhaltet die komplette Wolke? Eine Änderung an
diesem Wert verändert die Masse und die Dichte der Wolke.
Molare Masse der Partikel
Die Molare Masse gibt an, wie viel ein einzelnes Partikel wiegt. Änderungen an diesem Wert verändern das Gewicht der Wolke
Ausdehnung in X- und Y- Richtung
Diese Werte bestimmen die Ausdehnung der Wolke in der jeweiligen
Richtung. Eine größere Wolkenausdehnung bei gleichbleibender Masse und
Clustergröße bedeutet eine geringere Dichte in einem einzelnen Cluster.
Ausdehnung eines Clusters
31
Die Ausdehnung eines Clusters (in X- und Y- Richtung identisch) beeinflusst die Feinheit der Wolke. Je kleiner ein Cluster, desto geringer ist
die Anzahl der Partikel die auf einmal betrachtet werden. Eine so erreichte
höhere Genauigkeit bedeutet aber gleichzeitig auch einen höheren Rechenaufwand.
32
4.3
Klassen
Den Grundsätzen der Objektorientierten Programmierung folgend, wurden die Funktionalitäten in verschiedenen Klassen gekapselt. Hauptfunktionen des Programmes finden sich in der Klasse gldisplay. Auf dieser Klasse liegt auch der Fokus der folgenden Beschreibung. Die weiteren Klassen
(Cluster und Star) stellen hauptsächlich Daten zur Verfügung.
4.3.1
Klasse gldisplay
Abbildung 20: Methoden der Klasse gldisplay
33
Für diese Simulation sind vor der Initialisierung einige Berechnungen
notwendig.
Aus den Ausmaßen der Wolke und der Größe für einen Cluster wird die
Anzahl der Cluster in der Wolke berechnet, die für die Initialisierung der
Datenstruktur für Wolke und Sterne benötigt werden:
y
x
size = ( sc
) · ( sc
)
mit
size = Anzahl der Cluster in einer Wolke
x = Ausdehnung der Wolke in x Richtung
y
= Ausdehnung der Wolke in y Richtung
sc = Größe eines Clusters
Um zu verhindern dass Sterne direkt in nebeneinander liegenden Clustern entstehen, wird vorher ein Wert in einer Variablen festgelegt, der eine
Umgebung um einen Stern beschreibt, in dem kein Stern weiterer entstehen soll.
Diese Maßnahme mag mit dem Hinweis auf Doppelsternsysteme im ersten Moment physikalisch falsch wirken, doch auch die Sterne dieses Systems liegen nicht so eng beieinander, dass es in der Simulation benachbarte
Cluster bedeuten würde. Zum anderen sind Doppelsternsysteme recht selten [5].
Da in dieser Simulation (wie in Kapitel 3.3.1 erläutert) Partikel durch
die Gravitation des Sternes angezogen werden und ein Cluster nur 8 Nachbarn hat, in dem sich angezogene Partikel befinden können, überschreiten
auch diese Nachbarcluster den Schwellwert, um einen Stern zu beherbergen.
Das bedeutet, dass wenn einmal ein Stern in einem Cluster entsteht,
sich in seinen Nachbarclustern innerhalb der nächsten Zeitschritte weitere
Sterne bilden würden, was nicht mehr natürlich wäre.
Im Folgenden werden die Funktionen der wichtigsten Methoden beschrieben.
initCluster()
Beim Start des Programmes wird diese Methode aufgerufen, um die Oberfläche und die Molekülwolke mit Startwerten zu versehen.
34
Hierbei wird die Anzahl der Moleküle der kompletten Wolke durch die
Menge der Cluster geteilt. Das Ergebnis ist der Initialisierungswert für jeden Cluster.
drawCloud()
Da die Diffusion, wie in Kapitel 3.3.1 beschrieben, in dieser speziellen
Situation physikalisch nicht relevant ist wird sie für den optischen Effekt
zumindest in der Zeichenroutine der Wolke berücksichtigt.
Wie bei Jos Stam [17] werden hier die Werte jedes Clusters mit seinen
4 direkten Nachbarn gemittelt und in einem Array abgespeichert, aus dem
im nächsten Schritt die Wolke gezeichnet wird.
In einer Doppelschleife wird die komplette Wolke durchgegangen und
je nach Anzahl der Partikel mehr oder weniger transparent dargestellt. Ist
der Cluster als Stern markiert, wird an dieser Stelle mit Hilfe von GluQuadric ein Stern gezeichnet. Der Radius dieses Sternes wird mit Hilfe der Clustergröße und einem Durchschnittsradius für die Darstellung skaliert.
Der durchschnittliche Radius eines Sternes ist hierbei der Radius der
Sterne, die entstehen würden, wenn sich die Masse der Wolke gleichmäßig
auf die maximal entstehenden Sterne verteilen würde.
Die maximale Anzahl an Sternen, die entstehen können, ergibt sich aus
der Anzahl der Cluster und der bereits beschriebenen Umgebung eines
Sternes, in dem kein weiterer Stern entstehen soll.
starcount =
size
4·sRad2
und
Mc
avrad = ( starcount
·
1 0.8
SM )
mit
starcount = Anzahl der Sterne
size
= Anzahl der Cluster in einer Wolke
sRad
= Umgebung in der kein Stern entstehen soll
Mc
= Masse der Wolke
SR
= Radius der Sonne
SM
= Masse der Sonne
35
∗ SR
Die Farbe eines Sternes wird anhand seiner effektiven Temperatur ermittelt. Bei welcher Temperatur welche Farbe gesetzt wird, lässt sich aus Tabelle 1, Kapitel 2.3 ablesen.
Als letztes in dieser Methode wird überprüft, ob der User in der GUI
ausgewählt hat, die Gravitationslinien zu zeichnen. Ist dies der Fall, so werden aus den gespeicherten Kraftwerten die daraus folgenden Vektoren in
die Szene eingezeichnet.
moveParticles()
Aus dem in calcForce() berechneten Kraftzusammenhang zwischen den
verschiedenen Clustern und der für den aktuellen Cluster abgespeicherten
Geschwindigkeit aus der vorherigen Iteration, wird hier der Weg berechnet, den die Partikel im Cluster zurücklegen (Abb. 12).
Anhand des berechneten Weges wird nun entschieden, an welche Nachbarcluster Partikel abgegeben werden (Abb. 13). Mit diesen Nachbarn wird
die Methode calcMove() aufgerufen.
Im letzten Schritt dieser Methode wird geprüft, ob nach dem aktuellen
Schritt in einem der Cluster genügend Partikel vorhanden sind, um einen
Stern entstehen zu lassen. Ist dies der Fall, wird zusätzlich noch überprüft,
ob in der vordefinierten Umgebung (Variable sr ad) bereits ein Stern existiert. Nur wenn dies nicht der Fall ist, wird an dieser Stelle ein Stern gesetzt.
calcMove()
In dieser Methode wird berechnet, wie viel Partikel von einem in den
anderen Cluster abgegeben werden. Sie wird aus der Methode moveParticles() aufgerufen und ihr werden folgende Attribute übergeben:
• Der aktuelle Cluster - also der Cluster der Partikel abgibt,
• Der Zielcluster - der Cluster, der Partikel aufnimmt und
• Der Flächeninhalt, der vom aktuellen Cluster im Zielcluster überdeckt wird
36
Werden Flächeninhalt und Anzahl der Partikel ins Verhältnis gesetzt,
ergibt sich daraus die Anzahl der Partikel, die sich im überdeckten Flächeninhalt befinden. (Vgl. Kapitel 3.3.1)
cpart =
mP art·a
area
mit
cP art = Anzahl der Partikel die ausgetauscht werden
mP art= Anzahl der Partikel im aktuellen Cluster
a
= Flächeninhalt, der vom aktuellen Cluster im Zielcluster überdeckt wird
area = Flächeninhalt eines kompletten Clusters
Die so berechneten Partikel werden aus dem aktuellen Cluster abgezogen und dem Zielcluster hinzu addiert. Hier gilt es zu beachten, dass nicht
mehr Partikel abgezogen werden als überhaupt vorhanden sind.
calcForce()
In dieser Methode werden die zwischen den Clustern wirkenden Kräfte abgespeichert. Hierbei kann man sich zu Nutze machen, dass sich der
Kraftvektor von Cluster A zu Cluster B lediglich durch sein Vorzeichen unterscheidet. Man muss die Berechnungen also nur einmal von A nach B
durchführen und mit umgekehrten Vorzeichen für B nach A abspeichern.
Diese Methode kann jederzeit durch den Button Kraft berechnen neu berechnet werden. Die Funktion wird automatisch aufgerufen, wenn die Simulation gestartet wird oder ein Stern entstanden ist
getGuiVals()
Auf der Reiterkarte Einstellungen finden sich Möglichkeiten, einige Werte
der Simulation interaktiv anzupassen (Abb. 19). Ein Klick auf den Button
Werte anpassen ruft die Methode getGuiVals() auf.
Hier werden die Werte aus den Textfeldern in die Simulation übernommen, alle weiteren notwendigen Größen, z. Bsp. die Anzahl der Cluster,
neu berechnet. Um zu verhindern dass die Größe eines Clusters nicht durch
die der Wolke teilbar ist, werden x- und y- Ausdehnung der Wolke an die
Clustergröße angepasst.
37
updateGUI()
Werte der Simulation, wie Masse der Wolke und Anzahl der in ihr befindlichen Partikel oder die aktuellen Werte unter Einstellungen, werden
über diese Methode ausgegeben.
pause()
Diese Methode steuert den QTimer um die Simulation anhalten und danach weiter laufen lassen zu können.
Die Methode wird von den Buttons Start und Pause aufgerufen. Der aktuelle Zustand der Simulation wird in der Variable timeStat gespeichert.
Läuft die Simulation (d.h. timeStat ist 1), wird sie angehalten und die Variable timeStat auf 0 gesetzt. Steht die Simulation (d.h. timeStat ist 0), wird sie
gestartet und timeStat auf 1 gesetzt.
reset()
Alle Werte der Simulation werden durch Klick auf den Button Reset auf
die Ausgangswerte zurückgesetzt.
clearCloud()
Diese Methode wird durch den Button Wolke leeren aufgerufen und bewirkt, dass fast alle Partikel aus den Clustern entfernt werden. Eine minimale Grundmenge bleibt enthalten, da auch in der Natur immer minimale
Spuren vorhanden sind.
Nun kann sich der User seine eigene Wolke zusammenstellen, indem er
mit der linken Maustaste Masse hinzufügt oder sie mit der rechten Maustaste herausnimmt.
4.3.2
Klassen Cluster und Star
Die beiden Klassen Star und Cluster beschreiben die Datenstrukturen für
die einzelnen Cluster der Wolke und der Sterne mit ihren Eigenschaften.
In der Methode setAttributes() werden die Eigenschaften des Sternes
bzw. des Teils der Wolke berechnet, die durch den Cluster begrenzt wird.
Die Gleichungen für die Attribute eines Sternes wurden bereits in Kapitel
3.3.2 vorgestellt. Für einen Cluster genügt die Masse, welche sich auf die
gleiche Weise berechnet wie in einem Stern.
38
5
Bewertung des Programmes
Im Folgenden stellt sich die Frage, ob die Umsetzung der Entstehung der
Sterne im Programm gelungen ist. Ist sie physikalisch korrekt, plausibel,
weist sie Ungenauigkeiten auf oder ist sie gar falsch?
Der Vorgang der Sternentstehung dauert Millionen Jahre, die technologische Erforschung des Weltalls begann aber erst in den 50iger Jahren des
20ten Jahrhunderts. Das Hubble Teleskop, das uns Bilder anderer Galaxien
und Nebel liefert, wurde erst 1990 in Betrieb genommen.
Somit gibt es keine Aufzeichnungen des kompletten Entstehungsprozesses. Einzig Berechnungen wie die Werte der Sterne und Momentaufnahmen von Molekülwolken und Galaxien stehen als Vergleichswerte der
(angenäherten) Realität zur Verfügung.
Eine physikalische Korrektheit ist aus diesem Grund nicht zu belegen,
da, wie auch in den Kapiteln 2 und 3 erwähnt, für viele Details nur Theorien oder Vermutungen existieren.
Auch die physikalische Plausibilität ist durch die lange Dauer dieses
Vorgangs nicht ganz einfach zu belegen.
In der öffentlichen Bilddatenbank der NASA kann man unter anderem
Bilder entfernter Nebel (Abbildungen 21 und 22) finden, welche eine Momentaufnahme der Darstellung einer Molekülwolke und der Bewegung
der Partikel in ihr zeigen.
Abbildung 21: Aufnahme des Hubbleteleskops des Nebels NGC 4603 [6]
39
Abbildung 22: Aufnahme des Hubbleteleskops des Nebels NGC 1132 [10]
Vergleichen wir Ausschnitte dieser beiden Aufnahmen mit einem Screenshot der Simulation. Bild 23 zeigt deutliche Ähnlichkeit zwischen Momentaufnahmen der NASA und der des Programmes.
Abbildung 23: Vergleich von Ausschnitten der NASA Aufnahmen (A und B) und
einem Screenshot aus dem Programm (C)
Ein weiteres astronomisches Phänomen der Sternentstehung konnte mit
dem Programm simuliert werden. Sterne entstehen nicht allein, sondern in
Sternhaufen, wobei die massereichsten Sterne im Zentrum des Haufens zu
finden sind [12]. Zwischen zwei masseärmeren Sternen der Spektralklasse
M, K oder G entsteht recht häufig ein massereicher Stern der Klasse B oder
O.
Fügt man der Wolke in der Simulation an zwei Stellen Masse hinzu,
entsteht während der Simulation nicht nur an diesen beiden Stellen jeweils
ein Stern, sondern auch zwischen beiden ohne dass dort ein Massezentrum
40
definiert werden musste. Ebenfalls stimmte das Masseverhältnis der drei
Sterne: die beiden äußeren Sterne sind masseärmer, der Stern in der Mitte
massereicher.
Abbildung 24 zeigt dieses Phänomen rekonstruiert mit Hilfe des Programmes.
Abbildung 24: Entstehung eines dritten massereichen Sternes zwischen zwei
masseärmeren Sternen
Auch die Daten über die entstehenden Sterne stimmen mit den Annäherungen überein, die in der Astrophysik für massegleiche Sterne gemacht
werden. So stimmen zum Beispiel die Werte für Radius, effektive und Kerntemperatur und Dichte eines Sterns mit etwa der Masse der Sonne auch etwa mit denen der Sonne überein.
Ein Problem dieser Simulation liegt momentan noch in der Aufteilung
des Clusternetzes. Um eine relativ flüssige Simulation auf Standardsystemen zu ermöglichen, kann das Netz nicht so fein gewählt werden, wie es
notwendig wäre, um die Jeansmasse als Kriterium zur Sternentstehung aktiv einzubinden.
Ebenso führt die so entstandene grobe Masseverteilung dazu, dass bestimmte physikalische Effekte wie die ’Wirbelbildung’ (Bsp. Abb. 2) nicht
darstellbar sind, obwohl sie bei den Berechnungen durchaus berücksichtigt
wurden.
Eine Lösung für dieses Problem bestünde darin, die Wolke nicht in einheitliche Cluster aufzuteilen, sondern die Feinheit zum Beispiel von der an
dieser Stelle in der Wolke vorherrschenden Masse abhängig zu machen.
Vorteil dieser Methode ist es, dass in Bereichen mit hohem Masseaufkommen, also da wo potentiell Sterne entstehen werden, eine feinere Clusteraufteilung existiert und somit physikalische Effekte wie Wirbelbildung
41
darstellbar sind. Gleichzeitig genügt in anderen Bereichen dann eine grobere Aufteilung.
Zusammenfassend sind die von der Simulation erzeugten Ergebnisse
im Vergleich mit den Momentaufnahmen der Realität physikalisch plausibel.
42
6
Zusammenfassung
Die Entstehung der Sterne ist ein sehr interessanter, aber nicht einfach zu
simulierender astrophysikalischer Vorgang.
Die physikalischen Grundlagen wurden in Kapitel 2 untersucht und beschrieben. Bereits hier fiel auf, dass viele Vorgänge der Sternentstehung
noch nicht vollständig erforscht sind. Dazu gehören unter anderem Phänomene wie das Drehimpulsproblem oder das Entstehen von Verdichtungsgebieten.
Aufbauend auf diesen Einschränkungen wurde in Kapitel 3 ein physikalisch plausibles Modell entwickelt. Dieses Modell genügt den Anforderungen, die physikalische Realität möglichst genau abzubilden. Die Einschränkungen wurden erläutert.
Die Umsetzung des Modells in eine Simulation, kombiniert mit einer
intuitiven Nutzeroberfläche, wird in Kapitel 4 beschrieben. Der Fokus dieses Kapitels 4 liegt dabei auf der Vorstellung der Programmstruktur, der
wichtigsten Methoden und Funktionen. Darüber hinaus wird die Bedienung des Programmes erläutert und die Möglichkeiten der Parametrisierung die Simulation beschrieben.
Abschließend werden die Ergebnisse, welche die Simulation liefert, im
Kapitel 5 analysiert. Die Auswertung bestätigt, dass die Simulation entsprechend des entwickelten physikalischen Modells korrekte Ergebnisse
liefert, und die Sternentstehung mit für diese Arbeit formulierten Anforderungen genau simluliert.
Zusammenfassend stellt das entwickelte Programm Nutzern eine einfach zu bedienende Oberfläche zur Verfügung, mit deren Hilfe Parameter,
wie Größe der Wolke, Anzahl und Verteilung der Partikel sowie die molare
Masse der Partikel konfiguriert werden können. Die Simulation folgt dabei
einem physikalisch plausiblen Modell, welches real beobachtete physikalische Phänomene nach dem aktuellen Stand der Forschung korrekt wiedergibt.
43
7
Ausblick
Das Programm setzt zur Zeit ein bestimmtes Modell um, welches die Sternentstehung simuliert. Eine Erweiterung, zur Durchführung weiterführender Simulationen ist ohne Weiteres möglich.
Einige Aspekte, welche im Laufe der Bearbeitung des Themas auftraten, aber aufgrund des großen zusätzlichen Umfangs nicht mehr Inhalt dieser Arbeit sein konnten, sollen im Folgenden vorgestellt werden.
In interstellaren Wolken kommt es um Massezentren zu Wirbelbildungen. Während der gewählte Ansatz mit einem gleichmäßigen Grid den
Austausch von Partikeln physikalisch korrekt simuliert, ist die Auflösung
des Grids zu grob, um die Wirbelbildung vollständig zu simulieren. Die
Erhöhung der Auflösung des Grids geht mit exponentiell ansteigendem
Rechenaufwand einher. Die Simulation könnte also nicht mehr auf Standardhardware ausgeführt werden.
Es wäre zu untersuchen, ob eine nicht-uniforme Aufteilung des Grids
dieses Problem lösen könnte. Hierbei muss beachtet werden, dass durch
die so entstehenden unterschiedlichen Clustergrößen auch die Zahl der
Nachbarcluster variieren kann. Abbildung 25 zeigt drei Möglichkeiten, wie
eine Nachbarschaft für einen Cluster aussehen kann.
Abbildung 25: Bei ungleichmäßiger Clusteraufteilung können Nachbarcluster
verschiedene Größen haben
Dadurch muss die in der Methode moveParticle() (vgl. Kapitel 4.3.1)
beschriebene Vorgehensweise zur Ermittlung der Cluster, mit denen Partikelaustausch stattfindet, verändert werden. Abbildung 26 zeigt ein Beispiel
hierfür. Anstelle von 3 Clustern müssen hier 8 Cluster berücksichtigt werden.
Des Weiteren muss man die Berechnung der Partikel überdenken, die
44
Abbildung 26: Kandidatencluster für den Partikelaustausch bei unregelmäßiger
Clusteraufteilung
zwischen zwei Clustern ausgetauscht werden, da Cluster unterschiedliche
Flächeninhalte besitzen können. (vgl. Methode calcMove() Kapitel 4.3.1).
Darüber hinaus muss natürlich das physikalische Modell überprüft und erneut validiert werden, ob die durch die veränderte Cluster-Aufteilung hervorgerufenen Änderungen noch plausible Ergebnisse liefern, so wie dies
mit der im Rahmen der vorliegenden Arbeit implementierten Software gelingt.
45
Abbildungsverzeichnis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
M83 Pinwheel, Oktober 2009 [11] . . . . . . . . . . . . . . . .
Helle Spiralgalaxie M81 von Hubble, 2007 ([8]) . . . . . . . .
Galaxy Cluster Abell 1689, August 2008 ([9]) . . . . . . . . . .
Hertzsprung-Russel-Diagramm . . . . . . . . . . . . . . . . .
fast unsichtbare Auswirkungen des Todes eines massereichen Sternes, 2006 ([7]) . . . . . . . . . . . . . . . . . . . . . .
Vereinfachtes Modell der Sternentstehung . . . . . . . . . . .
Entstehung der Sterne zusammengefasst in einem Statechart
Ansatz Particle Based . . . . . . . . . . . . . . . . . . . . . . .
Zwei Gridvarianten für eine Wolke . . . . . . . . . . . . . . .
Darstellung der Wolke im Simulator . . . . . . . . . . . . . .
Vergleich Darstellung Flatshading (B) und Interpolation (C)
Zurückgelegter Weg des Partikels P abhängig von Masse M1
in zwei Zeitschritten . . . . . . . . . . . . . . . . . . . . . . .
Austausch von Partikeln mit den Nachbarclustern . . . . . .
Use Case Diagramm des Programms . . . . . . . . . . . . . .
Layout des Programmes ’Starformator’ . . . . . . . . . . . . .
Darstellung von Sternen mit eingeblendeten Gravitationslinien
Steuerung der Simulation . . . . . . . . . . . . . . . . . . . .
Anzeige der Eigenschaften entstandener Sterne . . . . . . . .
Anpassung der Ausgangswerte der Wolke . . . . . . . . . .
Methoden der Klasse gldisplay . . . . . . . . . . . . . . . . . .
Aufnahme des Hubbleteleskops des Nebels NGC 4603 [6] .
Aufnahme des Hubbleteleskops des Nebels NGC 1132 [10] .
Vergleich von Ausschnitten der NASA Aufnahmen (A und
B) und einem Screenshot aus dem Programm (C) . . . . . . .
Entstehung eines dritten massereichen Sternes zwischen zwei
masseärmeren Sternen . . . . . . . . . . . . . . . . . . . . . .
Bei ungleichmäßiger Clusteraufteilung können Nachbarcluster verschiedene Größen haben . . . . . . . . . . . . . . . . .
Kandidatencluster für den Partikelaustausch bei unregelmäßiger Clusteraufteilung . . . . . . . . . . . . . . . . . . . . . .
46
2
3
4
8
10
11
12
14
15
17
18
20
21
26
27
28
29
30
31
33
39
40
40
41
44
45
Literatur
[1] A NGEL, Edward: Interactive Computer Graphics. Addison Wesley, 2000
[2] B EIMFORDE, Michael:
Die Entwicklung von Sternen.
Website,
.
–
http://eeh06.physik.hu-berlin.de/
lohse/semws0405/sternentwicklung/sterne.pdf 25.05.2010
[3] D ARLING, David: The Internet Encyclopedia of Science. Website, . –
http://www.daviddarling.info/ 15.07.2010
[4] D UDKOWSKI,
Dominique
;
B EBENBURG,
Swantje ;
H ERZOG, Alexander:
Astronomie und Astrophysik I.
Website, 2005. –
http://www.itp1.unistuttgart.de/arbeitsgruppen/wunner/astro1.pdf 10.07.2010
[5] H ERRMANN, Joachim: dtv-Atlas Atronomie. Deutscher Taschenbuch
Verlag, 2000
[6] I MAGES, NASA: Hubble Completes Eight-Year Effort to Measure Expanding Universe. Website, 05 1999. – http://www.nasaimages.org
15.07.2010
[7] I MAGES, NASA: The (Almost) Invisible Aftermath of a Massive Star’s
Death. Website, 05 2006. – http://www.nasaimages.org 15.07.2010
[8] I MAGES, NASA: M81 Bright Spiral Galaxy.
http://www.nasaimages.org 15.07.2010
Website, 05 2007. –
[9] I MAGES, NASA: Galaxy Cluster Abell 1689. Website, 08 2008. –
http://www.nasaimages.org/ NASA Hubble Space Telescope Collection, 15.07.2010
[10] I MAGES, NASA: Isolated Galaxy or Corporate Merger? Hubble Spies NGC
1132. Website, 02 2008. – http://www.nasaimages.org 15.07.2010
[11] I MAGES, NASA:
M83 Pinwheel.
http://www.nasaimages.org 15.07.2010
Website, 10 2009. –
[12] K LESSEN, Ralf: Die Wiege der Sterne. Website, . – http://www.uniheidelberg.de/presse/ruca/2009-2/3astro.html 15.07.2010
[13] L AUNHARDT, Ralf ; H ENNING, Thomas: Vom Dunkel zum Licht. Website, 01 2009. – http://www.phiuz.de 15.07.2010
[14] PARENT, Rick: Computer Animation - Algorithms and Techniques. Morgan Kaufmann Publishers, 2002
47
[15] P UBLIC O UTREACH, Office of: Hubble Projekt Seite.
http://hubblesite.org/ 15.07.2010
Website, . –
[16] S TAHLER, Steven W.: Die Entstehung der Sterne. In: Spektrum der
Wissenschaft, Digest: Astrophysik 1/99 (1999), S. 17–25
[17] S TAM, Jos: Real-Time Fluid Dynamics for Games. Proceedings of the
Game Developer Conference, 2003
[18] S TROPPE, Heribert: Physik. Fachbuchverlag Leipzig, 1974
[19] W ESSEL,
Stefan:
Astronomie
und
Astrophysik
I.
Website,
2008.
–
http://www.theo3.physik.unistuttgart.de/lehre/ss08/aua1/AuA1.pdf 15.07.2010
48

Documentos relacionados