
Simulations-Software
Ich wage mich mal an eine Übersicht der mir bekannten Software-Packete für astronomische Simulationen (alphabetische Reihenfolge). Dabei erhebe ich nicht den Anspruch auf Vollständigkeit, da es offensichtlich ein beliebtes Thema für Doktorarbeiten ist, sich an einem Code zu versuchen, der besser sein soll als bisherige Ansätze. Ferner beschränke ich mich auf Software, die zumindest als Basispacket frei verfügbar open-source ist. Die Gründe sind offensichtlich. Kommerzialisierung mit Steuergeldern erteile ich eine klare Absage.
Die verwendeten Programmiersprachen reichen von einfachem C über C++, Fortran von 77 bis 95, und teilweise Python und Java. Dabei muss klar gesagt werden, dass native Sprachen wie C und Fortran auf Workstations und Großrechnern eindeutig besser sind, da es hochoptimierende Compiler für diese Maschinen gibt. Für kleinere Projekte können Python und Java auf heutigen PC´s natürlich auch brauchbare Ergebnisse liefern, vorausgesetzt die Hardware (RAM, CPU/GPU) gibt es her und es werden hochoptimierte Libraries (die dann aber meist in C oder Fortran geschrieben sind) verwendet. Ich selbst kann das meiste mit einer einfachen Intel-CPU (4 Cores) und einer älteren Grafikkarte bei 18 GByte RAM und 8 GByte Grafikspeicher gut berechnen, ohne den Kaffeekonsum in die Höhe zu treiben. Bleibe ich unter 250000 Partikeln gelingt meist die Visualisierung in Echtzeit.
Allerdings nutze ich die Pakete nicht direkt, sondern portiere zumeist nur die grundlegenden physikalischen Routinen zu Lernzwecken auf Pascal in mein eigenes Framework.
Die Ansätze reichen dabei von einfachen Partikel-Systemen über grid/mesh-basierte Fluiddynamics mit und ohne Magnetfeldern und smoothed particle hydrodynamics (SPH) codes) mit und ohne Paralellisierung (Cuda, MPI), mit Tree-Optimierungen und ohne oder einfachen Nachbarschaftssuchen (NBODY). Der Komplexität sind nur Rechnergrenzen (Zeit=Kosten, Ausstattung) gesetzt.
Interessant ist die historische Entwicklung. Fanden die ersten Berechnungen in den 80ern noch mit 20-100 Partikeln statt, liegt heutzutage die Größenordnung bei 106-9 für die neuesten Codes für HPC und MPI.
Es gab ein paar Pioniere, die die grundlegenden Algorithmen entwickelt haben (Mercury, NBody, Gadget, Pluto, Zeus), davon leiteten sich dann alle Codes ab. Na ja, die Physik hat sich ja auch nicht geändert, aber es gab viele, die daran mitwirkten, die Codes besser und schneller zu machen. Wie gesagt, wenn ich mal Lust und Muße habe, dann schreibe ich vielleicht mal einen Übersichtsartikel oder erstelle eine Literaturübersicht.