# DMPlexCreateGlobalToNaturalSF
Creates the `PetscSF` for mapping Global `Vec` to the Natural `Vec` 
## Synopsis
```
#include "petscdmplex.h"   
PetscErrorCode DMPlexCreateGlobalToNaturalSF(DM dm, PetscSection section, PetscSF sfMigration, PetscSF *sfNatural)
```

## Input Parameters

- ***dm          -*** The redistributed `DM`
- ***section     -*** The local `PetscSection` describing the `Vec` before the mesh was distributed, or NULL if not available
- ***sfMigration -*** The `PetscSF` used to distribute the mesh, or NULL if it cannot be computed



## Output Parameter

- ***sfNatural   -*** `PetscSF` for mapping the `Vec` in PETSc ordering to the canonical ordering





## Note
This is not typically called by the user.


## See Also
 [](chapter_unstructured), `DM`, `DMPLEX`, `PetscSF`, `PetscSection`, `DMPlexDistribute()`, `DMPlexDistributeField()`

## Level
intermediate

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


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/impls/plex/plexnatural.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)  
