当矩阵 A 的对角线元素为零时,如何解决 PETSC 中的线性问题 A x = b?

计算科学 宠物 固体力学
2021-12-08 20:28:39

我正在解决一个涉及设置约束的结构力学问题,我使用拉格朗日乘数来设置它。因此,切线刚度矩阵的一些对角线条目消失了,我无法使用 KSP 求解器求解系统。

我将不胜感激。

1个回答

使用拉格朗日乘数会产生鞍点问题,

(ABTB0)(uλ)=(b0)

正如您所注意到的,许多预调节器会因这种系统而失效。可以使用支持旋转的直接求解器,但如果您想要迭代求解器,一种常见的灵活策略是使用PCFIELDSPLIT请参阅求解块矩阵的用户手册部分中的分解 (Schur) 方法。

请注意,您不能使用共轭梯度,因为这个问题不是正定的。您可以将 MINRES 与一些预处理器一起使用,但有时使用非对称(通常是块三角形)预处理器更有效。