1*c58f1c22SToby Isaac #if !defined(__PETSCDMLABEL_H) 2*c58f1c22SToby Isaac #define __PETSCDMLABEL_H 3*c58f1c22SToby Isaac #include <petscis.h> 4*c58f1c22SToby Isaac 5*c58f1c22SToby Isaac /*S 6*c58f1c22SToby Isaac DMLabel - Object which encapsulates a subset of the mesh from this DM 7*c58f1c22SToby Isaac 8*c58f1c22SToby Isaac Level: developer 9*c58f1c22SToby Isaac 10*c58f1c22SToby Isaac Concepts: grids, grid refinement 11*c58f1c22SToby Isaac 12*c58f1c22SToby Isaac .seealso: DM, DMPlexCreate(), DMPlexCreateLabel() 13*c58f1c22SToby Isaac S*/ 14*c58f1c22SToby Isaac typedef struct _n_DMLabel *DMLabel; 15*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelCreate(const char [], DMLabel *); 16*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelView(DMLabel, PetscViewer); 17*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelDestroy(DMLabel *); 18*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelGetState(DMLabel, PetscObjectState *); 19*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelDuplicate(DMLabel, DMLabel *); 20*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelGetName(DMLabel, const char **); 21*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelGetValue(DMLabel, PetscInt, PetscInt *); 22*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelSetValue(DMLabel, PetscInt, PetscInt); 23*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelClearValue(DMLabel, PetscInt, PetscInt); 24*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelAddStratum(DMLabel, PetscInt); 25*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelInsertIS(DMLabel, IS, PetscInt); 26*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelGetNumValues(DMLabel, PetscInt *); 27*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelGetStratumBounds(DMLabel, PetscInt, PetscInt *, PetscInt *); 28*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelGetValueIS(DMLabel, IS *); 29*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelStratumHasPoint(DMLabel, PetscInt, PetscInt, PetscBool *); 30*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelGetStratumSize(DMLabel, PetscInt, PetscInt *); 31*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelGetStratumIS(DMLabel, PetscInt, IS *); 32*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelClearStratum(DMLabel, PetscInt); 33*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelCreateIndex(DMLabel, PetscInt, PetscInt); 34*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelDestroyIndex(DMLabel); 35*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelHasValue(DMLabel, PetscInt, PetscBool *); 36*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelHasPoint(DMLabel, PetscInt, PetscBool *); 37*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelFilter(DMLabel, PetscInt, PetscInt); 38*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelPermute(DMLabel, IS, DMLabel *); 39*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelDistribute(DMLabel, PetscSF, DMLabel *); 40*c58f1c22SToby Isaac PETSC_EXTERN PetscErrorCode DMLabelConvertToSection(DMLabel, PetscSection *, IS *); 41*c58f1c22SToby Isaac 42*c58f1c22SToby Isaac #endif 43