关于解决耦合物理问题的建议

计算科学 线性代数 宠物 线性求解器 多物理场
2021-12-17 22:00:34

我正在尝试解决耦合物理问题。我已经形成了这个矩阵:

J=[ABCD]

在哪里AD代表两种不同的物理,并且C=BT. 最初,我想使用 Schur 补码:

SD=DCA1B

但这不会像显示的那样工作,因为A是不可逆的。保证至少有一排A将为零。

我的问题是:我可以应用哪些其他方法来解决这个问题?有什么办法可以利用以下事实:

SA=ACD1B

自存在以来D是非奇异的?

跟进

的大小J不应超过 1000x1000。我正在解决不涉及 PDE 的几何非线性结构的静力学问题。过去,这个问题是使用单片算法解决的,其中A/D物理学是相互独立地解决的。我想尝试一种新方法,因为已经开发的基本算法显示出比传统方法显着的加速。正如 Jan 在下面指出的,使用SA是一种选择。是否有 PETSc 运行时选项可供选择SDSA(作为背景,PETSc 手册中的第 87 页讨论了 Schur 分解)?还是我必须重新组织J矩阵结构,本质上是交换AD块?

1个回答

对于大小约为 1000 的线性问题,您无法通过尝试使用迭代求解器来击败直接求解器。对于这种规模的问题,它也无关紧要。

如果您的问题更大,我建议您观看/收听我今年春天录制的课程的第 34 和 38 课:http: //www.math.tamu.edu/~bangerth/videos.html