xref: /petsc/src/dm/label/impls/ephemeral/plex/dmlabelephplex.c (revision 3ba1676111f5c958fe6c2729b46ca4d523958bb3)
19f6c5813SMatthew G. Knepley #include <petsc/private/dmlabelimpl.h> /*I      "petscdmlabelephemeral.h"   I*/
29f6c5813SMatthew G. Knepley #include <petscdmlabelephemeral.h>     /*I      "petscdmplextransform.h"    I*/
39f6c5813SMatthew G. Knepley 
49f6c5813SMatthew G. Knepley /*@
59f6c5813SMatthew G. Knepley   DMLabelEphemeralGetTransform - Get the transform for this ephemeral label
69f6c5813SMatthew G. Knepley 
79f6c5813SMatthew G. Knepley   Not collective
89f6c5813SMatthew G. Knepley 
99f6c5813SMatthew G. Knepley   Input Parameter:
109f6c5813SMatthew G. Knepley . label - the DMLabel
119f6c5813SMatthew G. Knepley 
129f6c5813SMatthew G. Knepley   Output Paramater:
139f6c5813SMatthew G. Knepley . tr - the transform for this ephemeral label
149f6c5813SMatthew G. Knepley 
159f6c5813SMatthew G. Knepley   Note:
169f6c5813SMatthew G. Knepley   Ephemeral labels are produced automatically from a base label and a `DMPlexTransform`.
179f6c5813SMatthew G. Knepley 
189f6c5813SMatthew G. Knepley   Level: intermediate
199f6c5813SMatthew G. Knepley 
209f6c5813SMatthew G. Knepley .seealso: `DMLabelEphemeralSetTransform()`, `DMLabelEphemeralGetLabel()`, `DMLabelSetType()`
219f6c5813SMatthew G. Knepley @*/
229f6c5813SMatthew G. Knepley PetscErrorCode DMLabelEphemeralGetTransform(DMLabel label, DMPlexTransform *tr)
239f6c5813SMatthew G. Knepley {
249f6c5813SMatthew G. Knepley   PetscFunctionBegin;
259f6c5813SMatthew G. Knepley   PetscCall(PetscObjectQuery((PetscObject)label, "__transform__", (PetscObject *)tr));
26*3ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
279f6c5813SMatthew G. Knepley }
289f6c5813SMatthew G. Knepley 
299f6c5813SMatthew G. Knepley /*@
309f6c5813SMatthew G. Knepley   DMLabelEphemeralSetTransform - Set the transform for this ephemeral label
319f6c5813SMatthew G. Knepley 
329f6c5813SMatthew G. Knepley   Not collective
339f6c5813SMatthew G. Knepley 
349f6c5813SMatthew G. Knepley   Input Parameters:
359f6c5813SMatthew G. Knepley + label - the DMLabel
369f6c5813SMatthew G. Knepley - tr    - the transform for this ephemeral label
379f6c5813SMatthew G. Knepley 
389f6c5813SMatthew G. Knepley   Note:
399f6c5813SMatthew G. Knepley   Ephemeral labels are produced automatically from a base label and a `DMPlexTransform`.
409f6c5813SMatthew G. Knepley 
419f6c5813SMatthew G. Knepley   Level: intermediate
429f6c5813SMatthew G. Knepley 
439f6c5813SMatthew G. Knepley .seealso: `DMLabelEphemeralGetTransform()`, `DMLabelEphemeralSetLabel()`, `DMLabelSetType()`
449f6c5813SMatthew G. Knepley @*/
459f6c5813SMatthew G. Knepley PetscErrorCode DMLabelEphemeralSetTransform(DMLabel label, DMPlexTransform tr)
469f6c5813SMatthew G. Knepley {
479f6c5813SMatthew G. Knepley   PetscFunctionBegin;
489f6c5813SMatthew G. Knepley   PetscCall(PetscObjectCompose((PetscObject)label, "__transform__", (PetscObject)tr));
49*3ba16761SJacob Faibussowitsch   PetscFunctionReturn(PETSC_SUCCESS);
509f6c5813SMatthew G. Knepley }
51