**submat ** -the array of submatrices

### Notes

MatGetSubMatrices() can extract ONLY sequential submatrices
(from both sequential and parallel matrices). Use MatGetSubMatrix()
to extract a parallel submatrix.
Some matrix types place restrictions on the row and column
indices, such as that they be sorted or that they be equal to each other.

The index sets may not have duplicate entries.

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.

### Fortran Note

The Fortran interface is slightly different from that given below; it
requires one to pass in as submat a Mat (integer) array of size at least m.

### See Also

MatDestroyMatrices(), MatGetSubMatrix(), MatGetRow(), MatGetDiagonal(), MatReuse

**Level:**advanced

Location:src/mat/interface/matrix.c

Index of all Mat routines

Table of Contents for all manual pages

Index of all manual pages