#include "petscmat.h" PetscErrorCode MatGetSubMatrices(Mat mat,PetscInt n,const IS irow,const IS icol,MatReuse scall,Mat *submat)Collective on Mat
|mat||- the matrix|
|n||- the number of submatrixes to be extracted (on this processor, may be zero)|
|irow, icol||- index sets of rows and columns to extract (must be sorted)|
|scall||- either MAT_INITIAL_MATRIX or MAT_REUSE_MATRIX|
Currently both row and column indices must be sorted to guarantee correctness with all matrix types.
When extracting submatrices from a parallel matrix, each processor can form a different submatrix by setting the rows and columns of its individual index sets according to the local submatrix desired.
When finished using the submatrices, the user should destroy them with MatDestroyMatrices().
MAT_REUSE_MATRIX can only be used when the nonzero structure of the original matrix has not changed from that last call to MatGetSubMatrices().
This routine creates the matrices in submat; you should NOT create them before calling it. It also allocates the array of matrix pointers submat.
For BAIJ matrices the index sets must respect the block structure, that is if they request one row/column in a block, they must request all rows/columns that are in that block. For example, if the block size is 2 you cannot request just row 0 and column 0.
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages