xref: /petsc/src/dm/label/impls/ephemeral/plex/dmlabelephplex.c (revision 80f6d96d0ce89eaa1a15cf9ca02d8013bede711a)
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 Parameter:
13 . tr - the transform for this ephemeral label
14 
15   Level: intermediate
16 
17   Note:
18   Ephemeral labels are produced automatically from a base label and a `DMPlexTransform`.
19 
20 .seealso: `DMLabelEphemeralSetTransform()`, `DMLabelEphemeralGetLabel()`, `DMLabelSetType()`
21 @*/
DMLabelEphemeralGetTransform(DMLabel label,DMPlexTransform * tr)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   Level: intermediate
39 
40   Note:
41   Ephemeral labels are produced automatically from a base label and a `DMPlexTransform`.
42 
43 .seealso: `DMLabelEphemeralGetTransform()`, `DMLabelEphemeralSetLabel()`, `DMLabelSetType()`
44 @*/
DMLabelEphemeralSetTransform(DMLabel label,DMPlexTransform tr)45 PetscErrorCode DMLabelEphemeralSetTransform(DMLabel label, DMPlexTransform tr)
46 {
47   PetscFunctionBegin;
48   PetscCall(PetscObjectCompose((PetscObject)label, "__transform__", (PetscObject)tr));
49   PetscFunctionReturn(PETSC_SUCCESS);
50 }
51