# DMPlexCreatePointNumbering
Create a global numbering for all points. 
## Synopsis
```
#include "petscdmplex.h"   
PetscErrorCode DMPlexCreatePointNumbering(DM dm, IS *globalPointNumbers)
```
Collective on dm


## 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
 [](chapter_unstructured), `DM`, `DMPLEX`, `DMPlexGetCellNumbering()`

## Level
developer

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/impls/plex/plex.c.html#DMPlexCreatePointNumbering">src/dm/impls/plex/plex.c</A>


---
[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](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
