petsc-3.9.4 2018-09-11
MatGetLocalSubMatrix
Gets a reference to a submatrix specified in local numbering
Synopsis
#include "petscmat.h"
PetscErrorCode MatGetLocalSubMatrix(Mat mat,IS isrow,IS iscol,Mat *submat)
Not Collective
Input Arguments
mat - matrix to extract local submatrix from
isrow - local row indices for submatrix
iscol - local column indices for submatrix
Output Arguments
submat - the submatrix
Notes
The submat should be returned with MatRestoreLocalSubMatrix().
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 DMCreateMat() generally already have the local to global mapping provided.
See Also
MatRestoreLocalSubMatrix(), MatCreateLocalRef(), MatSetLocalToGlobalMapping()
Level
intermediate
Location
src/mat/interface/matrix.c
Examples
src/snes/examples/tutorials/ex28.c.html
src/ts/examples/tutorials/ex14.c.html
Implementations
MatGetLocalSubMatrix_IS in src/mat/impls/is/matis.c
MatGetLocalSubMatrix_Nest in src/mat/impls/nest/matnest.c
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages