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