Massenschwerpunkt chaotisch in n-Körper-Gravitationswechselwirkungen?

Ich habe eine Gravitationsteilchensimulation geschrieben. Um zu verhindern, dass die Partikel aus dem Bildschirm geschleudert werden, habe ich ein wenig Reibung hinzugefügt (es macht die Animation auch hübscher, wenn sich die Partikel ineinander winden :)). Die auf Partikel ausgeübte Gesamtreibung beträgt 0,05 % pro Schritt oder etwa 26 % pro Sekunde.

Da die Partikel an zufälligen Orten verstreut beginnen, erwartete ich, dass sich der Massenmittelpunkt bewegt, aber nicht chaotisch. Das Aufprallen von Partikeln wird genau simuliert. Kann dieses Verhalten im wirklichen Leben beobachtet werden oder ist es das Ergebnis von Reibung oder einem anderen Faktor, an den ich nicht gedacht habe? Dies ist das Ergebnis der Partikelsimulation:

Grün ist das Massenzentrum, weiß sind einzelne Teilchen.Ergebnis der Partikelsimulation

BEARBEITEN:

Um einige Ihrer Fragen zu beantworten: Die Partikel können für immer aus dem Bild verschwinden. Sie werden nicht angezeigt, aber sie beeinflussen und werden von jedem anderen Partikel beeinflusst.

Meine Partikel werden voneinander angezogen, indem bei jedem Schritt die folgende Kraft auf sie ausgeübt wird:

Für k -ten Teilchens D -te Dimension bei N + 1 -st Schritt mit Masse M Wo Δ l D ist der Abstand zwischen Partikeln in D -te Dimension, Δ l ist der Gesamtabstand zwischen Partikeln, D ist die Anzahl der Dimensionen, und μ Reibungsfaktor, Geschwindigkeit

v k , D , N + 1 = ( v k , D , N + ich = 1 k 1 M k M ich Δ l D Δ l D + ich = k + 1 N M k M ich Δ l D Δ l D ) ( 1 μ )

Ich habe einige zusätzliche Tests an der Simulation durchgeführt. Ich habe die Reibung entfernt, sodass keine "äußeren" Kräfte mehr vorhanden sind, und Folgendes erhalten (beachten Sie, dass die Partikelpositionen mit einem zufälligen Startwert generiert wurden, sodass die Startbedingungen nicht dieselben sind):

Simulation ohne Reibung

Ich habe den Zeitschritt von 600 auf 60000 pro Sekunde erhöht, aber es hat nicht geholfen. Ich dachte, es seien Rundungsfehler, also wechselte ich von Gleitkommazahlen zu viel genaueren Datenstrukturen mit einer Genauigkeit von 1000 Stellen. Wie erwartet wurde die Simulationszeit exponentiell länger, aber es half nicht wirklich. Hier können Sie die beschleunigte Animation der hochpräzisen Simulation sehen . Ich dachte, es könnte das Ergebnis der Tatsache sein, dass Kollisionen keine Elastizität haben, aber wenn ich darüber nachdenke, sollte es den Schwerpunkt nicht ändern. Ist es wirklich das Problem des noch zu kleinen Zeitschritts?

Ich bin kein Experte, aber n-Körper-Systeme mit n über 2 sind chaotisch, daher erwarten Sie, dass sich im Laufe der Zeit mehrere numerische Fehler ansammeln. Tatsächlich ist es bei diesen numerischen Simulationen sehr üblich, die Bewegungen so zu korrigieren, dass das CM immer im Zentrum Ihrer Simulation bleibt.
Ja, das ist tatsächlich ein schwieriges Problem, das in der Simulation korrekt zu lösen ist. Welches Integrationsschema verwenden Sie?
Wenn ein Partikel vom Bildschirm fliegt, prallt es zurück, wickelt sich herum oder geht es für immer weiter?
Vermutlich gibt es eine exakte Gleichung, einschließlich der Reibungsterme, die Sie numerisch modellieren. Wenn Sie das für uns schreiben könnten, könnten wir vielleicht sehen, ob es an Dynamik gewinnt. Zwei Partikel könnten ausreichen.

Antworten (2)

Nach der Impulserhaltung kann der Schwerpunkt eines Systems ohne äußere Kräfte nicht beschleunigt werden. Mit anderen Worten, wenn der Schwerpunkt zu Beginn in Ruhe ist (was in Simulationen im Allgemeinen ein gutes Verfahren ist), sollte er immer in Ruhe bleiben.

Es ist normal, dass numerische Fehler zu Abweichungen führen, aber die Bewegung, die Sie sehen, sieht sehr groß aus (übrigens ein wirklich cooles Bild!). Das Einbringen von Reibung (effektiv eine externe Kraft) kann auch Abweichungen von der Impulserhaltung einführen --- je nachdem, wie es implementiert wird. Diese beiden Effekte (Reibung und numerischer Fehler) können chaotische Störungen in den Massenmittelpunkt einführen.

Das erste, was Sie vielleicht ausprobieren möchten, ist zu sehen, ob das Verringern Ihres Zeitschritts dazu führt, dass der Massenmittelpunkt stationärer bleibt. Das traditionelle Kriterium zur Bestimmung, welcher (maximale) Zeitschritt in hydrodynamischen Simulationen verwendet werden soll, ist die "CFL-Bedingung" ; Ich habe anscheinend Leute, die dies auf N-Body-Simulationen verallgemeinern, indem sie die maximale Partikelgeschwindigkeit anstelle der Schallgeschwindigkeit und den minimalen Abstand zwischen Partikeln anstelle der Gittergröße verwenden. Dies führt zu einem Zustand wie

Δ T Δ X Mindest v max

Diese Bedingung kann dazu führen, dass die Simulation sehr „teuer“ wird (langsame Zeitschritte), wenn Teilchen nahe zusammenkommen – und ihre gegenseitigen Kräfte (Beschleunigungen und Geschwindigkeiten) sehr groß sind. Um dies zu mildern, führen die Menschen häufig eine „Schwerkrafterweichung“ ein , bei der die Gravitationskraft zwischen zwei Körpern berechnet wird als:

F = G M 1 M 2 ( R + A ) 2

Wo A ist die „Erweichungslänge“ und sollte im Vergleich zur „interessierenden Größe“ (z. B. der anfänglichen Trennung von Partikeln) klein sein.

Eine schnelle und schmutzige Lösung für die Bewegung des Massenschwerpunkts besteht darin, die Geschwindigkeit des Massenschwerpunkts in jedem Zeitschritt zu berechnen und diese Geschwindigkeit von allen Partikeln zu subtrahieren. Dadurch wird die Simulation bei jedem Zeitschritt effektiv auf den Massenmittelpunkt neu zentriert.

Ich gehe davon aus, dass Reibung in Ihrem Simulationscode eine externe geschwindigkeitsabhängige Kraft ist. Da Sie solche externen Kräfte haben, werden Ihre Gesamtenergie, Ihr Gesamtdrehimpuls und Ihr Gesamtimpuls wahrscheinlich nicht erhalten bleiben.

In Ihrem Fall ist die Reibung eine phänomenologische äußere Kraft, aber ein ähnliches Verhalten könnte auch mit einem großen Partikel simuliert werden, das sich in einer Wolke kleinerer Partikel bewegt. Allmählich würde die kinetische Energie dieses Teilchens gleichmäßig auf die Freiheitsgrade dieses Systems verteilt werden. In diesem Fall bleiben die Gesamtenergie und der Gesamtimpuls des Systems erhalten, da keine äußeren Kräfte wirken.

Im Allgemeinen würde ich empfehlen, bei numerischen Implementierungen Schritt für Schritt vorzugehen, wenn Korrektheit erforderlich ist. Spart ein einzelnes Teilchen Energie? Behält die „Erde“, die um die feste „Sonne“ kreist, Energie und Drehimpuls? Und wenn 'Sonne' nicht fixiert ist? Wenn Sie zu chaotischen Systemen übergehen, könnten Sie die Summe der Gesamtenergie und der von der Reibungskraft geleisteten Arbeit berechnen und sehen, ob diese erhalten bleibt?