#include "petscmat.h" PetscErrorCode MatGetLocalSubMatrix(Mat mat,IS isrow,IS iscol,Mat *submat)Not Collective
mat | - matrix to extract local submatrix from | |
isrow | - local row indices for submatrix | |
iscol | - local column indices for submatrix |
Depending on the format of mat, the returned submat may not implement MatMult(). Its communicator may be the same as mat, it may be PETSC_COMM_SELF, or some other subcomm of mat's.
The submat always implements MatSetValuesLocal(). If isrow and iscol have the same block size, then MatSetValuesBlockedLocal() will also be implemented.
The mat must have had a ISLocalToGlobalMapping provided to it with MatSetLocalToGlobalMapping(). Note that matrices obtained with DMCreateMatrix() generally already have the local to global mapping provided.