126bd1501SBarry Smith #if !defined(PETSCDMPLEXTYPES_H) 226bd1501SBarry Smith #define PETSCDMPLEXTYPES_H 386fe8405SMatthew G. Knepley 4*412e9a14SMatthew G. Knepley /*S 5*412e9a14SMatthew G. Knepley DMPlexCellRefiner - Object encapsulating the refinement strategy for a DMPlex 6*412e9a14SMatthew G. Knepley 7*412e9a14SMatthew G. Knepley Level: developer 8*412e9a14SMatthew G. Knepley 9*412e9a14SMatthew G. Knepley .seealso: DMPlexCellRefinerCreate(), DMType 10*412e9a14SMatthew G. Knepley S*/ 11*412e9a14SMatthew G. Knepley typedef struct _p_DMPlexCellRefiner *DMPlexCellRefiner; 12*412e9a14SMatthew G. Knepley 13*412e9a14SMatthew G. Knepley 1486fe8405SMatthew G. Knepley /*E 15*412e9a14SMatthew G. Knepley DMPlexCellRefinerType - This describes the strategy used to refine cells. 1686fe8405SMatthew G. Knepley 1786fe8405SMatthew G. Knepley Level: beginner 1886fe8405SMatthew G. Knepley 19*412e9a14SMatthew G. Knepley The strategy gives a prescription for refining each cell type. Existing strategies include 20*412e9a14SMatthew G. Knepley $ REFINER_REGULAR - Divide cells into smaller cells of the same type 21*412e9a14SMatthew G. Knepley $ REFINER_TO_HEX - Divide all cells into box cells 22*412e9a14SMatthew G. Knepley $ REFINER_TO_SIMPLEX - Divide all cells into simplices 2386fe8405SMatthew G. Knepley 24*412e9a14SMatthew G. Knepley .seealso: DMPlexGetCellRefiner(), DMPlexSetCellRefiner(), DMRefine(), DMPolytopeType 2586fe8405SMatthew G. Knepley E*/ 26*412e9a14SMatthew G. Knepley typedef enum {REFINER_REGULAR, REFINER_TO_HEX, REFINER_TO_SIMPLEX} DMPlexCellRefinerType; 27*412e9a14SMatthew G. Knepley PETSC_EXTERN const char * const DMPlexCellRefinerTypes[]; 2886fe8405SMatthew G. Knepley 2986fe8405SMatthew G. Knepley #endif 30