MatGetSubMatrix() and MatGetSubMatrices()

Yujie recrusader at
Tue Mar 4 01:47:40 CST 2008

Hi, everyone

#include "petscmat.h"
PetscErrorCode PETSCMAT_DLLEXPORT MatGetSubMatrix(Mat mat,IS isrow,IS
iscol,PetscInt csize,MatReuse cll,Mat *newmat)
#include "petscmat.h"
PetscErrorCode PETSCMAT_DLLEXPORT MatGetSubMatrices(Mat mat,PetscInt n,const
IS irow[],const IS icol[],MatReuse scall,Mat *submat[])

To my knowledge, I can't get different matrices at different nodes by
setting different isrows and iscol with MatGetSubMatrix().
Because isrow  is rows current processor should obtain and the iscol
argument must be the same on each processor.
Furthermore, I can't get different parallel matrices at different nodes by
setting different irow[] and icolp[] with MatGetSubMatrices() assuming I
only want to get a matrix at each node.
Because this function only gets different sequential matrices at different
nodes. Is it right?

Another equestion is how to partition the matrix when calling MatConvert()
to convert a sequential matrix to a parallel one?

Thanks a lot.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the petsc-users mailing list