【问题标题】:Substituting user-defined matrices into PETSc matrices将用户定义的矩阵代入 PETSc 矩阵
【发布时间】:2023-04-01 08:42:01
【问题描述】:

我有用 c++ 编写的顺序块 AIJ 矩阵,我将使用 PETSc 创建 MPI 矩阵。所以,我必须将我的稀疏块 AIJ 矩阵替换为 MPI 块 AIJ PETSc 矩阵。有没有人有任何关于如何做到这一点的例子? 对于我想做的任务的任何建议,我将不胜感激。

【问题讨论】:

    标签: c++ mpi sparse-matrix petsc


    【解决方案1】:

    一个好的起点可能是http://www.mcs.anl.gov/petsc/petsc-current/src/mat/examples/tutorials/ex5.c.html

    Opens a separate file for each process and reads in ITS portion
    of a large parallel matrix. Only requires enough memory to store
    the processes portion of the matrix ONCE.
    

    它利用MatSetValues() 来设置值。仔细阅读文档以了解您应该做什么:http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatSetValues.html。 PETSC'manual on Mat 章节也会对您有所帮助。

    如果您想使用分块矩阵 (BAIJ),您可以使用 MatSetValuesBlocked() http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatSetValuesBlocked.html#MatSetValuesBlocked (和MatSetBlockSize()

    再见,

    【讨论】:

    • 感谢弗朗西斯的回复。你自己有什么例子吗?
    • 不客气!对不起,我没有这么清晰简洁的例子。我认为ex5.c 可以适应您的需要!
    猜你喜欢
    • 2016-03-16
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2019-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多