求解大型稀疏系统

计算科学 有限元 线性求解器 稀疏矩阵
2021-12-23 07:56:11

我正在解决非常大的稀疏矩阵的问题。我想计算A1B,这是将 DAE 转换为 ODE 的关键部分(并且没有解决方法)。这里大小A是 2E+5 x 2E+5,密度为 0.7%(尤其是所有对角线条目都是非零)。B是 2E+5 x 1E+6,其密度仅为 1E-6。

我试图在 python by 中解决这个问题scipy.sparse.spsolve,这最终给了我一个内存问题。使用迭代求解器时也发生了同样的问题。除非我在计算解决方案中的下一列之前将每一列保存到磁盘并释放内存,否则内存问题将持续存在。

那么有人知道内存高效的稀疏求解器或提出更好的方法来解决这个问题吗?

1个回答

A1B是一个2105×1106可能已满的矩阵,因此您的输出大小为 1.6 TB。我认为除了将其写入磁盘之外,您没有其他选择。