:orphan:
# 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_HYPERCUBIC,
  DM_SHAPE_ZBOX,
  DM_SHAPE_UNKNOWN
} DMPlexShape;
```

## Values

- ***`DM_SHAPE_BOX`         -*** The tensor product of intervals in dimension d
- ***`DM_SHAPE_BOX_SURFACE` -*** The surface of a box in dimension d+1
- ***`DM_SHAPE_BALL`        -*** The d-dimensional ball
- ***`DM_SHAPE_SPHERE`      -*** The surface of the (d+1)-dimensional ball
- ***`DM_SHAPE_CYLINDER`    -*** The tensor product of the interval and disk
- ***`DM_SHAPE_SCHWARZ_P`   -*** The Schwarz-P triply periodic minimal surface
- ***`DM_SHAPE_GYROID`      -*** The Gyroid triply periodic minimal surface
- ***`DM_SHAPE_DOUBLET`     -*** The mesh of two cells of a specified type
- ***`DM_SHAPE_ANNULUS`     -*** The area between two concentric spheres in dimension d
- ***`DM_SHAPE_HYPERCUBIC`  -*** The skeleton of the tensor product of the intervals





## 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](/manualpages/index.md)  
[Index of all manual pages](/manualpages/singleindex.md)  
