Skip to main content
`Ctrl`+`K`

# MatGetOwnershipRangeColumn

Returns the range of matrix columns associated with rows of a vector one multiplies this matrix by that are owned by this processor.

## Synopsis

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

Not Collective, unless matrix has not been allocated, then collective

## Input Parameter

- mat - the matrix

## Output Parameters

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

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

## Notes

If the `Mat` was obtained from a `DM` with `DMCreateMatrix()`, then the range values are determined by the specific `DM`.

If the `Mat` was created directly the range values are determined by the local size passed to `MatSetSizes()` or `MatCreateAIJ()`. If `PETSC_DECIDE` was passed as the local size, then the vector uses default values for the range using `PetscSplitOwnership()`.

For certain `DM`, such as `DMDA`, it is better to use `DM` specific routines, such as `DMDAGetGhostCorners()`, to determine the local values in the matrix.

Returns the columns of the “diagonal block” for most sparse matrix formats. See Matrix Layouts for details on matrix layouts.

## See Also

Matrices, `Mat`, `MatGetOwnershipRange()`, `MatGetOwnershipRanges()`, `MatGetOwnershipRangesColumn()`, `PetscLayout`, `MatSetSizes()`, `MatCreateAIJ()`, `DMDAGetGhostCorners()`, `DM`

## Level

developer

## Location

src/mat/interface/matrix.c

## Examples

src/snes/tutorials/ex48.c
src/ksp/ksp/tutorials/ex27.c
src/ksp/ksp/tutorials/ex85.c
src/mat/tutorials/ex10.c

Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages