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

发布于 2024-10-08 18:03:39 字数 115 浏览 5 评论 0原文

有人能告诉我,在哪里可以找到由 OpenFOAM、PETSc 或类似的东西实现的矩阵乘法的源代码吗?这不可能是一个简单的算法。 我找到了 OpenFOAM 和 PETSc 的主页,但在文档中我找不到乘法方法和源代码。

Could someone tell me, where I can find source code for matrix multiplication realized by OpenFOAM, PETSc or something similar? It can't be trivial algorithm.
I have found homepages of OpenFOAM and PETSc but in doc I cant find multiply methods and source code.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

落花浅忆 2024-10-15 18:03:39

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]];
}

PETSc implements matrix multiplication for many formats, look at this part of MatMult_SeqAIJ for the most basic implementation. For a sparse matrix stored in compressed sparse row form with row starts ai, column indices aj, and entries aa, multiplication consists of the following simple kernel.

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]];
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文