xref: /petsc/src/dm/label/impls/ephemeral/plex/dmlabelephplex.c (revision df4cd43f92eaa320656440c40edb1046daee8f75) !
1 #include <petsc/private/dmlabelimpl.h> /*I      "petscdmlabelephemeral.h"   I*/
2 #include <petscdmlabelephemeral.h>     /*I      "petscdmplextransform.h"    I*/
3 
4 /*@
5   DMLabelEphemeralGetTransform - Get the transform for this ephemeral label
6 
7   Not collective
8 
9   Input Parameter:
10 . label - the DMLabel
11 
12   Output Paramater:
13 . tr - the transform for this ephemeral label
14 
15   Note:
16   Ephemeral labels are produced automatically from a base label and a `DMPlexTransform`.
17 
18   Level: intermediate
19 
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 }
28 
29 /*@
30   DMLabelEphemeralSetTransform - Set the transform for this ephemeral label
31 
32   Not collective
33 
34   Input Parameters:
35 + label - the DMLabel
36 - tr    - the transform for this ephemeral label
37 
38   Note:
39   Ephemeral labels are produced automatically from a base label and a `DMPlexTransform`.
40 
41   Level: intermediate
42 
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 }
51