Skip to main content
`Ctrl`+`K`

# Selecting Parts of Meshes (DMLabel)

The `DMLABEL` object is used to mark pieces of a mesh or `DM`, for example to indicate that a boundary condition should hold on that section. Markers are integers, so it can be seen as a multimap between integers and mesh pieces.

Insertion is amortized \(O(1)\) since hash tables are used, but each bin is then sorted so that extraction into sorted levels is also \(O(1)\). The total cost should be \(O(N log N)\) for \(N\) entries.

## Beginner - Basic usage

- DMLabelAddStrata

- DMLabelAddStrataIS

- DMLabelAddStratum

- DMLabelCreate

- DMLabelDestroy

- DMLabelGetDefaultValue

- DMLabelReset

- DMLabelSetDefaultValue

## Intermediate - Setting options for algorithms and data structures

- DMLABELEPHEMERAL

- DMLabelClearStratum

- DMLabelClearValue

- DMLabelCompare

- DMLabelComputeIndex

- DMLabelCreateIndex

- DMLabelDestroyIndex

- DMLabelDistribute

- DMLabelDuplicate

- DMLabelEphemeralGetLabel

- DMLabelEphemeralGetTransform

- DMLabelEphemeralSetLabel

- DMLabelEphemeralSetTransform

- DMLabelFilter

- DMLabelGetBounds

- DMLabelGetNonEmptyStratumValuesIS

- DMLabelGetNumValues

- DMLabelGetStratumBounds

- DMLabelGetStratumIS

- DMLabelGetStratumPointIndex

- DMLabelGetStratumSize

- DMLabelGetType

- DMLabelGetValue

- DMLabelGetValueBounds

- DMLabelGetValueIS

- DMLabelGetValueIndex

- DMLabelHasStratum

- DMLabelInsertIS

- DMLabelPermute

- DMLabelPropagateBegin

- DMLabelPropagateEnd

- DMLabelPropagatePush

- DMLabelSetStratumBounds

- DMLabelSetStratumIS

- DMLabelSetType

- DMLabelSetUp

- DMLabelSetValue

- DMLabelStratumHasPoint

- DMLabelView

## Advanced - Setting more advanced options and customization

- DMLabelRegister

- DMLabelRegisterAll

## Developer - Interfaces rarely needed by applications programmers

- DMLabel

- DMLabelConvertToSection

- DMLabelGather

- DMLabelHasPoint

- DMLabelHasValue

- DMLabelRegisterDestroy

- PetscSectionCreateGlobalSectionLabel

- PetscSectionSymCreateLabel

- PetscSectionSymLabelGetStratum

- PetscSectionSymLabelSetLabel

- PetscSectionSymLabelSetStratum

## Single list of manual pages

- DMLABELEPHEMERAL

- DMLabel

- DMLabelAddStrata

- DMLabelAddStrataIS

- DMLabelAddStratum

- DMLabelClearStratum

- DMLabelClearValue

- DMLabelCompare

- DMLabelComputeIndex

- DMLabelConvertToSection

- DMLabelCreate

- DMLabelCreateIndex

- DMLabelDestroy

- DMLabelDestroyIndex

- DMLabelDistribute

- DMLabelDuplicate

- DMLabelEphemeralGetLabel

- DMLabelEphemeralGetTransform

- DMLabelEphemeralSetLabel

- DMLabelEphemeralSetTransform

- DMLabelFilter

- DMLabelGather

- DMLabelGetBounds

- DMLabelGetDefaultValue

- DMLabelGetNonEmptyStratumValuesIS

- DMLabelGetNumValues

- DMLabelGetStratumBounds

- DMLabelGetStratumIS

- DMLabelGetStratumPointIndex

- DMLabelGetStratumSize

- DMLabelGetType

- DMLabelGetValue

- DMLabelGetValueBounds

- DMLabelGetValueIS

- DMLabelGetValueIndex

- DMLabelHasPoint

- DMLabelHasStratum

- DMLabelHasValue

- DMLabelInsertIS

- DMLabelPermute

- DMLabelPropagateBegin

- DMLabelPropagateEnd

- DMLabelPropagatePush

- DMLabelRegister

- DMLabelRegisterAll

- DMLabelRegisterDestroy

- DMLabelReset

- DMLabelSetDefaultValue

- DMLabelSetStratumBounds

- DMLabelSetStratumIS

- DMLabelSetType

- DMLabelSetUp

- DMLabelSetValue

- DMLabelStratumHasPoint

- DMLabelView

- PetscSectionCreateGlobalSectionLabel

- PetscSectionSymCreateLabel

- PetscSectionSymLabelGetStratum

- PetscSectionSymLabelSetLabel

- PetscSectionSymLabelSetStratum