OpenFOAM,PETSc或其他稀疏矩阵乘法源代码

时间:2010-12-21 07:36:44

标签: sparse-matrix matrix-multiplication

有人可以告诉我,在哪里可以找到OpenFOAM,PETSc或其类似的矩阵乘法源代码?它不可能是微不足道的算法。 我找到了OpenFOAM和PETSc的主页,但在文档中我找不到多种方法和源代码。

1 个答案:

答案 0 :(得分:1)

PETSc为许多格式实现矩阵乘法,查看MatMult_SeqAIJ的这一部分以获得最基本的实现。对于以压缩稀疏行形式存储的稀疏矩阵,其中行开始ai,列索引aj和条目aa,乘法由以下简单内核组成。

for (i=0; i<m; i++) {
  y[i] = 0;
  for (j=ai[i]; j<ai[i+1]; j++)
    y[i] += aa[j] * x[aj[j]];
}