我是 PETSC 的新手,我一直在尝试使用 PETSC(正方形、规则网格、Dirichlet 边界)编写 FVM 代码以实现 2D 中的稳定热传导
由于大矩阵,比如 A,将是稀疏的,我声明每行 5 个非零并使用MatCreateSeqAIJ()
我的问题是关于组装矩阵的条目。在每份简历中,我都会打电话给MatSetValues()
并使用局部数组 II、JJ 和 Values_IJ 将 5 个系数添加到 A
1)这是做到这一点的“正确”还是“通常”的方式?我问是因为,在我看来,是通过在我的循环中隐式使用COO 类型的稀疏表示来组装的,而 PETSC 中的矩阵表示是CSR。
2) 如果没有,有没有办法创建局部数组 II、JJ 和 Values_IJ 以适应矩阵的 CSR 格式,然后调用MatSetValues()?