Answers:
PETSc和Trilinos都具有良好的代数多重网格方法。
deal.II实现了用于有限元离散化的几何多重网格方法,请参见例如step-16教程程序。
PETSc多重网格(作为预处理器)已经相当成熟,可以通过键入以下命令与PETSc中的任何KSP(迭代Krylov方法)求解器一起使用:
-pc_type mg
但是,这需要您有某种方式来生成粗略级别,例如具有由PETSc DA对象定义的结构化网格,该网格将自动进行粗化。
或者,如果您想使用HYPRE软件包中的代数多重网格,则可以使用
-pc_type hypre
或从ML包中
-pc_type ml
这些是在配置过程中通过附加下载的
--download-hypre=1 --download-ml=1
到您的./configure命令行。
到目前为止,已折旧的部分是DMMG框架,该框架已被SNES(非线性)FAS解算器取代,并为使用我们所说的MG或FAS时处理多级离散化提供了更好的支持。另一个替换(对于线性问题)是
-pc_type gamg -pc_gamg_type sa
这是PETSc中固有的更新代码,具有高度可扩展性的平滑聚合代数多重网格。