为什么很多人用FDM方法求解Stokes方程,即鞍点矩阵?

计算科学 有限元 有限差分 预处理
2021-11-28 21:50:34

对于斯托克斯方程的数值方法,具有适当的边界:

2u+p=0

u=0

可以使用FDM(有限差分法)FEM(有限元法)对其进行离散化,它们都可以转化为鞍点系统,如下所示:

[ABTBO][up]=[fg]

在哪里A是向量拉普拉斯算子,并且B是全行排名。

1、如果我们使用FEM,那么对于大鞍点系统,我们可以使用 Krylov 方法,例如带有块对角预处理器 M = blkdiag(A,S)的MINRES,其中A可以用AMG来逼近,而舒尔补S可以用压力质量矩阵来逼近(因为压力质量矩阵已经证明在谱上与舒尔补 S 等价),从而得到一个最优的迭代结果,即迭代次数与网格大小无关。所以在这种情况下,我认为没有比这个块对角预处理器更好的预处理器了。有人知道还有其他更好的选择吗?

2、如果我们使用FDM方法,那么就没有质量矩阵这样的概念了,所以我们不能用舒尔补形式S的一些预条件子,这种情况下只有矩阵A可以用AMG逼近,所以我们无法获得最佳的迭代结果(与网格大小无关)。

我的问题是:在我看来,对于斯托克斯方程,目前最好的方法(虽然我应该知道没有最好的方法)是带有块对角预处理器的 FEM,对吧?但是我仍然在文献中找到了许多预处理器,例如 HSS(Hermitian and skew-Hermitian split),以及一些变体:AHSS、PHSS、RHSS,以及移位拆分、广义移位拆分等。 如果一个预条件子(用M1表示)的性能比带有块对角预条件子的 FEM差,那M1有什么意义(因为我在许多出版物中看到,作者提出的新方法并不比带有块对角预处理器的 FEM 表现更好,例如,他们使用 Cholesky 来近似刚度矩阵A太贵了)我真的被文献中的这么多方法弄糊涂了。因为我认为这些都是没有意义的,除非它们可以比带有块对角预处理器的 FEM 方法更好。

你能给我一些关于我的疑虑的建议或者你对鞍座系统的看法吗?

1个回答

FDM 方法的预条件子对应于您为 FEM 概述的方法(即 Sylvester-Wathen 方法)仍将包含 FDM 矩阵的 Schur 补码。FDM 矩阵的 Schur 补码通常具有与 FEM 相同的结构,即它在谱上等价于离散函数空间上的单位算子。

对于 FEM,表示恒等算子的方便矩阵是质量矩阵,因此这就是用于构建预条件子的矩阵。对于 FDM,与单位运算符相对应的矩阵当然是单位矩阵,因此这将是构建预处理器时使用的矩阵。

所有这一切的动机是理解,从本质上讲,FEM 和 FDM 并没有那么不同。例如,许多 FDM 方法可以通过使用具有特定正交公式的 FEM 来获得。