:orphan: # DMLabelPropagatePush Tear down a cycle of label propagation ## Synopsis ``` #include "petscdmlabel.h" #include "petscsection.h" PetscErrorCode DMLabelPropagatePush(DMLabel label, PetscSF pointSF, PetscErrorCode (*markPoint)(DMLabel, PetscInt, PetscInt, void *), void *ctx) ``` Collective ## Input Parameters - ***label -*** The `DMLabel` to propagate across processes - ***sf -*** The `PetscSF` describing parallel layout of the label points - ***markPoint -*** An optional callback that is called when a point is marked, or `NULL` - ***ctx -*** An optional user context for the callback, or `NULL` ## Calling sequence of `markPoint` ```none PetscErrorCode markPoint(DMLabel label, PetscInt p, PetscInt val, void *ctx); ``` - ***label -*** The `DMLabel` - ***p -*** The point being marked - ***val -*** The label value for `p` - ***ctx -*** An optional user context ## See Also `DMLabel`, `DM`, `DMLabelPropagateBegin()`, `DMLabelPropagateEnd()` ## Level intermediate ## Location src/dm/label/dmlabel.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/label/dmlabel.c) [Index of all DMLabel routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)