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#

src/mat/interface/matrix.c

Examples#

src/snes/tutorials/ex28.c
src/ksp/ksp/tutorials/ex85.c
src/ts/tutorials/ex14.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