MatGetOwnershipRanges#
For matrices that own values by row, excludes MATELEMENTAL
and MATSCALAPACK
, returns the range of matrix rows owned by each process.
Synopsis#
#include "petscmat.h"
PetscErrorCode MatGetOwnershipRanges(Mat mat, const PetscInt *ranges[])
Not Collective, unless matrix has not been allocated
Input Parameter#
mat - the matrix
Output Parameter#
ranges - start of each processors portion plus one more than the total length at the end, of length
size
+ 1 wheresize
is the number of MPI processes used bymat
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.
For all matrices it returns the ranges of matrix rows associated with rows of a vector that would contain the result of a matrix vector product with this matrix. See Matrix Layouts for details on matrix layouts.
See Also#
Matrices, Mat
, MatGetOwnershipRange()
, MatGetOwnershipRangeColumn()
, MatGetOwnershipRangesColumn()
, PetscLayout
,
PetscSplitOwnership()
, PetscSplitOwnershipBlock()
, MatSetSizes()
, MatCreateAIJ()
,
DMDAGetGhostCorners()
, DM
Level#
beginner
Location#
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages