1 #if !defined(PETSCDMPLEXTYPES_H) 2 #define PETSCDMPLEXTYPES_H 3 4 /*E 5 DMPlexShape - The domain shape used for automatic mesh creation. 6 7 Existing shapes include 8 $ DM_SHAPE_BOX - The tensor product of intervals in dimension d 9 $ DM_SHAPE_BOX_SURFACE - The surface of a box in dimension d+1 10 $ DM_SHAPE_BALL - The d-dimensional ball 11 $ DM_SHAPE_SPHERE - The surface of the (d+1)-dimensional ball 12 $ DM_SHAPE_CYLINDER - The tensor product of the interval and disk 13 14 Level: beginner 15 16 .seealso: DMPlexGetCellRefiner(), DMPlexSetCellRefiner(), DMRefine(), DMPolytopeType 17 E*/ 18 typedef enum {DM_SHAPE_BOX, DM_SHAPE_BOX_SURFACE, DM_SHAPE_BALL, DM_SHAPE_SPHERE, DM_SHAPE_CYLINDER, DM_SHAPE_UNKNOWN} DMPlexShape; 19 PETSC_EXTERN const char * const DMPlexShapes[]; 20 21 /*E 22 DMPlexCSRAlgorithm - The algorithm for building the adjacency graph in CSR format, usually for a mesh partitioner 23 24 Existing shapes include 25 $ DM_PLEX_CSR_MAT - Use MatPartition by first making a matrix 26 $ DM_PLEX_CSR_GRAPH - Use the original Plex and communicate along the boundary 27 $ DM_PLEX_CSR_OVERLAP - Build an overlapped Plex and then locally compute 28 29 Level: beginner 30 31 .seealso: DMPlexCreatePartitionerGraph(), PetscPartitionerDMPlexPartition(), DMPlexDistribute() 32 E*/ 33 typedef enum {DM_PLEX_CSR_MAT, DM_PLEX_CSR_GRAPH, DM_PLEX_CSR_OVERLAP} DMPlexCSRAlgorithm; 34 PETSC_EXTERN const char * const DMPlexCSRAlgorithms[]; 35 36 #endif 37