petsc-3.14.6 2021-03-30
PetscSplitOwnershipEqual
Given a global (or local) length determines a local (or global) length via a simple formula, trying to have all local lengths equal
Synopsis
#include "petscsys.h"
PetscErrorCode PetscSplitOwnershipEqual(MPI_Comm comm,PetscInt *n,PetscInt *N)
Collective (if n or N is PETSC_DECIDE)
Input Parameters
| comm | - MPI communicator that shares the object being divided
|
| n | - local length (or PETSC_DECIDE to have it set)
|
| N | - global length (or PETSC_DECIDE)
|
Notes
This is intended to be used with MATSCALAPACK, where the local size must
be equal in all processes (except possibly the last one). For instance,
the local sizes when spliting N=50 with 6 processes are 9,9,9,9,9,5
n and N cannot be both PETSC_DECIDE
If one processor calls this with n or N of PETSC_DECIDE then all processors
must. Otherwise, an error is thrown in debug mode while the program will hang
in optimized (i.e. configured --with-debugging=0) mode.
See Also
PetscSplitOwnership(), PetscSplitOwnershipBlock()
Level
developer
Location
src/sys/utils/psplit.c
Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages