DMPlexLabelCohesiveComplete#
Starting with a label marking points on an internal surface, we add all other mesh pieces to complete the surface
Synopsis#
#include "petscdmplex.h"
#include "petscdmlabel.h"
PetscErrorCode DMPlexLabelCohesiveComplete(DM dm, DMLabel label, DMLabel blabel, PetscInt bvalue, PetscBool flip, PetscBool split, DM subdm)
Input Parameters#
dm - The
DMlabel - A
DMLabelmarking the surfaceblabel - A
DMLabelmarking the vertices on the boundary which will not be duplicated, orNULLto find them automaticallybvalue - Value of
DMLabelmarking the vertices on the boundaryflip - Flag to flip the submesh normal and replace points on the other side
split - Split faces impinging on the surface, rather than clamping the surface boundary
subdm - The
DMassociated with the label, orNULL
Output Parameter#
label - A
DMLabelmarking all surface points
Note#
The vertices in blabel are called “unsplit” in the terminology from hybrid cell creation.
Points are marked with their dimension, combined with a shift based on the type of interation with the surface. For points on the surface itself, the shift is zero. Mesh points impinging on the surface have a shoft of 100, and then are negated for points on the negative side of the fault. Points on the surface boundary, called unsplit, are shifted by 200. Cells on the surface that are not owned by this process are shifted by 300.
See Also#
DMPlex: Unstructured Grids, DM, DMPLEX, DMPlexConstructCohesiveCells(), DMPlexLabelComplete()
Level#
developer
Location#
src/dm/impls/plex/plexsubmesh.c
Index of all DMPlex routines
Table of Contents for all manual pages
Index of all manual pages