DMPlexCreatePointNumbering#

Create a global numbering for all points.

Synopsis#

#include "petscdmplex.h"   
PetscErrorCode DMPlexCreatePointNumbering(DM dm, IS *globalPointNumbers)

Collective

Input Parameter#

Output Parameter#

  • globalPointNumbers - Global numbers for all points on this process

Notes#

The point numbering IS is parallel, with local portion indexed by local points (see DMGetLocalSection()). The global points are taken as stratified, with each MPI rank owning a contiguous subset of each stratum. In the IS, owned points will have their non-negative value while points owned by different ranks will be involuted -(idx+1). As an example, consider a parallel mesh in which the first two elements and first two vertices are owned by rank 0.

The partitioned mesh is

(2)--0--(3)--1--(4)    (1)--0--(2)

and its global numbering is

(3)--0--(4)--1--(5)--2--(6)

Then the global numbering is provided as

[0] Number of indices in set 5
[0] 0 0
[0] 1 1
[0] 2 3
[0] 3 4
[0] 4 -6
[1] Number of indices in set 3
[1] 0 2
[1] 1 5
[1] 2 6

See Also#

DMPlex: Unstructured Grids, DM, DMPLEX, DMPlexGetCellNumbering()

Level#

developer

Location#

src/dm/impls/plex/plex.c


Edit on GitLab

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