哪些库对多网格有良好的高级支持?


17

我打算使用多重网格来计算一些特征值和向量,并且我注意到PETSc对多重网格提供了高级支持。PETSc文档说不应使用PETSc的这一部分,因为它将很快被替换。

哪些其他库对多网格提供了高级支持,并且PETSc大约多久后将发布新的多网格支持?


2
新的MG可以在petsc-dev中使用,并且可以与新的GAMG求解器一起使用。我们正在等待发布,直到我们可以更改每个示例(有数百个)为止。我现在就开始使用petsc-dev。
Matt Knepley 2011年

Answers:


7

PETSc和Trilinos都具有良好的代数多重网格方法。

deal.II实现了用于有限元离散化的几何多重网格方法,请参见例如step-16教程程序


2
如果您使用DMDA(笛卡尔)网格,则PETSc会进行几何MG建模,因为从那时起,我们就知道如何构造插值器和粗糙问题。
Matt Knepley 2011年

11

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中固有的更新代码,具有高度可扩展性的平滑聚合代数多重网格。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.