Skip to main content
`Ctrl`+`K`

# 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

DMPlex: Unstructured Grids, `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

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