Universum: Visualisierung und Simulation von Massepartikeln

2026-11-14
Universum: Visualisierung und Simulation von Massepartikeln - Teaser

Kurzfassung. 2017 habe ich in meiner Bachelorarbeit versucht, große Mengen von Masseteilchen zu visualisieren und zu simulieren. Fertig wurde damals nur ein Teil der Visualisierung: ein C++-Programm, das einen Ausschnitt der Illustris-Simulation zeigt. Die Simulation blieb Theorie, und die Arbeit endete mit dem Schluss, dass ein Heimrechner dafür nicht reicht. Diese Seite ist die Fortsetzung. Das Programm läuft jetzt im Browser, mit allen drei Ansichten von damals, und die fehlende Simulation gibt es auch: Ein Würfel von 300 Millionen Lichtjahren zieht sich vor den eigenen Augen zu Fäden und Knoten zusammen, auf meinem Rechner in rund 15 Sekunden.

Universum öffnen

Ein simuliertes Universum am Ende seines Laufs: ein Netz aus leuchtenden Fäden und Knoten in einem Würfel
Ein eigenes Universum nach 13,8 Milliarden Jahren, gerechnet im Browser.

Die Seite folgt dem Aufbau der Arbeit von damals. Jedes Kapitel sagt, was 2017 dort stand und was daraus geworden ist.

1 Einleitung und Problemstellung

Hochleistungsrechner rechnen über Monate an Simulationen, die ein Stück des Universums durch seine ganze Geschichte verfolgen. Die Frage der Arbeit war, ob so etwas in kleinerem Maßstab auf einem Heimrechner in angemessener Zeit geht, und wie weit man dafür Umfang und Genauigkeit kürzen darf, ohne dass das Ergebnis unglaubwürdig wird.

Es gab zwei Ziele:

Erreicht wurde das bescheidene, und auch das nur zum Teil. Allein das Einlesen der Illustris-Daten hat vier Monate gebraucht statt der geplanten zwei. Für die Darstellung blieben zwei Monate, für die Simulation keiner. Das Fazit von damals: Die Simulation konnte nur theoretisch betrachtet werden, es gibt keine Messwerte, und nach der Laufzeitabschätzung ist die Frage wohl zu verneinen.

Das Fenster des Programms von 2017: weiße Dichtewolken auf schwarzem Grund
Das Programm von 2017. Daneben lief ein Konsolenfenster, über das man es steuerte.

2 Datensatz

Die Daten stammen aus Illustris-1, einer Simulation eines Würfels von 347 Millionen Lichtjahren Kantenlänge. Gezeigt wird ein Ausschnitt daraus, die "Subbox 2": ein Würfel, der heute 23 Millionen Lichtjahre misst. Er wächst mit dem Universum mit und war am Anfang nur 180 000 Lichtjahre groß. Darin liegen je rund 1,8 Millionen Teilchen Gas und dunkle Materie, heute dazu 140 000 Sternteilchen.

Zwei Zeitpunkte lagen von damals noch auf der Platte: der Anfang der Simulation, 12 Millionen Jahre nach dem Urknall, und heute.

2.1 Array-Format

So liegen die Daten vor: eine Liste von Teilchen, jedes mit Ort, Geschwindigkeit und Masse, das Gas zusätzlich mit dem Volumen, das es einnimmt. In diesem Format rechnet eine Simulation, und aus ihm zeichnen die beiden Punkt-Ansichten.

2.2 Volumen-Format

Für das Volumenbild wird der Raum gerastert: 128 Zellen je Kante, in jeder Zelle steht, wie viel Materie dort liegt. So lässt sich an jedem Ort schnell die Dichte nachschlagen.

2.3 Konvertierung

2017 wurden die Teilchen beim Programmstart ins Raster umgerechnet: Jedes Gasteilchen wird als Kugel von der Größe seines Volumens auf die Zellen verteilt, die es berührt. Je nach Auflösung dauerte das eine Weile, und man brauchte dafür die Rohdaten: 512 HDF5-Dateien und etwa 440 MB für einen einzigen Zeitpunkt.

Das Verfahren ist geblieben, aber es läuft jetzt einmal vorab auf meinem Rechner. Ins Netz gehen nur die Ergebnisse:

Inhalt Zeitpunkt Teilchen Volumen Punkte
Gas heute 1 634 629 1,26 MB 1,23 MB
Dunkle Materie heute 1 873 205 1,06 MB 1,19 MB
Sterne heute 140 444 5 kB 0,96 MB
Gas Anfang 1 778 785 1,58 MB 1,25 MB
Dunkle Materie Anfang 1 778 834 1,46 MB 1,25 MB

Zusammen sind das 11 MB, und geladen wird nur, was man gerade ansieht. "Punkte" ist eine Stichprobe von höchstens 150 000 Teilchen je Stoff für die Punkt-Ansichten.

Eine Sache ist anders als damals: Die Dichte steht auf einer logarithmischen Skala im Raster. Die dichteste Zelle im heutigen Gas ist 27 800-mal so dicht wie der Durchschnitt. Auf der gleichmäßigen Skala von 2017 fiel deshalb fast alles ins unterste Hundertstel, und man musste den Dichtefilter mit den Pfeiltasten Schritt für Schritt dorthin schieben. Jetzt haben dünne Fäden und dichte Knoten nebeneinander Platz.

3 Visualisierung

Die Arbeit hat vier Methoden besprochen: Isoflächen, Raycasting, Vektorpfeile und Glyphen. Umgesetzt war das Raycasting, dazu zwei einfachere Ansichten, die jedes Teilchen als Punkt zeichnen. Im Programm von damals war jede Ansicht ein eigenes Plugin. Jetzt stehen alle drei im Menü unter "Ansicht".

3.1 Volumen (Raycasting)

Durch jeden Bildpunkt geht ein Sehstrahl in den Würfel. In festen Schritten fragt er die Dichte ab, und jeder Wert macht den Bildpunkt etwas heller. Was weiter hinten liegt, zählt weniger, weil die Materie davor schon einen Teil verdeckt. Das Ergebnis sieht aus wie leuchtender Nebel.

Das heutige Gas als leuchtendes Volumen: orange Fäden mit hellen Knoten
Illustris heute: das Gas, aus dem Sterne werden.

Neu gegenüber 2017:

Der Anfang der Simulation: der Würfel ist gleichmäßig mit Dunst gefüllt
Derselbe Würfel 12 Millionen Jahre nach dem Urknall: fast überall gleich dicht.

3.2 Teilchen

Jedes Teilchen ist ein runder Punkt, der zum Rand hin verblasst. 2017 waren die Punkte rot, und man konnte per Konsolenbefehl bis zu drei Lichter in den Raum setzen, die sie beleuchteten. Jetzt bekommt ein Punkt die Farbe der Dichte, in der er liegt. Anders als das Volumenbild zeigt diese Ansicht, wo die Teilchen wirklich sind und wie körnig die Daten sind.

Das heutige Gas als Punkte: dieselben Fäden, aber aus einzelnen Körnern
Dieselben Daten als Punkte: 148 603 von 1 634 629 Gasteilchen.

3.3 Bewegung

Für Geschwindigkeiten nennt die Arbeit Vektorpfeile und Glyphen. Im Programm gab es stattdessen eine Ansicht, die jedes Teilchen nach seiner Flugrichtung einfärbt. Sie ist geblieben: Rot heißt Bewegung entlang der x-Achse, Grün entlang y, Blau entlang z, und ein Punkt ist umso breiter, je schneller das Teilchen ist. 2017 wurde die Richtung relativ zur Kamera gemessen, sodass sich die Farben beim Drehen änderten. Jetzt gehören sie zum Würfel.

Das heutige Gas, jedes Teilchen nach seiner Flugrichtung eingefärbt: zusammenhängende Flecken in Grün, Violett und Gelb
Gleiche Farbe heißt gleiche Richtung: Das Gas strömt in großen zusammenhängenden Verbänden.

Der Würfel als Ganzes treibt mit etwa 250 km/s durch den Raum. Diese gemeinsame Drift ist herausgerechnet, sonst hätten alle Punkte fast dieselbe Farbe. Was bleibt, ist die Bewegung innerhalb des Würfels, beim heutigen Gas typischerweise 130 km/s.

3.4 Dichtefilter

Der Dichtefilter von damals ließ nur Werte zwischen einer unteren und einer oberen Grenze durch und wurde mit den Pfeiltasten verstellt. Jetzt sind es zwei Regler, "Dichte ab" und "Dichte bis", und ein dritter für die Leuchtkraft. Unter dem Würfel steht in Worten, was das Fenster gerade bedeutet, zum Beispiel "sichtbar ab 0,8-fach der mittleren Dichte". In den Punkt-Ansichten entscheidet der Filter, welche Teilchen überhaupt gezeichnet werden.

4 Simulation

Das ist das Kapitel, das 2017 Theorie blieb. Der Plan war der naheliegende: Jedes Teilchen zieht jedes andere an, nach Newton. Aus allen Paaren ergibt sich die Beschleunigung, daraus die Geschwindigkeit, daraus der neue Ort. Offen war, ob das Euler-Verfahren, das Spiele dafür nehmen, genau genug ist.

Gebaut habe ich jetzt etwas anderes, ein Gitterverfahren ("Particle Mesh"). Es rechnet nur die Schwerkraft, und es rechnet sie nicht Paar für Paar:

  1. Jedes Teilchen verteilt seine Masse auf die acht Gitterzellen um sich herum.
  2. Aus dieser Dichte wird der Sog für das ganze Gitter auf einmal bestimmt, mit einer Fourier-Transformation.
  3. Jedes Teilchen liest seinen Sog aus den Zellen um sich herum, bekommt einen Stoß und bewegt sich weiter.

Dazu kommt, was ein Stück Universum von einem Sonnensystem unterscheidet:

Ein simuliertes Universum kurz nach dem Start: der Würfel ist gleichmäßig blau gefüllt
Kurz nach dem Start ist noch nichts zu erkennen. Das Netz vom Bild ganz oben entsteht allein aus der Schwerkraft.

Zur Frage nach Euler: Die Simulation nimmt stattdessen das Schema "halber Stoß, Bewegung, halber Stoß". Es braucht pro Schritt ebenfalls nur eine Kraftberechnung, hält die Bahnen über viele Schritte aber deutlich besser.

Die Arbeit merkt an, es sei schwierig zu bestimmen, ob ein Ergebnis akkurat ist. Für einen Fall gibt es eine exakte Lösung: eine einzelne glatte Welle, deren Verlauf sich auf dem Papier ausrechnen lässt. Die Simulation trifft sie auf wenige Prozent. Außerdem bleibt die Gesamtmasse erhalten, was immer die Teilchen tun.

Das simulierte Universum am Ende, jedes Teilchen nach seiner Flugrichtung eingefärbt
Die Ansicht "Bewegung" im eigenen Universum. Die breitesten Punkte fliegen mit rund 1 000 km/s, wie Galaxien in echten Galaxienhaufen.

Was die Simulation nicht ist:

5 Performanz

Die Arbeit hat die Laufzeit für den Plan mit allen Paaren abgeschätzt: Sie wächst mit dem Quadrat der Teilchenzahl. Bei 262 144 Teilchen sind das 34 Milliarden Paare, in jedem Schritt. Das Gitter braucht für denselben Schritt auf meinem Rechner 43 Millisekunden, weil sein Aufwand nur mit der Zahl der Teilchen und der Zellen wächst.

Gemessen, in Schritten pro Sekunde:

Größe Gitter Teilchen ohne Bild im Browser
Flüssig 64³ 262 144 23 13 bis 15
Scharf 128³ 262 144 4,1 nicht gemessen
Fein 128³ 2 097 152 2,8 2,1

"Im Browser" stammt aus einem Testlauf ohne Grafikkarte, bei dem das Bild auf dem Prozessor mitgerechnet wird. Mit Grafikkarte sollte es eher schneller sein, gemessen habe ich das nicht.

Meine Vorgabe war mindestens ein Schritt pro Sekunde. Schafft ein Rechner das in einer Größe nicht, wechselt der Lauf von selbst in die nächstkleinere und sagt es. "Flüssig" ist die Größe zum Zuschauen: Das Gitter ist grob und die Fäden sind verwaschener als in "Fein", dafür ist ein ganzer Lauf in einer Viertelminute durch. Gerechnet wird in einem eigenen Thread, die Seite bleibt dabei bedienbar.

Für das Volumenbild gilt die Abschätzung der Arbeit weiter: Der Aufwand ist die Zahl der Bildpunkte mal die Zahl der Schritte je Strahl. Deshalb lässt sich unter "Bild" beides zusammen herunter- oder heraufsetzen.

6 Ergebnis

2017 bestand das Programm aus einem Grafikfenster und einer Konsole, eingerichtet über eine Konfigurationsdatei. Jetzt ist es eine Seite mit einem Menü:

Weggefallen sind die Konsolenbefehle, das Nachladen anderer Datensätze und das Plugin-System. Die Rohdaten kann das Programm nicht mehr lesen; es zeigt, was vorab umgerechnet wurde.

7 Zusammenfassung und Ausblick

Die Arbeit schloss mit der Vermutung, die Frage sei zu verneinen. Für das, was damals geplant war, bleibt das richtig: Das Sonnensystem, Teilchen für Teilchen und Paar für Paar, habe ich auch jetzt nicht gerechnet.

Für das, was die Arbeit eigentlich angestoßen hat, die Bilder vom kosmischen Netz, fällt die Antwort heute anders aus. Ein Heimrechner kann ein Stück Universum simulieren, sogar in einem Browser-Tab und in Sekunden, wenn man sich auf die Schwerkraft beschränkt und ein grobes Gitter hinnimmt. Der Unterschied zu 2017 liegt weniger in der Hardware als im Verfahren: ein Gitter statt aller Paare. Als Ausweg hatte die Arbeit neuronale Netze und Parallelisierung vorgeschlagen. Gebraucht habe ich keins von beiden.

Was offen bleibt:

Quellen

Comments

captcha