# 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 part


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





## Note
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
 [](chapter_unstructured), `DM`, `DMPLEX`, `PetscPartitioner`, `PetscSection`, `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)  
