:orphan: # DMPlexCreateCohesiveSubmesh Extract from a mesh with cohesive cells the hypersurface defined by one face of the cells. Optionally, a label can be given to restrict the cells. ## Synopsis ``` #include "petscdmplex.h" #include "petscdmlabel.h" PetscErrorCode DMPlexCreateCohesiveSubmesh(DM dm, PetscBool hasLagrange, const char label[], PetscInt value, DM *subdm) ``` ## Input Parameters - ***dm -*** The original mesh - ***hasLagrange -*** The mesh has Lagrange unknowns in the cohesive cells - ***label -*** A label name, or `NULL` - ***value -*** A label value ## Output Parameter - ***subdm -*** The surface mesh ## Note This function produces a `DMLabel` mapping original points in the submesh to their depth. This can be obtained using `DMPlexGetSubpointMap()`. ## See Also [](ch_unstructured), `DM`, `DMPLEX`, `DMPlexGetSubpointMap()`, `DMPlexCreateSubmesh()` ## Level developer ## Location src/dm/impls/plex/plexsubmesh.c ## Implementations DMPlexCreateCohesiveSubmesh_Uninterpolated in src/dm/impls/plex/plexsubmesh.c
DMPlexCreateCohesiveSubmesh_Interpolated in src/dm/impls/plex/plexsubmesh.c
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/impls/plex/plexsubmesh.c) [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)