TheiaSim

Bernhard

Registriertes Mitglied
Beides gefällt mir nicht :)
Hallo SRMeister,

ich habe gerade gesehen, dass man das SWIFTER-Paket mit den aktuellen GNU-Tools übersetzen kann. Ein Makefile wird ja mitgeliefert. Mit den Befehlen gcc, gfortran und make kann nach wenigen Anpassungen (siehe mitgelieferte README-Datei) an die lokale Installation das gesamte Paket übersetzt werden. Die mitgelieferten Beispieldateien enthalten leider keine Hill-Radien, so dass man mit diesen Beispieldateien ohne Modifikationen nichts machen kann.

Die vorgeschlagene Näherung aus dem 91er Wisdom-Holman-Paper habe ich mittlerweile nachgerechnet. Sie setzt voraus, dass die Jacobi-Koordinaten aus den euklidischen Schwerpunktskoordinaten berechnet werden. Deswegen verstehe ich nicht, warum die SCATR-Autoren bei den Eingabedateien heliozentrische Koordinaten verwenden. Das ist allerdings mittlerweile nebensächlich, da wir den SCATR-Code sowieso nicht weiter verwenden wollen.

Für die weitere Bearbeitung des Themas sind Fortran90-Kenntnisse also unumgänglich. Welche Literatur würdest Du da empfehlen?
MfG
 

Bernhard

Registriertes Mitglied
ich habe gerade gesehen, dass man das SWIFTER-Paket mit den aktuellen GNU-Tools übersetzen kann. Ein Makefile wird ja mitgeliefert. Mit den Befehlen gcc, gfortran und make kann nach wenigen Anpassungen (siehe mitgelieferte README-Datei) an die lokale Installation das gesamte Paket übersetzt werden. Die mitgelieferten Beispieldateien enthalten leider keine Hill-Radien, so dass man mit diesen Beispieldateien ohne Modifikationen nichts machen kann.
Hallo Bynaus,

ich habe gerade SyMBA mit den mitgelieferten Beispieldateien ausprobiert. Dabei werden die vier großen Planeten (Saturn, Jupiter, Uranus und Neptun) als gravitierende Massen und Pluto als masseloser Testkörper betrachtet. Den Hill-Radius kann man für jeden massiven Körper in der Datei pl.in einfach hinter die Masse als zusätzlichen Parameter setzen. Im Prinzip kann man jetzt die Eingabedateien soweit präparieren, dass man Deinen Projektvorschlag beispielsweise über einen Zeitraum von drei Millionen Jahre rechnen lassen kann.

Ich werde das als nächstes dann vorbereiten und nachsehen, ob das Programm interessante Ergebnisse berechnet.
MfG

EDIT: Lasse gerade SyMBA mit 8 Planeten (Merkur,Venus,Erde,Mars,...,Neptun) und 25 Testkörpern laufen. Schrittweite 8 Tage wegen der geringen Umlaufzeit von Merkur. Ich müsste jetzt nur noch wissen wie man den Testkörpern eine Masse mitgeben kann.

EDIT_EDIT: In einhunderttausend Jahren überschreitet laut SyMBA ein Testkörper die Grenze von 500 AU. (Das wussten wir eigentlich schon)
 
Zuletzt bearbeitet:

Bernhard

Registriertes Mitglied
Ich habe jetzt die Eingabedateien gemäß Bynaus' Vorgaben komplett mit 5 massiven Testkörper (1 Mondmasse und viermal 0.1 Mondmassen), die von der Erdoberfläche starten und 20 Testkörper, die ebenfalls mit zufälligen Richtungen von der Erdoberfläche starten. Das Flag CHK_CLOSE für planetary close encounters habe ich auf yes gesetzt. Bei den Planetendaten muss man dann auch die Radien der Planeten mit angeben.

Leider liefert das Modul swifter_symba dann Fehlermeldungen:

SWIFTER Warning:
In symba_step_recur, local time step is too small
Roundoff error will be important!
Planet 5 is lost!!!!!!!!!!

aber man kann im Quelltext ja nachsehen, was da schief läuft.
 

Bernhard

Registriertes Mitglied
ich habe gerade gesehen, dass man das SWIFTER-Paket mit den aktuellen GNU-Tools übersetzen kann. Ein Makefile wird ja mitgeliefert. Mit den Befehlen gcc, gfortran und make kann nach wenigen Anpassungen (siehe mitgelieferte README-Datei) an die lokale Installation das gesamte Paket übersetzt werden.
Schade nur, dass die derart übersetzten Dateien nicht ausführbar sind. Eventuell fehlen bei dem Befehl gfortran -c aber auch nur die passenden Compilerflags? Aktuell verwende ich deswegen wieder den Intel Fortran Compiler ifort.
 

Bynaus

Registriertes Mitglied
Hallo Bernhard,
Das klingt sehr interessant! Ich vermute mal, die Ursache deiner Fehlermeldung liegt darin, dass du die Objekte von der Erdoberfläche aus starten lässt. Lass sie doch ein paar 100000 km weiter oben starten (mit angepassten Geschwindigkeiten, natürlich), dann sollte das wohl kein grosses Problem sein.

Übrigens: Wir sind nicht (mehr) die einzigen: Hier hat eine Gruppe die Trümmer der "klassischen" Giant Impact Kollision verfolgt. http://arxiv.org/abs/1206.4190 Wäre vielleicht interessant, bei diesen nachzusehen, wie sie die hier diskutierten Probleme gelöst haben. Ausserdem habe ich heute von einer anderen Gruppe erfahren, die sich des Themas angenommen hat. Was natürlich nicht heisst, dass wir gleich aufgeben sollten, im Gegenteil. :)
 

Bernhard

Registriertes Mitglied
Hi Bynaus,

ich habe es gerade mit einer Starthöhe von 500.000 km (etwa = halber Hill-Radius) probiert und siehe da: Swifter kommt klar damit :) .

Den verlinkten Preprint habe ich überflogen. Die verwenden den Mercury-Code, den wir ganz am Anfang mal diskutiert hatten. Man müsste jetzt in den nächsten Schritten Swifter dazu bringen Daten zu liefern. Das kann wieder etwas dauern. Leider produziert Swifter nur Binärdaten, die eventuell mit den mitgelieferten Tools analysiert werden können.

Zeitlich bleibt alles sehr eng und ich denke wir sollten uns da auch weiterhin keinen Stress machen. Alles just for fun. Solltest Du irgendwann etwas veröffentlichen wollen verzichte ich voraussichtlich sowieso auf meine Autorenschaft, weil ich nicht in der Forschung tätig bin.
MfG

EDIT: Die kleine Schrittweite von 8 Tagen erhöht leider die Rechenzeit ziemlich stark. Das kann noch Probleme machen, weil ich meinen Rechner nicht tagelang rechnen lassen will.
 
Zuletzt bearbeitet:

Bynaus

Registriertes Mitglied
Swifter kommt klar damit

Super! :)

Zeitlich bleibt alles sehr eng und ich denke wir sollten uns da auch weiterhin keinen Stress machen. Alles just for fun.

Sehe ich genauso!

Solltest Du irgendwann etwas veröffentlichen wollen verzichte ich voraussichtlich sowieso auf meine Autorenschaft, weil ich nicht in der Forschung tätig bin.

Das solltest du sicher nicht tun. Ob jemand in der Forschung tätig ist, spielt keine Rolle (es gibt immer wieder mal solche Fälle! Gerade z.B. in der Meteoritenforschung, wo manchmal passionierte Sammler auf Entdeckungs-Papers eines kürzlich gefallenen Meteoriten drauf sind). Der Hauptautor ist eigentlich stets der, der das Paper geschrieben hat, aber alle, die beigetragen haben, sollten Ko-Autoren sein. Sollte es jemals eine Publikation geben aus diesem Projekt, wirst du sicher mit drauf sein!
 

Bernhard

Registriertes Mitglied
Guten Morgen Bynaus,

für die Ergebnisse von Swifter gibt es eine recht umfangreiche Visualierungssoftware. Swifter produziert bei mir bereits Binärdaten in der Ausgabe und ich werde heute mal versuchen diese mit SwiftVis zu visualisieren.
MfG

EDIT: Vom ersten Überfliegen und Ausprobieren her vermute ich mal, dass man mit SwiftVis vorwiegend, bzw. nur Bahnelemente analysieren kann :( . Das ist für unsere Zwecke (Verteilung der Positionen) leider wenig hilfreich. Vermutlich müsste man jetzt die nötigen Ausgabefunktionen aus dem SCATR-Code in den Swifter-Code einbauen, um an die Positionen der verschiedenen Körper zu kommen. Man könnte dann prinzipiell die Positionen auch in eine Grafik packen. Leider "riecht" das alles nach ziemlich viel Arbeit.
 
Zuletzt bearbeitet:

Bernhard

Registriertes Mitglied
Vermutlich müsste man jetzt die nötigen Ausgabefunktionen aus dem SCATR-Code in den Swifter-Code einbauen, um an die Positionen der verschiedenen Körper zu kommen.
Die Swifter-Ausgabefunktionen kann man relativ leicht anpassen, so dass die Endpositionen aller Planeten und Testkörper in eine Textdatei geschrieben werden. Irgendetwas scheint dabei aber noch nicht zu funktionieren, weil mit unmodifizierten Startbedingungen (ohne Mond) und einer Laufzeit von 1000 Jahren Merkur bei etwa 4 AU stoppt. Die anderen Planeten bekommen leider ebenfalls ziemlich eigenartige Werte.
 

Bernhard

Registriertes Mitglied
Die anderen Planeten bekommen leider ebenfalls ziemlich eigenartige Werte.
Hallo Bynaus,

zum Abschluss des Tages gibt es doch noch eine kleine Erfolgsnachricht. Bei der Ausgabe der Planetenpositionen ist mir beim letzten Beitrag nicht aufgefallen, dass die unterliegende verlinkte Liste nicht sortiert war. So standen die Werte von Jupiter an zweiter Position und ich dachte es wären die Werte für Merkur, usw. (Ist halt mein erstes Fortran90 Projekt :eek: )

D.h. Ich habe jetzt eine SyMBA-Version, welche die wichtigsten Daten als Klartext in eine Textdatei schreibt!! Wir müssten jetzt nur noch ein Programm suchen, das diese 2D-Koordinaten in eine geeignete Grafik einzeichnet und wir bekommen die berechnete Verteilung der Fragmente im Sonnensystem.

Da das www sicher solche Programme bietet, werde ich jetzt wieder die uns interessierenden Daten verwenden und austesten wie viele Testkörper ich alleine noch generieren kann. Interessant wäre schon mal die Verteilung von 1000 Fragmenten nach 1000 Jahren :cool: .
MfG

EDIT: 1000 Fragmente über 1000 Jahre ist kein Problem. Rechenzeit ganz grob einige wenige Minuten. 5 Fragmente werden dabei von der Erde eingefangen. Man kann bei SyMBA übrigens auch angeben, ab welcher Distanz zur Sonne Fragmente von der Sonnen eingefangen werden.
 
Zuletzt bearbeitet:

Bynaus

Registriertes Mitglied
Hallo Bernhard - toll, das sind ausgezeichnete Neuigkeiten!

Sind das 1000 massive oder massenlose Fragmente? Und welche Anfangsverteilung in Position und Geschwindigkeit hast du ihnen gegeben?
Ich denke, im Notfall kann man die Darstellung auch in Matlab oder so machen, ich glaube, das ist ganz üblich. Vielleicht kann ja auch SRMeister die Textausgabe-Dateien in sein Programm einlesen?
 

Bernhard

Registriertes Mitglied
Hallo Bernhard - toll, das sind ausgezeichnete Neuigkeiten!
Das SyMBA-Paket scheint geeignet zu sein. Es enthält wirklich nette Features.

Sind das 1000 massive oder massenlose Fragmente?
Es sind 5 Fragmente mit Masse (1x Mondmasse + 4x 1/10 Mondmasse) und 1000 Fragmente ohne Masse.

Und welche Anfangsverteilung in Position und Geschwindigkeit hast du ihnen gegeben?
Die masselosen Körper starten an der Erdoberfläche mit einer maximalen Abweichung zwischen +20° und -20° zur Ekliptik. Die Richtung innerhalb der Ekliptik ist zufällig verteilt.

Die fünf Körper mit Masse starten innerhalb eines elliptischen Kegels, dessen Symmetrieachse in der Ekliptik liegt und der eine Öffnung von 5° innerhalb der Ekliptik und 10° senkrecht zur Ekliptik besitzt.

Sowohl die masselosen als auch die Trümmerteile mit Masse steigen zuerst nur im Gravitationsfeld der Erde auf eine Höhe von 500 Tausend Kilometer und werden dabei entsprechend des Energiesatzes abgebremst. Die Startgeschwindigkeit an der Erdoberfläche liegt für alle Trümmerteile zwischen 1.0x und 1.4x Fluchtgeschwindigkeit an der Erdoberfläche (ca. 11 km/s). Der weitere Verlauf ab dieser Höhe wird dann von SyMBA berechnet.

Ich denke, im Notfall kann man die Darstellung auch in Matlab oder so machen, ich glaube, das ist ganz üblich. Vielleicht kann ja auch SRMeister die Textausgabe-Dateien in sein Programm einlesen?
Ich habe gestern fünf "Snapshots" mit den Simulationszeiten 1,10,100,1000 und 10000 Jahre laufen lassen. Die 10000-Jahre Simulation hat ca. 45 Minuten gerechnet. Für die grafische Darstellung der Ergebnisse dachte ich zuerst an GNUPlot. Das ist kostenlos und für solche Zwecke in der Technik sehr beliebt. Wenn Du Matlab hast schicke ich Dir die Ergebnisse gerne per eMail zu. Für den Fall, dass SRMeister gerade im Urlaub ist, müssen wir uns erst mal selbst behelfen. Wichtig wäre noch eine Skala an der Grafik.
MfG
 
Zuletzt bearbeitet:

Bernhard

Registriertes Mitglied
Hallo Bynaus,

ich habe SyMBA eben noch als Test mit reinen Planetenstartbedingungen inklusive Mond, aber ohne masselose Testkörper "gefüttert". Wenn sich bei dem SCATR-Code und einer Rechnung über 1000 Jahre das System Erde-Mond praktisch komplett getrennt hat, so bleibt bei SyMBA das System gravitativ gekoppelt. SyMBA verwendet für dieses Subsystem also im Wesentlichen die korrekten Keplerorbits :) .
MfG
 

Bynaus

Registriertes Mitglied
Hallo Bernhard,

Das klingt alles sehr gut - die Startbedingungen scheinen mir ausgezeichnet gewählt. In einem späteren Run können wir gerne noch die Masse der massiven Fragmente erhöhen, so dass sie grob einer Power-law folgen, in der Summe aber weniger als ca. 0.05 Erdmassen haben.
GNUplot is für mich übrigens genauso okay wie Matlab, das war nur ein Beispiel. Das einzige, was in diesen Plots jetzt noch fehlt, sind die Bahnen der Planeten (z.B. in einer anderen Farbe), aber das ist ja letztlich fast trivial.

Ich würde gerne das Programm mal ausprobieren - kannst du es kompilieren und mir schicken? Dann kann ich auch mal ein wenig damit spielen! :)

Hast du schon Statistiken erstellt, wie viele Teilchen jeweils mit den Planeten kollidieren, insbesondere mit der Erde? Was geschieht mit den massiven Teilen?
 

Bernhard

Registriertes Mitglied
Das einzige, was in diesen Plots jetzt noch fehlt, sind die Bahnen der Planeten (z.B. in einer anderen Farbe), aber das ist ja letztlich fast trivial.
Kann ich machen. Ich kann dabei erst mal nur mit einem Zeichenprogramm dünne, konzentrische Kreise für die Planeten Merkur, Venus, Erde und Mars einzeichnen.

Ich würde gerne das Programm mal ausprobieren - kannst du es kompilieren und mir schicken? Dann kann ich auch mal ein wenig damit spielen! :)
Ich habe SyMBA aktuell nur als Binärdatei für OpenSuSE 12.1 in der 64Bit Version, weil ich das auf meinem Rechner so installiert habe. Ob man diese Binärdatei mit Linux-Emulatoren (da gibt es ganz gute im Netz) bei Dir zum Laufen bekommt kann ich allerdings nicht versprechen und würde deswegen von derartigen Experimenten eher abraten.

Der sicherste und erfolgversprechendste Weg wäre hier, wenn Du Dir auf Deinem Rechner Linux als zweites Betriebssystem installierst. Ich habe bei mir ein OpenSuSE 12.1 (64Bit-Version) laufen. Ich könnte Dir auch Schritt für Schritt erklären, wie Du das machen kannst (Installationssupport). Man bekommt nach der Installation dann beim Start des Rechners ein Auswahlmenü mit welchem Betriebssystem gearbeitet werden soll. Der Speicherplatz auf der Festplatte der dabei verwendet werden soll kann eingestellt (das ist der schwierigste Punkt der Installation und nennt sich Partitionieren der Festplatte) werden und beträgt minimal 5 GB. Ich könnte Dir dann ebenfalls Schritt für Schritt erklären, wie Du den Quelltext von Swifter kompilieren kannst und dann das Programm testen kannst. Wenn Dich das interessiert sollten wir ein neues Thema mit dem Titel "Dualboot Windows7+Linux" aufmachen.

Hast du schon Statistiken erstellt, wie viele Teilchen jeweils mit den Planeten kollidieren, insbesondere mit der Erde? Was geschieht mit den massiven Teilen?
Das Programm druckt während des Programmablaufes Meldungen über die Testkörper aus, die mit Planeten kollidieren und auch über Testkörper, die das Sonnensystem verlassen. Erstaunlicherweise passiert da ziemlich wenig. Bei der Rechnung über 1000 Jahre gibt es aktuell nur fünf Kollisionen mit zwei Planeten (welche genau habe ich momentan nicht mehr im Kopf. Es sind entweder die fünf massiven Trümmerteile oder einer der Planeten Merkur, Venus, Erde). Bei der Rechnung über 10000 Jahre war mindestens ein Testkörper dabei, der das Sonnensystem verlassen hat. Am Ende waren aber immer noch rund 990 Testkörper aktiv, also ohne Kollision oder Runaway.

Die massiven Trümmerteile befinden sich nach 10000 Jahren im Bereich r=0.75 AU bis r=1.1 AU.
MfG
 

Bynaus

Registriertes Mitglied
Ich kann dabei erst mal nur mit einem Zeichenprogramm dünne, konzentrische Kreise für die Planeten Merkur, Venus, Erde und Mars einzeichnen.

Fürs erste (zur Illustration) reicht das auch schon.

Dualboot Windows7+Linux

Okay, das ist mir im Moment etwas viel Aufwand, gerade auch, weil am Dienstag eine Abstract-Deadline ansteht. Wir können das mal angehen, wenn ich mehr Zeit habe - sofern du natürlich bereit bis, bis dahin die Anlaufstelle für meine neugierigen Fragen zu spielen... :)

Am Ende waren aber immer noch rund 990 Testkörper aktiv, also ohne Kollision oder Runaway.

Okay. Weisst du eigentlich, was mehr Rechenaufwand benötigt? Die wenigen massiven Teile oder die vielen massenlosen? Testen könnte man das ja, in dem man mal einen Run ohne massive, einen ohne masselose rechnet und dann die Zeiten vergleicht. Das könnte uns einen Hinweis darauf geben, worauf wir uns am ehesten zuerst fokussieren. Wenn eines der beiden Szenerien sehr viel schneller ist als das andere, können wir z.B. (das "massive") mal für einige Millionen Jahre laufen lassen, oder beim anderen (das "masselose") die Anzahl deutlich Partikel erhöhen.

Die massiven Trümmerteile befinden sich nach 10000 Jahren im Bereich r=0.75 AU bis r=1.1 AU.

Das ist eine interessante Beobachtung, da sich in diesem Bereich ja eigentlich nur die Erde tummelt. So lange diese die Trümmerteile nicht ablenkt, dürften sie früher oder später mit ihr kollidieren.
 

Bernhard

Registriertes Mitglied
Okay, das ist mir im Moment etwas viel Aufwand, gerade auch, weil am Dienstag eine Abstract-Deadline ansteht. Wir können das mal angehen, wenn ich mehr Zeit habe - sofern du natürlich bereit bis, bis dahin die Anlaufstelle für meine neugierigen Fragen zu spielen... :)
Das können wir gerne so machen. Linux hat den großen Vorteil, dass LaTeX "ruckzuck" installiert ist und über die Konsole sehr leicht zu bedienen ist. Zusammen mit einem besseren Editor wie Kate kann man damit recht schnell professionelle pdfs erstellen. Die Compilerauswahl (inklusive Fortran) ist auch nicht zu verachten.

Okay. Weisst du eigentlich, was mehr Rechenaufwand benötigt? Die wenigen massiven Teile oder die vielen massenlosen? Testen könnte man das ja, in dem man mal einen Run ohne massive, einen ohne masselose rechnet und dann die Zeiten vergleicht. Das könnte uns einen Hinweis darauf geben, worauf wir uns am ehesten zuerst fokussieren. Wenn eines der beiden Szenerien sehr viel schneller ist als das andere, können wir z.B. (das "massive") mal für einige Millionen Jahre laufen lassen, oder beim anderen (das "masselose") die Anzahl deutlich Partikel erhöhen.
Die Rechenzeit erhöhen eher die vielen masselosen Testkörper. Man darf nicht vergessen, dass bei denen diese close encounters berechnet werden. Das Logging der Encounters hat bei 1000 Jahren und 1000 Teilchen bereits knapp 100MB! Eine Berechnung der Bahnen der fünf massiven Trümmerteile über mehrere Millionen Jahre ist leicht machbar. Ich werde das gleich mal für 10 Mio. Jahre laufen lassen.

Das ist eine interessante Beobachtung, da sich in diesem Bereich ja eigentlich nur die Erde tummelt. So lange diese die Trümmerteile nicht ablenkt, dürften sie früher oder später mit ihr kollidieren.
Momentan gehe ich davon aus, dass die massiven Trümmer über lange Zeiten zu nahen und fernen Erdbahnkreuzern werden. Mal sehen was SyMBA dazu sagt.
 
Zuletzt bearbeitet:

Bynaus

Registriertes Mitglied
Eine Berechnung der Bahnen der fünf massiven Trümmerteile über mehrere Millionen Jahre ist dagegen der reinste Witz und recht leicht machbar (d.h. es interessiert mich und ich werde das in den nächsten Tagen so laufen lassen). Hier könnten sogar Rechnungen über Milliarden Jahre machbar sein. Ich kann das voraussichtlich heute abend ansehen.

Sehr schön. Sollte sich zeigen, dass sie alle (oder fast alle) mit der Erde kollidieren, wäre das prinzipiell eine publikationsfähige Entdeckung. Aber ich will an dieser Stelle nicht zuviel versprechen, wir müssten uns ganz genau ansehen, was alles eingeflossen ist und evtl. eine professionell auf diesem Gebiet arbeitende Person beziehen.

Zu den Anfangsparametern einer solchen Simulation: Ich würde vorschlagen, mit folgenden Trümmergrössen (in Erdmassen) zu starten:

1 x 0.02
2 x 0.01
4 x 0.005
8 x 0.0025
16 x 0.00125

Das gibt nämlich eine Gesamtmasse von 0.1 Erdmassen = 1 Marsmasse, in etwa das, was bei unseren Simulationen entkommt, und die Massen sind in etwa nach einer typischen Fragmentierungsverteilung (f~ax^-1) verteilt. 31 Körper sollten sich dann relativ fix simulieren lassen, über eine Zeit von 100 Mio Jahren dürfte ausreichend sein (ausser es stellt sich heraus, dass die meisten dann noch immer da sind - dann müsste man noch etwas länger integrieren).
 
Oben