:orphan:
# DMPolytopeType
This describes the polytope represented by each cell.
## Synopsis
```
typedef enum {
DM_POLYTOPE_POINT,
DM_POLYTOPE_SEGMENT,
DM_POLYTOPE_POINT_PRISM_TENSOR,
DM_POLYTOPE_TRIANGLE,
DM_POLYTOPE_QUADRILATERAL,
DM_POLYTOPE_SEG_PRISM_TENSOR,
DM_POLYTOPE_TETRAHEDRON,
DM_POLYTOPE_HEXAHEDRON,
DM_POLYTOPE_TRI_PRISM,
DM_POLYTOPE_TRI_PRISM_TENSOR,
DM_POLYTOPE_QUAD_PRISM_TENSOR,
DM_POLYTOPE_PYRAMID,
DM_POLYTOPE_FV_GHOST,
DM_POLYTOPE_INTERIOR_GHOST,
DM_POLYTOPE_UNKNOWN,
DM_NUM_POLYTOPES
} DMPolytopeType;
```
While most operations only need the topology information in the `DMPLEX`, we must sometimes have the
user specify a polytope. For instance, when interpolating from a cell-vertex mesh, the type of
polytope can be ambiguous. Also, `DMPLEX` allows different symmetries of a prism cell with the same
constituent points. Normally these types are automatically inferred and the user does not specify
them.
## See Also
`DM`, `DMPlexComputeCellTypes()`
## Level
beginner
## Location
include/petscdmtypes.h
## Examples
src/dm/impls/plex/tutorials/ex11.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/include/petscdmtypes.h)
[Index of all DM routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)