特征:修改行主稀疏矩阵的行

时间:2021-01-24 16:56:31

标签: c++ sparse-matrix eigen

我使用 C++ 中的 Eigen 库来求解稀疏线性方程:Ax=b 其中,A 是稀疏方阵,b 是具有 ILU 预处理 BiCGSTAB 的稠密向量。我正在使用 setFromTriplets 函数初始化矩阵 A。线性系统是由偏微分方程在空间和时间上的离散化产生的。

我的应用程序在每个时间步都会略微改变矩阵。我想在每个时间步的开始修改矩阵中的少量行(大约 1% 的行)。我以行主格式存储矩阵,以便我可以直接访问该行。我不想从三元组重新组装整个矩阵,因为要修改的行数约为 1%。此外,修改使得行中非零的数量完全相同。我只想更改列索引和值。因此,我不需要为该行分配额外的内存。在浏览了 Eigen 文档和论坛后,我找到了 coeffRefinsert 函数。如果元素不存在,它们都会分配额外的内存。我想避免这种情况,因为非零的数量不会改变。

感谢任何帮助。

0 个答案:

没有答案