:orphan:
# DMLocalToLocalBegin
Begins the process of mapping values from a local vector (that include ghost points that contain irrelevant values) to another local vector where the ghost points in the second are set correctly from values on other MPI ranks. Must be followed by `DMLocalToLocalEnd()`.
## Synopsis
```
#include "petscdm.h"
#include "petscdmlabel.h"
#include "petscds.h"
PetscErrorCode DMLocalToLocalBegin(DM dm, Vec g, InsertMode mode, Vec l)
```
Neighbor-wise Collective
## Input Parameters
- ***dm -*** the `DM` object
- ***g -*** the original local vector
- ***mode -*** one of `INSERT_VALUES` or `ADD_VALUES`
## Output Parameter
- ***l -*** the local vector with correct ghost values
## See Also
[](ch_dmbase), `DM`, `DMLocalToLocalEnd()`, `DMCoarsen()`, `DMDestroy()`, `DMView()`, `DMCreateLocalVector()`, `DMCreateGlobalVector()`, `DMCreateInterpolation()`, `DMLocalToLocalEnd()`, `DMGlobalToLocalEnd()`, `DMLocalToGlobalBegin()`
## Level
intermediate
## Location
src/dm/interface/dm.c
## Examples
src/dm/tutorials/ex13f90.F90
## Implementations
DMLocalToLocalBegin_Composite in src/dm/impls/composite/pack.c
DMLocalToLocalBegin_DA in src/dm/impls/da/daltol.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/interface/dm.c)
[Index of all DM routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)