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 Paramater:
 13: . tr - the transform for this ephemeral label

 15:   Note:
 16:   Ephemeral labels are produced automatically from a base label and a `DMPlexTransform`.

 18:   Level: intermediate

 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:   Note:
 39:   Ephemeral labels are produced automatically from a base label and a `DMPlexTransform`.

 41:   Level: intermediate

 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: }