PetscLayout#

defines layout of vectors and matrices (that is the “global” numbering of vector and matrix entries) across MPI processes (which rows are owned by which processes)

Synopsis#

typedef struct _n_PetscLayout *PetscLayout;

Notes#

PETSc vectors (Vec) have a global number associated with each vector entry. The first MPI process that shares the vector owns the first n0 entries of the vector, the second MPI process the next n1 entries, etc. A PetscLayout is a way of managing this information, for example the number of locally owned entries is provided by PetscLayoutGetLocalSize() and the range of indices for a given MPI process is provided by PetscLayoutGetRange().

Each PETSc Vec contains a PetscLayout object which can be obtained with VecGetLayout(). For convenience Vec provides an API to access the layout information directly, for example with VecGetLocalSize() and VecGetOwnershipRange().

Similarly PETSc matrices have layouts, these are discussed in Matrices.

See Also#

PetscLayoutCreate(), PetscLayoutDestroy(), PetscLayoutGetRange(), PetscLayoutGetLocalSize(), PetscLayoutGetSize(), PetscLayoutGetBlockSize(), PetscLayoutGetRanges(), PetscLayoutFindOwner(), PetscLayoutFindOwnerIndex(), VecGetLayout(), VecGetLocalSize(), VecGetOwnershipRange()

Level#

developer

Location#

include/petscistypes.h

Examples#

src/ksp/ksp/tutorials/ex85.c
src/ts/tutorials/ex30.c
src/vec/vec/utils/tagger/tutorials/ex1.c


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