是否有一个通用框架来并行求解均匀网格上的偏微分方程

计算科学 pde 并行计算
2021-12-23 13:27:06

嘿嘿,

我想模拟一个偏微分方程(修改后的 Cahn-Hilliard 方程,但细节并不重要。这些问题也适用于扩散方程)。我正在寻找一个很好的框架来处理繁重的数字。我的要求是:

  • 没有许可证成本(matlab 是没有选择的,因为我们没有足够的许可证来在我们的集群上运行许多作业)
  • 快速代码(理想情况下它将是编译代码。在运行时使用像 python 这样的解释语言可能太慢了)
  • 灵活的几何形状。事实上,我想模拟一个圆柱对称的三维问题。为了计算效率,我想将我的浓度场表示为半径和 z 坐标的函数,这当然使拉普拉斯算子更难以实现。
  • Neumann 边界条件(周期性边界条件也可以,但它们不能用于上述圆柱几何)。Neumann 边界条件必须确保边界处的无通量条件,从而系统中的材料总量是守恒的。
  • 理想情况下,将支持多处理。

目前,我正在使用XMDS2,这是一个很棒的工具集。我用它来自动生成 C 代码,我可以编译然后运行。它就像一个魅力,除了边界条件。不幸的是,XMDS 仅支持圆柱几何的狄利克雷边界条件,这对我的情况没有多大帮助。

有谁知道支持我的要求并且易于使用的替代框架?如果一切都失败了,我必须开发自己的代码,但恐怕我无法编写像有经验的人那样高效的代码。

3个回答

根据您的描述,PETSc 的DMDA可能就足够了。它易于与几何多重网格(或许多其他求解器)一起使用,并且应该满足您的其他要求。有很多例子(一些链接在手册页的底部),甚至还有一些 Cahn-Hilliard 的例子。请随时在此处或在petsc-users 邮件列表中提出更多问题。 [免责声明:我是一名 PETSc 开发人员。]

deal.II ( http://www.dealii.org/ ) 满足您的所有要求。像 Jed 一样,我建议您在deal.II 邮件列表中提出您的问题。

XMDS2 的作者在最新的开发版本(修订版 2913)中添加了对与贝塞尔变换(即径向对称坐标)相关的诺依曼条件的支持。因此,我将继续使用 XMDS2,因为它现在包含我需要的所有功能。再次感谢非常有帮助的 XMDS2 作者!