🌌 Barnes–Hut N-Körper
Interaktiver Barnes–Hut-N-Körper-Simulator: Live-Quadtree, Theta-Kriterium-Abstieg, Geschwindigkeits-Verlet-Integration und ein Geschwindigkeitsvergleich mit dem naiven O(n²)-Algorithmus.
Über den Barnes-Hut-N-Körper-Algorithmus
Das gravitative N-Körper-Problem — die Berechnung der Kraft auf jedes Teilchen durch jedes andere Teilchen — erfordert naiv O(n²) Berechnungen pro Zeitschritt, was für große n unerschwinglich teuer wird. Der Barnes-Hut-Algorithmus (1986) reduziert dies auf O(n log n), indem er den Raum rekursiv in einen Quadtree (in 2D) oder Octree (in 3D) unterteilt und Cluster entfernter Körper als einzelnen Massenschwerpunkt behandelt, wenn das Verhältnis s/d (Zellgröße s zu Abstand d) unter einen Schwellenwinkel θ fällt. Er bildet das Rückgrat moderner Galaxienentstehungs-Codes wie GADGET und wird in praktisch jeder kosmologischen Strukturbildungssimulation des Universums verwendet.
Diese Simulation lässt Sie die Körperanzahl N (bis zu 2.000), den Öffnungswinkel θ (0 = exakt, 1,5 = sehr angenähert), das gravitative Softening ε und den Zeitschritt dt über vier Anfangsvoreinstellungen variieren: Gaswolke, zwei verschmelzende Galaxien, zentrale Masse + Wolke und ein Ring. Wird die Quadtree-Überlagerung aktiviert, zeigt sie für einen hervorgehobenen Körper, welche Zellen angenähert (cyan) und welche rekursiv durchlaufen werden (pink), wodurch der Kompromiss zwischen Geschwindigkeit und Genauigkeit sofort sichtbar wird.
Häufig gestellte Fragen
Was ist das N-Körper-Problem?
Das gravitative N-Körper-Problem fragt: Gegeben seien N Punktmassen mit bekannten Anfangspositionen und -geschwindigkeiten — berechnen Sie ihre zukünftigen Positionen unter gegenseitiger Newtonscher Gravitation F = Gm₁m₂/r². Für N = 2 ist die Lösung ein Kegelschnitt (Kepler-Bahn); für N ≥ 3 existiert keine allgemeine geschlossene Lösung, und numerische Integration ist erforderlich. Jeder Zeitschritt kostet naiv O(n²) Kraftauswertungen, was große Simulationen — etwa die Modellierung von Millionen Sternen — ohne Näherungsalgorithmus unpraktikabel macht.
Wie funktioniert der Barnes-Hut-Quadtree?
Bei jedem Zeitschritt fügt der Algorithmus alle Körper in einen Quadtree ein — eine rekursive Unterteilung des 2D-Raums in vier gleiche Quadrate. Um die Kraft auf Körper i zu berechnen, wird der Baum von der Wurzel aus durchlaufen: Ist die Zelle eines Knotens „weit genug“ entfernt (s/d < θ, wobei s die Zellbreite und d der Abstand zu i ist), wird die gesamte Zelle durch ihre Gesamtmasse und ihren Massenschwerpunkt angenähert. Andernfalls wird der Knoten geöffnet und seine Kinder werden geprüft. Dies reduziert die typische Anzahl der Wechselwirkungen von O(n) pro Körper auf O(log n).
Was steuert der Öffnungswinkel θ?
θ (Theta) ist der zentrale Genauigkeits-/Geschwindigkeitsparameter. Bei θ = 0 wird jede Zelle unabhängig von der Entfernung stets geöffnet, was die exakte O(n²)-direkte Summe reproduziert. Bei θ = 0,5 (ein gängiger Produktionswert) ist der Algorithmus etwa zu 95 % so genau wie die direkte Summierung, läuft dabei aber für n = 1.000 etwa 30–100× schneller. Bei θ = 1,5 ist die Geschwindigkeit maximal, aber die Struktur entfernter Galaxien wird merklich verschmiert. Die Simulation zeigt das Live-Geschwindigkeitsverhältnis an, sodass Sie diesen Kompromiss direkt beobachten können.
Was ist gravitatives Softening (ε)?
Gravitatives Softening ersetzt das 1/r²-Kraftgesetz durch 1/(r² + ε²), was verhindert, dass die Kraft ins Unendliche divergiert, wenn zwei Körper sich sehr nahe kommen. Ohne Softening würden nahe Begegnungen einen infinitesimal kleinen Zeitschritt zur genauen Integration erfordern, wodurch die Simulation abstürzt oder unsinnige „Schleuder“-Geschwindigkeiten erzeugt. Die Softening-Länge ε wird typischerweise auf einen Bruchteil des mittleren Teilchenabstands gesetzt; in realen kosmologischen Simulationen liegt sie bei etwa 1 kpc für Dunkle-Materie-Teilchen.
Warum ist der Barnes-Hut-Algorithmus O(n log n)?
Der Quadtree hat O(n) Knoten und Tiefe O(log n). Für jeden der n Körper besucht der Baumdurchlauf im Durchschnitt O(log n) Knoten, bevor genügend Zellen das θ-Kriterium erfüllen. Multipliziert ergibt das O(n log n) Kraftauswertungen pro Schritt. Auch der Aufbau des Baumes selbst kostet O(n log n). In der Praxis sind die konstanten Faktoren klein, und für n = 10.000 liegt die Beschleunigung gegenüber O(n²) bei etwa dem 100- bis 1.000-Fachen.
Was passiert bei den Voreinstellungen für Galaxienverschmelzungen?
Wenn zwei Galaxien einander durchdringen, reißen Gezeitenkräfte Sterne aus den Außenbereichen und schleudern sie in lange „Gezeitenschweife“ und Brücken, die sich über Millionen Lichtjahre erstrecken. Der Prozess wird fast ausschließlich von der Schwerkraft bestimmt; die Sternscheiben durchdringen einander weitgehend ungehindert, weil Sterne so weit voneinander entfernt sind. Die Milchstraße und die Andromeda-Galaxie befinden sich auf Kollisionskurs und werden voraussichtlich in etwa 4,5 Milliarden Jahren verschmelzen, wodurch eine ähnliche Gezeitenschweif-Struktur entsteht, wie sie in dieser Voreinstellung sichtbar ist.
Wie schlägt sich die Beschleunigung in der Praxis gegenüber dem naiven O(n²) ab?
Die Simulation zeigt die Anzahl der Barnes-Hut-Auswertungen neben den naiven n(n–1)/2 Vergleichen, die für die direkte Summierung nötig sind. Für n = 500 und θ = 0,7 wertet Barnes-Hut typischerweise etwa 3.000–5.000 Kraftpaare pro Körper und Schritt aus statt 499, was eine 50–100× Beschleunigung ergibt. Mit wachsendem n verstärkt sich der Vorteil: Bei n = 2.000 benötigt die naive Methode fast 2 Millionen Paarauswertungen pro Schritt, während Barnes-Hut nur etwa 20.000 benötigt.
Was sind kinetische und potentielle Energie, und warum schwanken sie?
Kinetische Energie KE = Σ ½mᵢvᵢ² und gravitative potentielle Energie PE = –Σᵢ≠ⱼ Gmᵢmⱼ/rᵢⱼ (summiert über alle Paare). In einer echten konservativen Simulation sollte die Gesamtenergie E = KE + PE konstant sein, doch numerische Integration führt Fehler ein. Der hier verwendete Leapfrog-(Verlet-)Integrator ist symplektisch, das heißt, er erhält ein modifiziertes Hamilton-Funktional und hält die langfristige Energiedrift sehr gering. Die beobachteten Schwankungen sind teils echte physikalische Austausche (z. B. tauscht ein Körper auf exzentrischer Bahn KE gegen PE) und teils numerischer Rundungsfehler durch endliches dt.
Was bedeutet die Hervorhebung „Empfindlichkeit gegenüber Anfangsbedingungen“?
Wenn Sie „θ-Abstieg für ausgewählten Körper hervorheben“ aktivieren, zeigt ein Klick auf einen Körper, welche Quadtree-Zellen er annähert bzw. rekursiv durchläuft. Dieselbe Quadtree-Zelle kann für Körper an unterschiedlichen Positionen unterschiedlich behandelt werden, was zeigt, dass Barnes-Hut ein adaptiver Algorithmus ist. Für Chaos in den tatsächlichen N-Körper-Trajektorien nutzen Sie den Zwei-Trajektorien-Vergleich in verwandten Simulationen: Selbst eine Störung von Δ = 10⁻⁵ in den Anfangsbedingungen führt zu exponentiell divergierenden Bahnen, was zeigt, dass das N-Körper-Problem im Allgemeinen chaotisch ist.
Wird der Barnes-Hut-Algorithmus in echten astrophysikalischen Codes verwendet?
Ja — die GADGET-Codefamilie (Springel 2001, 2005) verwendet einen hierarchischen Baum, der Barnes-Hut sehr ähnlich ist, und wurde zur Simulation der Millennium-Simulation (10 Milliarden Teilchen) und der IllustrisTNG-Galaxienentstehungsläufe eingesetzt. Moderne Codes kombinieren Barnes-Hut oft mit Fast-Multipole-Methoden (FMM), Particle-Mesh-(PM)-Techniken oder GPU-Parallelismus, um bis zu 10¹² Teilchen zu simulieren. Der Algorithmus wird auch außerhalb der Astrophysik eingesetzt, in der Molekulardynamik, Strömungssimulation und beim Rendern dichter Partikelsysteme.
Was bedeutet „Massenschwerpunkt“ im Quadtree-Kontext?
Jeder innere Knoten des Quadtrees speichert die Gesamtmasse M = Σmᵢ und die massegewichtete mittlere Position r_cm = Σmᵢrᵢ / M aller Körper innerhalb dieser Zelle. Wird eine entfernte Zelle angenähert, wird die gravitative Kraft auf Körper i so berechnet, als wäre die gesamte Masse dieser Zelle bei r_cm konzentriert. Diese Einzel-Pol-Näherung ist bis zur ersten Ordnung in s/d genau; Multipolentwicklungen höherer Ordnung (Quadrupol, Oktupol) können für bessere Genauigkeit auf Kosten von mehr Speicher und Rechenaufwand einbezogen werden.
Der Barnes–Hut-Algorithmus nähert eine N-Körper-Gravitationssimulation in O(n log n) mithilfe eines Quadtrees und eines θ-Genauigkeitskriteriums an. Beobachten Sie, wie sich der Baum an Cluster anpasst und die Kraftauswertungen im Vergleich zum naiven O(n²) drastisch sinken.
3D · Three.js/WebGL-Renderer · Ziel: 60 FPS · läuft vollständig clientseitig, keine Installation nötig