PETSc 中“PCMG”预处理器的默认平滑器是什么?

计算科学 迭代法 宠物 多重网格 平滑
2021-12-05 23:13:19

对于我的代码中的大型并行稀疏矩阵(mpiaij 类型矩阵),我正在试验各种预条件器,看看哪一个最适合 GMRES/BiCGSTAB。我在没有指定任何网格/插值/限制信息的情况下尝试了PCMG 预处理器,这实际上似乎对我的问题做得很好。起初,我对这实际上做了什么感到困惑,因为我没有向 PETSc 提供任何有关网格之类的信息,但我认为它所做的只是执行一个平滑步骤。因此,我想知道这个“平滑器”到底是什么,因为它似乎可以很好地作为预处理器。我尝试查看 PCMG 文档,但无法弄清楚。

有人可以告诉我 PCMG 预调节器的默认平滑器是什么,或者至少提供一些关于如何弄清楚它是什么的建议?我尝试过浏览 PETSc 文档,但运气不佳。

编辑:正如下面评论中所指出的,它似乎是切比雪夫更平滑。但是,PETSc 文档说Chebyshev 仅适用于对称正(半)定矩阵那么,这怎么可能呢?有人可以解释一下吗?

1个回答

对于,默认平滑器是PETSC 文档pc_type mg中指定的 Chebyshev

预条件 Chebyshev 迭代法
Chebyshev 方法要求矩阵和预条件子都是对称正(半)定的。仅支持左预处理。
Chebyshev 默认配置为平滑器,针对频谱的“上部”。

值得一提的是,建议使用的评论-ksp-view宣传非常好的做法。

现在,Chebyshev 设计为仅适用于 SPD 矩阵是事实。然而,它对于“非常非 SPD 矩阵”(特征值离实轴相对较远)会变得不稳定的事实并不意味着它对于“稍微不对称的矩阵”根本不起作用。所以,你的问题可能不够不对称。

请注意,低阶切比雪夫非常接近理查森,因此难怪它在某些不一定是 SPD 的情况下可能会工作得非常好。

但是,对于已知在其特征值中具有重要虚部的矩阵,不建议使用 Chebyshev(默认值)并切换到 Richardson 或 GMRES。