用于(自我)教育和玩耍的简单 MHD 模拟代码

计算科学 流体动力学 教育 电磁学
2021-12-02 11:49:47

我想要一些超级简单的计算代码来解决磁流体动力学问题高精度和性能不是我关心的问题。我不希望它只是直观地探索等离子体的定性行为。对我来说重要的是:

  • 通用性 - 它不应该专门针对 MHD 的任何特定子问题
  • 易于使用- 不需要任何难以安装的库。输入是直截了当的,并有一些例子有据可查
  • 易于阅读和修改- 您可以阅读代码并从中了解 MHD 解决方案。您可以将此代码用作您自己的 MHD 代码开发的起点

像这个Navier stokes 求解器这样简单的东西是最好的

最好是 python-numpy 或 java 中的东西,但 C++ 或 Fortran 对我来说不是一个大问题。

到目前为止,我发现:

一些库(MHD-Hermespython-mhd)在 python 中,但似乎没有任何文档或示例如何使用它。

是一个免费、快速、简单和高效的 TVD MHD 代码,它在 frotran 中,但只有 400 行

我正在考虑自己写一些东西,但我想确定没有类似的东西已经可用。我认为这很容易,只需从上面的链接中获取 Navier-Stokes 求解器,并通过 FFT 泊松求解器(或 Particle Mesh Ewald )引入电势和磁势。

2个回答

看看这三个:

  • Piernik MHD它是从您在问题中提到的 Pen & Trac MHD 演变而来的代码。现在它已经相当成熟并且发展仍然活跃。用现代 Fortran 95/2003 编写。

  • Godunov MHD一种 MHD 代码,专为模拟重新连接事件而设计,但可以轻松修改并应用于其他问题。它可以从单个多核机器 (OpenMP) 到具有多个节点的集群 (MPI) 并行化。用 Fortran 90/95 编写。

  • python-mhd一个小而简单的MHD代码,玩起来很方便。用 Python 和 C 编写。

试试冥王星

http://plutocode.ph.unito.it/

我希望这有帮助 !干杯,汤姆