各种物理鞍点问题的块代数多重网格方法
在科学与工程计算领域,求解复杂的线性系统是一项关键任务。对于许多物理问题,如多孔弹性、弹性力学、多相流以及纳维 - 斯托克斯方程等,所得到的线性系统往往具有鞍点性质,求解这类系统具有一定的挑战性。本文将介绍一种用于解决此类问题的块代数多重网格方法,深入探讨其原理、实现细节以及在多个测试问题中的性能表现。
1. 引言
多重网格方法的概念最早由 Fedorenko 和 Bakhvalov 应用于泊松问题,之后 Brandt 等人和 Hackbusch 进一步发展了这一思想。代数多重网格(AMG)方法已被广泛应用于各种方程组的求解,包括油气问题中的多相流问题。在这些系统中,通常会先使用 CPR 或 DRS 技术提取椭圆分量,再结合代数多重网格方法快速求解问题的椭圆部分。然而,在耦合地质力学问题中,可能会出现鞍点行为。
此前,已有多种版本的块代数多重网格方法在开源 CFD 工具箱 OpenFOAM 中成功实现。同时,也有基于有限体积离散化的计算方法用于求解三维不可压缩湍流流动,以及用于线性弹性问题的耦合单元中心有限体积方法。几何多重网格和整体代数多重网格也被用于鞍点系统的求解,但它们存在一些局限性,如需要组装不精确的舒尔补,以及为了保持粗层系统的良好性质需要引入稳定化措施。
本文提出了一种块版本的 AMG 方法,将整个系统表示为块形式,每个矩阵元素被视为一个 $b×b$ 的方阵,其中 $b$ 为每个离散单元的未知量数量。该方法基于 Ruge - Stüben 标量矩阵方法,并结合了一些新的思想,使用块高斯 - 赛德尔方法作为平滑器,通过 S3M 包实现,并采用 OpenMP 进行并行化加速。
超级会员免费看
订阅专栏 解锁全文
5929

被折叠的 条评论
为什么被折叠?



