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 Parameters#
mat - matrix to extract local submatrix from
isrow - local row indices for submatrix
iscol - local column indices for submatrix
Output Parameter#
submat - the submatrix
Notes#
submat
should be disposed of 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 sub-communictor of mat
’s.
submat
always implements MatSetValuesLocal()
. If isrow
and iscol
have the same block size, then
MatSetValuesBlockedLocal()
will also be implemented.
mat
must have had a ISLocalToGlobalMapping
provided to it with MatSetLocalToGlobalMapping()
.
Matrices obtained with DMCreateMatrix()
generally already have the local to global mapping provided.
See Also#
Matrices, Mat
, MatRestoreLocalSubMatrix()
, MatCreateLocalRef()
, MatSetLocalToGlobalMapping()
Level#
intermediate
Location#
Examples#
src/ts/tutorials/ex14.c
src/snes/tutorials/ex28.c
src/ksp/ksp/tutorials/ex85.c
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