我正在使用顺序矩阵类型编写 petsc 代码。因为我希望它易于并行化,所以我在代码中放了一些现在没用的东西,但以后会更容易并行化。
我添加的其中一件事是MatGetOwnershipRange()定义我用来构建矩阵的迭代器的范围。该矩阵是 MatSeqAIJ 类型,并且没有分配任何值,尽管内存已分配给MatSeqAIJSetPreallocation().
但是,当我运行MatGetOwnershipRange()时,我得到的范围开头和结尾的两个 PetscInt 都是 0。
MatGetOwnershipRange()仅适用于 MPI 矩阵吗?
它是否仅适用于已分配其值的矩阵MatSetValues()?