Actual source code: dmlabelephplex.c
  1: #include <petsc/private/dmlabelimpl.h>
  2: #include <petscdmlabelephemeral.h>
  4: /*@
  5:   DMLabelEphemeralGetTransform - Get the transform for this ephemeral label
  7:   Not Collective
  9:   Input Parameter:
 10: . label - the `DMLabel`
 12:   Output Parameter:
 13: . tr - the transform for this ephemeral label
 15:   Level: intermediate
 17:   Note:
 18:   Ephemeral labels are produced automatically from a base label and a `DMPlexTransform`.
 20: .seealso: `DMLabelEphemeralSetTransform()`, `DMLabelEphemeralGetLabel()`, `DMLabelSetType()`
 21: @*/
 22: PetscErrorCode DMLabelEphemeralGetTransform(DMLabel label, DMPlexTransform *tr)
 23: {
 24:   PetscFunctionBegin;
 25:   PetscCall(PetscObjectQuery((PetscObject)label, "__transform__", (PetscObject *)tr));
 26:   PetscFunctionReturn(PETSC_SUCCESS);
 27: }
 29: /*@
 30:   DMLabelEphemeralSetTransform - Set the transform for this ephemeral label
 32:   Not Collective
 34:   Input Parameters:
 35: + label - the `DMLabel`
 36: - tr    - the transform for this ephemeral label
 38:   Level: intermediate
 40:   Note:
 41:   Ephemeral labels are produced automatically from a base label and a `DMPlexTransform`.
 43: .seealso: `DMLabelEphemeralGetTransform()`, `DMLabelEphemeralSetLabel()`, `DMLabelSetType()`
 44: @*/
 45: PetscErrorCode DMLabelEphemeralSetTransform(DMLabel label, DMPlexTransform tr)
 46: {
 47:   PetscFunctionBegin;
 48:   PetscCall(PetscObjectCompose((PetscObject)label, "__transform__", (PetscObject)tr));
 49:   PetscFunctionReturn(PETSC_SUCCESS);
 50: }