从耦合系统求解 FEM 矩阵

计算科学 有限元 线性求解器 多重网格 共轭梯度
2021-12-02 07:58:22

我正在为耦合系统开发 FEM 求解器。我有扩散方程和势方程,它们会为每个方程产生正定矩阵,但耦合使整个系统矩阵非对称、非正定。

求解器计划完全在 GPU 上运行。网格和数据表示为此进行了高度优化,因此标准库不是很有用,还因为需要在 GPU 和 CPU 之间传输,或者必须使用在 GPU 上表现不佳的 CPU 优化数据格式。

我计划稍后使用 multigrid,所以我目前使用 jacobi 迭代来求解方程。可以说,这很有效。它收敛得不是很快,当错误变小时,会有一些其他问题的迹象(我目前还不完全理解)。

我现在正在考虑我的下一步。我应该尝试一些基于 CG 的算法吗?或者您接下来会尝试或调查什么?

1个回答

耦合系统最成功的求解器通常将 GMRES 之类的东西应用于整个系统,然后使用块分解来导出利用各个块属性的预处理器。如果要使用多重网格求解器,则将其用作预处理器中的求解器。

由于您没有说明您考虑的系统的外观,因此很难给出具体建议。也就是说,为块系统构建预处理器的一般想法在我的视频讲座的第 38 讲中讨论:http: //www.math.tamu.edu/~bangerth/videos.html