# DMPlexShape
The domain shape used for automatic mesh creation. 
## Synopsis
```
typedef enum {
  DM_SHAPE_BOX,
  DM_SHAPE_BOX_SURFACE,
  DM_SHAPE_BALL,
  DM_SHAPE_SPHERE,
  DM_SHAPE_CYLINDER,
  DM_SHAPE_SCHWARZ_P,
  DM_SHAPE_GYROID,
  DM_SHAPE_DOUBLET,
  DM_SHAPE_ANNULUS,
  DM_SHAPE_UNKNOWN
} DMPlexShape;
```
Existing shapes include
```none
DM_SHAPE_BOX         - The tensor product of intervals in dimension d
```
```none
DM_SHAPE_BOX_SURFACE - The surface of a box in dimension d+1
```
```none
DM_SHAPE_BALL        - The d-dimensional ball
```
```none
DM_SHAPE_SPHERE      - The surface of the (d+1)-dimensional ball
```
```none
DM_SHAPE_CYLINDER    - The tensor product of the interval and disk
```
```none
DM_SHAPE_SCHWARZ_P   - The Schwarz-P triply periodic minimal surface
```
```none
DM_SHAPE_GYROID      - The Gyroid triply periodic minimal surface
```
```none
DM_SHAPE_DOUBLET     - The mesh of two cells of a specified type
```
```none
DM_SHAPE_ANNULUS     - The area between two concentric spheres in dimension d
```




## See Also
 `DMPlexGetCellRefiner()`, `DMPlexSetCellRefiner()`, `DMRefine()`, `DMPolytopeType`

## Level
beginner

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/include/petscdmplextypes.h.html#DMPlexShape">include/petscdmplextypes.h</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/include/petscdmplextypes.h)


[Index of all DMPlex routines](index.md)  
[Table of Contents for all manual pages](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
