Skip to main content
`Ctrl`+`K`

# DMGlobalToLocalBegin

Begins updating local vectors from global vector

## Synopsis

    #include "petscdm.h"
    #include "petscdmlabel.h"
    #include "petscds.h"
    PetscErrorCode DMGlobalToLocalBegin(DM dm, Vec g, InsertMode mode, Vec l)

Neighbor-wise Collective

## Input Parameters

- dm - the `DM` object

- g - the global vector

- mode - `INSERT_VALUES` or `ADD_VALUES`

- l - the local vector

## Notes

The operation is completed with `DMGlobalToLocalEnd()`

One can perform local computations between the `DMGlobalToLocalBegin()` and `DMGlobalToLocalEnd()` to overlap communication and computation

`DMGlobalToLocal()` is a short form of `DMGlobalToLocalBegin()` and `DMGlobalToLocalEnd()`

`DMGlobalToLocalHookAdd()` may be used to provide additional operations that are performed during the update process.

## See Also

DM Basics, `DM`, `DMCoarsen()`, `DMDestroy()`, `DMView()`, `DMCreateGlobalVector()`, `DMCreateInterpolation()`, `DMGlobalToLocal()`, `DMGlobalToLocalEnd()`, `DMLocalToGlobalBegin()`, `DMLocalToGlobal()`, `DMLocalToGlobalEnd()`

## Level

intermediate

## Location

src/dm/interface/dm.c

## Examples

src/dm/tutorials/ex7.c
src/dm/tutorials/ex6.c
src/ksp/ksp/tutorials/ex43.c
src/ksp/ksp/tutorials/ex14f.F90
src/dm/tutorials/ex3.c
src/ksp/ksp/tutorials/ex42.c
src/ksp/ksp/tutorials/ex70.c
src/dm/tutorials/ex9.c
src/dm/tutorials/ex5.c
src/dm/tutorials/ex1.c

## Implementations

DMGlobalToLocalBegin_Composite() in src/dm/impls/composite/pack.c
DMGlobalToLocalBegin_DA() in src/dm/impls/da/dagtol.c
DMGlobalToLocalBegin_Moab() in src/dm/impls/moab/dmmbvec.cxx
DMGlobalToLocalBegin_Network() in src/dm/impls/network/network.c
DMGlobalToLocalBegin_Redundant() in src/dm/impls/redundant/dmredundant.c
DMGlobalToLocalBegin_Sliced() in src/dm/impls/sliced/sliced.c
DMGlobalToLocalBegin_Stag() in src/dm/impls/stag/stag.c
DMGlobalToLocalBegin_Swarm() in src/dm/impls/swarm/swarm.c

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