einfacher MHD-Simulationscode für (Selbst-) Bildung und Spielen mit

8

Ich hätte gerne einen supereinfachen Rechencode zur Lösung von Problemen der Magnetohydrodynamik . Hohe Genauigkeit und Leistung sind nicht mein Anliegen. Ich möchte nicht nur das qualitative Verhalten von Plasma visuell untersuchen. Wichtig für mich ist:

  • Allgemeines - Es sollte nicht auf ein bestimmtes Teilproblem von MHD spezialisiert sein
  • Einfach zum Laufen zu bringen - erfordert keine schwer zu installierenden Bibliotheken. Die Eingabe ist unkompliziert und anhand einiger Beispiele gut dokumentiert
  • Einfach zu lesen und zu ändern - Sie können den Code lesen und sich über die MHD-Lösung informieren. Sie können diesen Code als Ausgangspunkt für Ihre eigene MHD-Codeentwicklung verwenden

Etwas so Einfaches wie dieser Navier Stokes Solver wäre am besten

Am besten wäre etwas in Python-Numpy oder Java, aber C ++ oder Fortran ist für mich kein großes Problem.

Bisher habe ich gefunden:

Einige Bibliotheken ( MHD-Hermes und Python-mhd ) befinden sich in Python, scheinen jedoch keine Dokumentation oder Beispiele für deren Verwendung zu haben.

und dies ist ein kostenloser, schneller, einfacher und effizienter TVD-MHD-Code, der in Frotran vorliegt, aber nur 400 Zeilen enthält

Ich habe darüber nachgedacht, etwas selbst zu schreiben, aber ich möchte sichergehen, dass nichts Ähnliches bereits verfügbar ist. Ich denke, es könnte ganz einfach sein, nehmen Sie einfach den Navier-Stokes-Löser aus dem obigen Link und führen Sie das elektrische und magnetische Potential durch den FFT-Poisson-Löser (oder Particle Mesh Ewald) ein.

Prokop Hapala
quelle
Dieser kleine OpenMP Fortran-Code ist wirklich ordentlich.
stali
1
Ich liebe es, Dinge mit Kommentaren wie "! Um die Dinge stabil zu halten" zu lesen.
Rhys Ulerich
Ich finde OpenFOAM nicht einfach zu lesen und zu ändern, aber das liegt daran, dass die Teile, die ich untersuchen musste, tief im Code vergraben sind. Außerdem wird auf der Wikipedia-Seite erwähnt, dass OpenFOAM schlecht dokumentiert ist und eine sehr allmähliche Lernkurve aufweist.
Geoff Oxberry
Probieren Sie pyClaw , basierend auf Randy LeVeques CLAWPACK.
Kyle Kanos

Antworten:

3

Schauen Sie sich diese drei an:

  • Piernik MHD ist ein Code, der aus dem Pen & Trac MHD hervorgegangen ist, den Sie in Ihrer Frage erwähnt haben. Jetzt ist es ziemlich ausgereift und die Entwicklung ist noch aktiv. Geschrieben im modernen Fortran 95/2003.

  • Godunov MHD ist ein MHD-Code, der speziell für die Simulation von Wiederverbindungsereignissen entwickelt wurde, aber leicht geändert und auf andere Probleme angewendet werden kann. Es kann von OpenMP (Single Multicore Machine) bis zu Clustern mit vielen Knoten (MPI) parallelisiert werden. Geschrieben in Fortran 90/95.

  • python-mhd ein kleiner und einfacher MHD-Code, mit dem man leicht spielen kann. Geschrieben in Python und C.

corion
quelle
danke, ich sollte mir das genauer ansehen. Über Python-mhd: Dies wäre ideal, da es sich um Python handelt. Ich habe es auch in der ursprünglichen Frage erwähnt. Ich habe jedoch Probleme beim Ausführen des Beispiels (ich schreibe ein Problem code.google.com/p/python-mhd/issues/detail?id=1 ). Ich habe keine andere Dokumentation oder ein anderes Beispiel als das auf der Titelseite gefunden.
Prokop Hapala