Skip to main content
`Ctrl`+`K`

# DMPlexCreateOverlapLabelFromLabels

Compute a label indicating what overlap points should be sent to new processes

## Synopsis

    #include "petscdmplex.h"
    #include "petscdmlabel.h"
    PetscErrorCode DMPlexCreateOverlapLabelFromLabels(DM dm, PetscInt numLabels, const DMLabel label[], const PetscInt value[], PetscInt numExLabels, const DMLabel exLabel[], const PetscInt exValue[], PetscSection rootSection, IS rootrank, PetscSection leafSection, IS leafrank, DMLabel *ovLabel)

Collective

## Input Parameters

- dm - The `DM`

- numLabels - The number of labels to draw candidate points from

- label - An array of labels containing candidate points

- value - An array of label values marking the candidate points

- numExLabels - The number of labels to use for exclusion

- exLabel - An array of labels indicating points to be excluded, or `NULL`

- exValue - An array of label values to be excluded, or `NULL`

- rootSection - The number of leaves for a given root point

- rootrank - The rank of each edge into the root point

- leafSection - The number of processes sharing a given leaf point

- leafrank - The rank of each process sharing a leaf point

## Output Parameter

- ovLabel - `DMLabel` containing remote overlap contributions as point/rank pairings

## Note

The candidate points are only added to the overlap if they are adjacent to a shared point

## See Also

`DMPLEX`, `DMPlexCreateOverlapLabel()`, `DMPlexGetAdjacency()`, `DMPlexDistributeOwnership()`, `DMPlexDistribute()`

## Level

developer

## Location

src/dm/impls/plex/plexdistribute.c

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