# PetscPartitionerDMPlexPartition
Create a non-overlapping partition of the cells in the mesh 
## Synopsis
```
#include "petscdmplex.h"   
PetscErrorCode PetscPartitionerDMPlexPartition(PetscPartitioner part, DM dm, PetscSection targetSection, PetscSection partSection, IS *partition)
```
Collective on PetscPartitioner


## Input Parameters

- ***part    -*** The PetscPartitioner
- ***targetSection -*** The PetscSection describing the absolute weight of each partition (can be NULL)
- ***dm      -*** The mesh DM



## Output Parameters

- ***partSection     -*** The PetscSection giving the division of points by partition
- ***partition       -*** The list of points by partition



## Notes
If the DM has a local section associated, each point to be partitioned will be weighted by the total number of dofs identified
by the section in the transitive closure of the point.




## See Also
`DMPlexDistribute()`, `PetscPartitionerCreate()`, `PetscSectionCreate()`, `PetscSectionSetChart()`, `PetscPartitionerPartition()`

## Level
developer

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/impls/plex/plexpartition.c.html#PetscPartitionerDMPlexPartition">src/dm/impls/plex/plexpartition.c</A>


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


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