:html_theme.sidebar_secondary.remove: true
# 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.


## Manual Pages by Level

### Beginner - Basic usage
```{hlist}
---
columns: 3
---
- [](DMLabelAddStrata.md)
- [](DMLabelAddStrataIS.md)
- [](DMLabelAddStratum.md)
- [](DMLabelCreate.md)
- [](DMLabelDestroy.md)
- [](DMLabelGetDefaultValue.md)
- [](DMLabelReset.md)
- [](DMLabelSetDefaultValue.md)
```



### Intermediate - Setting options for algorithms and data structures
```{hlist}
---
columns: 3
---
- [](DMLABELEPHEMERAL.md)
- [](DMLabelClearStratum.md)
- [](DMLabelClearValue.md)
- [](DMLabelCompare.md)
- [](DMLabelComputeIndex.md)
- [](DMLabelCreateIndex.md)
- [](DMLabelDestroyIndex.md)
- [](DMLabelDistribute.md)
- [](DMLabelDuplicate.md)
- [](DMLabelEphemeralGetLabel.md)
- [](DMLabelEphemeralGetTransform.md)
- [](DMLabelEphemeralSetLabel.md)
- [](DMLabelEphemeralSetTransform.md)
- [](DMLabelFilter.md)
- [](DMLabelGetBounds.md)
- [](DMLabelGetNonEmptyStratumValuesIS.md)
- [](DMLabelGetNumValues.md)
- [](DMLabelGetStratumBounds.md)
- [](DMLabelGetStratumIS.md)
- [](DMLabelGetStratumPointIndex.md)
- [](DMLabelGetStratumSize.md)
- [](DMLabelGetType.md)
- [](DMLabelGetValue.md)
- [](DMLabelGetValueIS.md)
- [](DMLabelGetValueIndex.md)
- [](DMLabelHasStratum.md)
- [](DMLabelInsertIS.md)
- [](DMLabelPermute.md)
- [](DMLabelPropagateBegin.md)
- [](DMLabelPropagateEnd.md)
- [](DMLabelPropagatePush.md)
- [](DMLabelSetStratumBounds.md)
- [](DMLabelSetStratumIS.md)
- [](DMLabelSetType.md)
- [](DMLabelSetUp.md)
- [](DMLabelSetValue.md)
- [](DMLabelStratumHasPoint.md)
- [](DMLabelView.md)
```



### Advanced - Setting more advanced options and customization
```{hlist}
---
columns: 3
---
- [](DMLabelRegister.md)
- [](DMLabelRegisterAll.md)
```



### Developer - Interfaces rarely needed by applications programmers
```{hlist}
---
columns: 3
---
- [](DMLabel.md)
- [](DMLabelConvertToSection.md)
- [](DMLabelGather.md)
- [](DMLabelHasPoint.md)
- [](DMLabelHasValue.md)
- [](DMLabelRegisterDestroy.md)
- [](PetscSectionCreateGlobalSectionLabel.md)
- [](PetscSectionSymCreateLabel.md)
- [](PetscSectionSymLabelGetStratum.md)
- [](PetscSectionSymLabelSetLabel.md)
- [](PetscSectionSymLabelSetStratum.md)
```



## Single list of manual pages
```{hlist}
---
columns: 3
---
- [](DMLABELEPHEMERAL.md)
- [](DMLabel.md)
- [](DMLabelAddStrata.md)
- [](DMLabelAddStrataIS.md)
- [](DMLabelAddStratum.md)
- [](DMLabelClearStratum.md)
- [](DMLabelClearValue.md)
- [](DMLabelCompare.md)
- [](DMLabelComputeIndex.md)
- [](DMLabelConvertToSection.md)
- [](DMLabelCreate.md)
- [](DMLabelCreateIndex.md)
- [](DMLabelDestroy.md)
- [](DMLabelDestroyIndex.md)
- [](DMLabelDistribute.md)
- [](DMLabelDuplicate.md)
- [](DMLabelEphemeralGetLabel.md)
- [](DMLabelEphemeralGetTransform.md)
- [](DMLabelEphemeralSetLabel.md)
- [](DMLabelEphemeralSetTransform.md)
- [](DMLabelFilter.md)
- [](DMLabelGather.md)
- [](DMLabelGetBounds.md)
- [](DMLabelGetDefaultValue.md)
- [](DMLabelGetNonEmptyStratumValuesIS.md)
- [](DMLabelGetNumValues.md)
- [](DMLabelGetStratumBounds.md)
- [](DMLabelGetStratumIS.md)
- [](DMLabelGetStratumPointIndex.md)
- [](DMLabelGetStratumSize.md)
- [](DMLabelGetType.md)
- [](DMLabelGetValue.md)
- [](DMLabelGetValueIS.md)
- [](DMLabelGetValueIndex.md)
- [](DMLabelHasPoint.md)
- [](DMLabelHasStratum.md)
- [](DMLabelHasValue.md)
- [](DMLabelInsertIS.md)
- [](DMLabelPermute.md)
- [](DMLabelPropagateBegin.md)
- [](DMLabelPropagateEnd.md)
- [](DMLabelPropagatePush.md)
- [](DMLabelRegister.md)
- [](DMLabelRegisterAll.md)
- [](DMLabelRegisterDestroy.md)
- [](DMLabelReset.md)
- [](DMLabelSetDefaultValue.md)
- [](DMLabelSetStratumBounds.md)
- [](DMLabelSetStratumIS.md)
- [](DMLabelSetType.md)
- [](DMLabelSetUp.md)
- [](DMLabelSetValue.md)
- [](DMLabelStratumHasPoint.md)
- [](DMLabelView.md)
- [](PetscSectionCreateGlobalSectionLabel.md)
- [](PetscSectionSymCreateLabel.md)
- [](PetscSectionSymLabelGetStratum.md)
- [](PetscSectionSymLabelSetLabel.md)
- [](PetscSectionSymLabelSetStratum.md)
```


