大型稀疏非厄米矩阵的预处理技术

计算科学 稀疏矩阵 迭代法 预处理 格瑞斯 线性代数
2021-11-29 07:51:44

我正在尝试解决一个涉及求解底层稀疏矩阵的计算声学问题。问题的大小随网格大小(3D)而变化,而填充显然使直接解决方案不切实际。矩阵的重要特征如下:

  1. 它是非厄米特的,特别是不是对角线占优的。

  2. 无论问题的大小如何,总是有一行只包含一个元素,远离对角线(对角线上的零)。这是问题的关闭条件的一部分。

我尝试使用带有预处理的迭代技术来解决这个问题,以加快解决方案。没有预处理的迭代求解会产生相当不准确的结果(与小网格的直接计算结果相比)。ILU 预处理适用于粗网格(小矩阵 ~ 42000 x 42000),但对于超过 100,000 x 100,000 的任何东西都失败;保持低填充因子以“因子完全奇异”结束,而大填充因子以在旋转期间为奇异的子矩阵之一结束。在尝试 ILU 之前,我还尝试使用机器 epsilon 强制执行零对角元素,但它仍然失败。

相关问题参数如下:

  1. 有 8 个 PDE:质量守恒、能量守恒、三个计算内部点的动量方程(全交错网格,面速度和压力、温度和密度在单元中心),以及特定边界上的三个特定问题的动量方程。
  2. 有合适的闭合条件应用于该问题以获得完整排名的系统,其中一个已在上面描述(零对角线行)。
  3. 我正在使用一种混合方案,通过使用有限体积方法构造散度和某些梯度,而其余的运算符是使用利用多项式拟合的有限差分方法构造的。

如果有帮助,我将使用 scipy 稀疏库来执行我的计算。我使用的迭代方法是 LGMRES,当提供合适的预处理器时,它可以正常工作。请针对此类问题提出一些可行的预处理技术。

编辑:矩阵的稀疏模式如下:

细网格

0个回答
没有发现任何回复~