代数多重网格代码

计算科学 软件 多重网格
2021-11-26 03:44:12

我想了解有关代数多重网格方法 (AMG) 实施的更多细节。我一直在阅读“A Multigrid Tutorial”,它非常好,并解释了 AMG 的插值、粗网格算子和粗网格选择的所有细节。但是,我认为,没有什么比玩耍和阅读代码更好的了。

所以,我想问一下是否有人知道任何经典的 AMG“示例代码”,例如 SF McCormick 的“Multigrid Methods”(SIAM)末尾提供的几何多重网格 FORTRAN 代码。很难获得像 BoomerAMG 这样的高质量和生产代码来了解有关该方法的更多信息。

4个回答

BoomerAMG 是Hypre软件包的一部分,很容易获得。如果您开始研究这些方法,那么复杂得多的代码可能是PyAMG

我强烈推荐Alfio Borizi对代数多重网格方法的介绍。附录 A 中有一个示例 fortran 77 代码。

还有一个 ML 包,它是 Trilinos 的一部分。它的声誉与 BoomerAMG/hypre 一样好。

我相信,用于 AMG 的更新的 Trilinos 包称为 MueLu,并且也应该在更新的版本中可用。

所有这些都是开源的。

我已经在这个实现上工作了一段时间。它是 Python/Numpy/Scipy。它不是代数多重网格——你必须提供你自己的限制算子。但是,如果它是您感兴趣的教育实施,我会欢迎一些请求请求以添加此类功能。