构造线性系统的预条件子A x = bAx=b来自不同的矩阵

计算科学 线性求解器 宠物 预处理
2021-12-11 00:45:13

当我使用 PETSc 解决我的线性系统时,我总是使用子程序

PetscErrorCode  KSPSetOperators(KSP ksp,Mat Amat,Mat Pmat)

其中Amat指的是定义我的线性系统的矩阵,并且Pmat是用于构造预条件子的矩阵。

我不确定在哪些情况下建议使用除之外的另一个矩阵或构造预条件子,即使用来自另一个(可能相关的)线性系统的预条件子。AAmat

编辑 查看 PETSc 手册,矩阵AmatPmat不同的一个可能场合是

当从比用于形成线性系统矩阵的方法低阶的方法获得预处理矩阵时。

1个回答

由于没有人站出来回答这个问题,让我指出一篇论文,其中包含一个为什么要这样做的例子:http: //www.math.tamu.edu/~bangerth/publications.html#publications/审查 34(出版物 34,Kronbichler 等人)。其实这篇论文有多个例子:

  • 我们通过块三角矩阵来预处理(ABBT0)

  • 我们,而是基于一个更简单和更空 ,以一个 V 循环对AAA~

  • 我们通过应用质量矩阵来近似块预处理器中的精确S1

复杂的应用程序经常使用这些东西。如果你只是解决简单的标量问题,你就永远看不到它们 :-)