Skip to main content
`Ctrl`+`K`

# DMPlexDistributeOverlap

Add partition overlap to a distributed non-overlapping `DM`.

## Synopsis

    #include "petscdmplex.h"
    #include "petscdmlabel.h"
    PetscErrorCode DMPlexDistributeOverlap(DM dm, PetscInt overlap, PeOp PetscSF *sf, DM *dmOverlap)

Collective

## 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, or pass `NULL` if not needed

- dmOverlap - The overlapping distributed `DMPLEX` object

## 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 label - Label used to exclude points from overlap

- -dm_plex_overlap_exclude_value value - Label value used to exclude points from overlap

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

## See Also

`DMPLEX`, `PetscSF`, `DM`, `DMPlexCreate()`, `DMSetAdjacency()`, `DMPlexDistribute()`, `DMPlexCreateOverlapLabel()`, `DMPlexGetOverlap()`

## Level

advanced

## Location

src/dm/impls/plex/plexdistribute.c

## Implementations

DMPlexDistributeOverlap_Internal() in src/dm/impls/plex/plexdistribute.c

Index of all DMPlex routines
Table of Contents for all manual pages
Index of all manual pages