126bd1501SBarry Smith #if !defined(PETSCDMPLEXTYPES_H) 226bd1501SBarry Smith #define PETSCDMPLEXTYPES_H 386fe8405SMatthew G. Knepley 4412e9a14SMatthew G. Knepley /*S 5412e9a14SMatthew G. Knepley DMPlexCellRefiner - Object encapsulating the refinement strategy for a DMPlex 6412e9a14SMatthew G. Knepley 7412e9a14SMatthew G. Knepley Level: developer 8412e9a14SMatthew G. Knepley 9412e9a14SMatthew G. Knepley .seealso: DMPlexCellRefinerCreate(), DMType 10412e9a14SMatthew G. Knepley S*/ 11412e9a14SMatthew G. Knepley typedef struct _p_DMPlexCellRefiner *DMPlexCellRefiner; 12412e9a14SMatthew G. Knepley 13412e9a14SMatthew G. Knepley 1486fe8405SMatthew G. Knepley /*E 15412e9a14SMatthew G. Knepley DMPlexCellRefinerType - This describes the strategy used to refine cells. 1686fe8405SMatthew G. Knepley 1786fe8405SMatthew G. Knepley Level: beginner 1886fe8405SMatthew G. Knepley 19412e9a14SMatthew G. Knepley The strategy gives a prescription for refining each cell type. Existing strategies include 20*96ca5757SLisandro Dalcin $ DM_REFINER_REGULAR - Divide cells into smaller cells of the same type 21*96ca5757SLisandro Dalcin $ DM_REFINER_TO_BOX - Divide all cells into box cells 22*96ca5757SLisandro Dalcin $ DM_REFINER_TO_SIMPLEX - Divide all cells into simplices 2386fe8405SMatthew G. Knepley 24412e9a14SMatthew G. Knepley .seealso: DMPlexGetCellRefiner(), DMPlexSetCellRefiner(), DMRefine(), DMPolytopeType 2586fe8405SMatthew G. Knepley E*/ 26*96ca5757SLisandro Dalcin typedef enum {DM_REFINER_REGULAR, DM_REFINER_TO_BOX, DM_REFINER_TO_SIMPLEX} DMPlexCellRefinerType; 27412e9a14SMatthew G. Knepley PETSC_EXTERN const char * const DMPlexCellRefinerTypes[]; 2886fe8405SMatthew G. Knepley 2986fe8405SMatthew G. Knepley #endif 30