# MatGetOwnershipRange#

For matrices that own values by row, excludes MATELEMENTAL and MATSCALAPACK, returns the range of matrix rows owned by this MPI rank. For all matrices it returns the range of matrix rows associated with rows of a vector that would contain the result of a matrix vector product with this matrix. See :any:<sec_matlayout> for details on matrix layouts

## Synopsis#

#include "petscmat.h"
PetscErrorCode MatGetOwnershipRange(Mat mat, PetscInt *m, PetscInt *n)


Not Collective

## Input Parameter#

• mat - the matrix

## Output Parameters#

• m - the global index of the first local row, use NULL to not obtain this value

• n - one more than the global index of the last local row, use NULL to not obtain this value

## Note#

This function requires that the matrix be preallocated. If you have not preallocated, consider using PetscSplitOwnership(MPI_Comm comm, PetscInt *n, PetscInt *N) and then MPI_Scan() to calculate prefix sums of the local sizes.

MatGetOwnershipRanges(), MatGetOwnershipRangeColumn(), MatGetOwnershipRangesColumn(), PetscSplitOwnership(), PetscSplitOwnershipBlock(), PetscLayout

beginner

## Location#

src/mat/interface/matrix.c

Edit on GitLab