Skip to main content
`Ctrl`+`K`

# 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_POLYTOPE_UNKNOWN_CELL,
      DM_POLYTOPE_UNKNOWN_FACE,
      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 Basics, `DM`, `DMPlexComputeCellTypes()`

## Level

beginner

## Location

include/petscdmtypes.h

## Examples

src/dm/impls/plex/tutorials/ex11.c

## Examples

src/dm/impls/plex/tutorials/ex11.c

## Examples

src/ts/tutorials/ex11_sa.c

## Examples

src/dm/impls/plex/tutorials/ex11.c

## Examples

src/snes/tutorials/ex36.c
src/snes/tutorials/ex26.c
src/snes/tutorials/ex20.c
src/snes/tutorials/ex17.c
src/snes/tutorials/ex24.c
src/dm/impls/swarm/tutorials/ex1.c
src/snes/tutorials/ex13.c
src/snes/tutorials/ex27.c
src/dm/impls/plex/tutorials/ex11.c
src/snes/tutorials/ex11.c

Index of all DM routines
Table of Contents for all manual pages
Index of all manual pages