:orphan:
# PetscSplitOwnership
Given a global (or local) length determines a local (or global) length via a simple formula
## Synopsis
```
#include "petscsys.h"
PetscErrorCode PetscSplitOwnership(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
`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
`PetscSplitOwnershipBlock()`, `PetscSplitOwnershipEqual()`
## Level
developer
## Location
src/sys/utils/psplit.c
## Examples
src/ksp/ksp/tutorials/bench_kspsolve.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/sys/utils/psplit.c)
[Index of all Sys routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)