Skip to main content
`Ctrl`+`K`

# 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 splitting `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