# DMPlexDistributeOverlap
Add partition overlap to a distributed non-overlapping DM. 
## Synopsis
```
#include "petscdmplex.h"   
#include "petscdmlabel.h"  
PetscErrorCode DMPlexDistributeOverlap(DM dm, PetscInt overlap, PetscSF *sf, DM *dmOverlap)
```
Collective on dm


## Input Parameters

- ***dm  -*** The non-overlapping distributed DMPlex object
- ***overlap -*** The overlap of partitions (the same on all ranks)



## Output Parameters

- ***sf -*** The PetscSF used for point distribution
- ***dmOverlap -*** The overlapping distributed DMPlex object, or NULL



## Notes
If the mesh was not distributed, the return value is NULL.

The user can control the definition of adjacency for the mesh using DMSetAdjacency(). They should choose the combination appropriate for the function
representation on the mesh.


## Options Database Keys

- ***-dm_plex_overlap_labels <name1,name2,...> -*** List of overlap label names
- ***-dm_plex_overlap_values <int1,int2,...>   -*** List of overlap label values
- ***-dm_plex_overlap_exclude_label <name>     -*** Label used to exclude points from overlap
- ***-dm_plex_overlap_exclude_value <int>      -*** Label value used to exclude points from overlap





## See Also
 `DMPlexCreate()`, `DMSetAdjacency()`, `DMPlexDistribute()`, `DMPlexCreateOverlapLabel()`, `DMPlexGetOverlap()`

## Level
advanced

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


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/impls/plex/plexdistribute.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)  
