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 DM

  • label - A DMLabel marking the surface

  • blabel - A DMLabel marking the vertices on the boundary which will not be duplicated, or NULL to find them automatically

  • bvalue - Value of DMLabel marking the vertices on the boundary

  • flip - 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 DM associated with the label, or NULL

Output Parameter#

  • label - A DMLabel marking 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