:orphan:
# ISPartitioningCount
Takes a `IS` that represents a partitioning (the MPI rank that each local entry belongs to) and determines the number of resulting elements on each (partition) rank 
## Synopsis
```
#include "petscis.h"  
PetscErrorCode ISPartitioningCount(IS part, PetscInt len, PetscInt count[])
```
Collective


## Input Parameters

- ***partitioning -*** a partitioning as generated by `MatPartitioningApply()` or `MatPartitioningApplyND()`
- ***len -*** length of the array count, this is the total number of partitions



## Output Parameter

- ***count -*** array of length size, to contain the number of elements assigned
to each partition, where size is the number of partitions generated
(see notes below).





## Notes
By default the number of partitions generated (and thus the length
of count) is the size of the communicator associated with `IS`,
but it can be set by `MatPartitioningSetNParts()`.

The resulting array of lengths can for instance serve as input of `PCBJacobiSetTotalBlocks()`.

If the partitioning has been obtained by `MatPartitioningApplyND()`, the returned count does not include the separators.


## See Also
 [](sec_scatter), `IS`, `MatPartitioningCreate()`, `AOCreateBasic()`, `ISPartitioningToNumbering()`,
`MatPartitioningSetNParts()`, `MatPartitioningApply()`, `MatPartitioningApplyND()`

## Level
advanced

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/vec/is/is/utils/iscoloring.c.html#ISPartitioningCount">src/vec/is/is/utils/iscoloring.c</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/vec/is/is/utils/iscoloring.c)


[Index of all IS routines](index.md)  
[Table of Contents for all manual pages](/manualpages/index.md)  
[Index of all manual pages](/manualpages/singleindex.md)  
