código de simulación MHD simple para (auto) educación y jugar con

8

Me gustaría un código computacional súper simple para resolver problemas de magnetohidrodinámica . La alta precisión ni el rendimiento no son mi preocupación. Solo quiero explorar visualmente el comportamiento cualitativo del plasma. Importante para mí es:

  • Generalidad : no debe estar especializado en ningún subproblema particular de MHD
  • Fácil de hacer que funcione : no requiere ninguna biblioteca difícil de instalar. La entrada es sencilla y está bien documentada por algunos ejemplos.
  • Fácil de leer y modificar : puede leer el código y aprender sobre la solución MHD a partir de él. Puede usar este código como punto de partida para su propio desarrollo de código MHD

Algo tan simple como este Navier aviva el solucionador sería lo mejor

lo mejor sería algo en python-numpy o java, pero C ++ o Fortran no es un gran problema para mí.

Hasta ahora encontré:

algunas bibliotecas ( MHD-Hermes y python-mhd ) que están en python, pero no parecen tener documentación ni ejemplos de cómo usarlo.

y este código TVD MHD gratuito, rápido, simple y eficiente que está en frotran pero tiene solo 400 líneas

Estaba pensando en escribir algo por mí mismo, pero quiero estar seguro de que ya no hay nada similar disponible. Creo que podría ser bastante fácil, solo tome el solucionador Navier-Stokes del enlace de arriba e introduzca el potencial eléctrico y magnético mediante el solucionador de poisson FFT (o Particle Mesh Ewald).

Prokop Hapala
fuente
Ese pequeño código OpenMP Fortran es realmente bueno.
stali
1
Me encanta leer cosas con comentarios como "! Para mantener las cosas estables".
Rhys Ulerich
No encuentro que OpenFOAM sea fácil de leer y modificar, pero eso se debe a que las partes que he tenido que investigar están enterradas en el código. Además, incluso la página de Wikipedia menciona que OpenFOAM está pobremente documentado y tiene una curva de aprendizaje muy gradual.
Geoff Oxberry
Prueba pyClaw , basado en CLAWPACK de Randy LeVeque.
Kyle Kanos

Respuestas:

3

Echa un vistazo a estos tres:

  • Piernik MHD es un código que evolucionó del Pen & Trac MHD que mencionaste en tu pregunta. Ahora es bastante maduro y el desarrollo aún está activo. Escrito en Fortran moderno 95/2003.

  • Godunov MHD, un código MHD diseñado especialmente para simular los eventos de reconexión, pero puede modificarse fácilmente y aplicarse a otros problemas. Se puede paralelizar desde una sola máquina multinúcleo (OpenMP) hasta grupos con muchos nodos (MPI). Escrito en Fortran 90/95.

  • python-mhd, un código MHD pequeño y simple, fácil de jugar con él. Escrito en Python y C.

corion
fuente
gracias, debería mirar eso con más detalle. Acerca de python-mhd: Esto sería ideal porque es pytho. Lo mencioné también en la pregunta original. Sin embargo, tengo problemas para ejecutar el ejemplo (escribo un código code.google.com/p/python-mhd/issues/detail?id=1 ). No encontré ninguna otra documentación o ejemplo que no sea el de la página principal.
Prokop Hapala