:orphan: # DMPlexCreatePointNumbering Create a global numbering for all points. ## Synopsis ``` #include "petscdmplex.h" PetscErrorCode DMPlexCreatePointNumbering(DM dm, IS *globalPointNumbers) ``` Collective ## Input Parameter - ***dm -*** The `DMPLEX` object ## 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 [](ch_unstructured), `DM`, `DMPLEX`, `DMPlexGetCellNumbering()` ## Level developer ## Location src/dm/impls/plex/plex.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/impls/plex/plex.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)