考虑一个非常大、复杂的几何体上的势/泊松方程。目前,使用的是自写的 FEM 和 NumPy 的线性求解器。当然,性能不足以解决更大的问题。
我想切换到 PETSc 并使用代数多重网格预处理器。令人惊讶的是,我在 PETSc 中找不到关于代数多重网格的好的文档或示例。有什么好的例子吗?或者如果我不想深入开发,使用代数多重网格可能为时过早?
(这个问题主要是为了在 PETSc 中找到更多关于代数多重网格的文档,但是如果我的方法通常是一个坏主意,请告诉我。)
考虑一个非常大、复杂的几何体上的势/泊松方程。目前,使用的是自写的 FEM 和 NumPy 的线性求解器。当然,性能不足以解决更大的问题。
我想切换到 PETSc 并使用代数多重网格预处理器。令人惊讶的是,我在 PETSc 中找不到关于代数多重网格的好的文档或示例。有什么好的例子吗?或者如果我不想深入开发,使用代数多重网格可能为时过早?
(这个问题主要是为了在 PETSc 中找到更多关于代数多重网格的文档,但是如果我的方法通常是一个坏主意,请告诉我。)
AMG 可用于 PETSc 中的所有示例。您可能想要使用三种强大的实现
-pc_type gamg
是本机(平滑)聚合方法。-pc_type ml
是来自 ML 项目(Trilinos 的一部分)的平滑聚合实现。配置 PETSc--download-ml
以使此求解器可用。-pc_type hypre
是一个经典的 AMG 实现(来自 Hypre 的 BoomerAMG)。配置 PETSc--download-hypre
以使此求解器可用。