:orphan:
# PetscPartitionerShellSetPartition
Set an artificial partition for a mesh 
## Synopsis
```
#include "petscpartitioner.h" 
PetscErrorCode PetscPartitionerShellSetPartition(PetscPartitioner part, PetscInt size, const PetscInt sizes[], const PetscInt points[])
```
Collective


## Input Parameters

- ***part   -*** The `PetscPartitioner`
- ***size   -*** The number of partitions
- ***sizes  -*** array of length size (or `NULL`) providing the number of points in each partition
- ***points -*** array of length sum(sizes) (may be `NULL` iff sizes is `NULL`), a permutation of the points that groups those assigned to each partition in order (i.e., partition 0 first, partition 1 next, etc.)





## Note
It is safe to free the sizes and points arrays after use in this routine.


## See Also
`DMPlexDistribute()`, `PetscPartitionerCreate()`

## Level
developer

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/partitioner/impls/shell/partshell.c.html#PetscPartitionerShellSetPartition">src/dm/partitioner/impls/shell/partshell.c</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/partitioner/impls/shell/partshell.c)


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