我正在使用Scipy进行FEM项目的工作。现在我的问题是,稀疏矩阵的组装速度太慢了。我计算每个元素在密集小矩阵中的贡献(每个元素一个小矩阵)。为了组装全局矩阵,我循环遍历所有小密集矩阵,并按以下方式设置矩阵条目:
[i,j] = someList[k][l]
Mglobal[i,j] = Mglobal[i,j] + Mlocal[k,l]
Mglobal
是适当大小的lil_matrix,someList
映射索引变量。
当然,这种方法相当慢,并且消耗了大部分矩阵组装时间。有没有更好的方法可以从许多小而密集的矩阵中组装大稀疏矩阵?我尝试使用scipy.weave,但似乎它不适用于稀疏矩阵。