Skip to main content
`Ctrl`+`K`

# DMLocalToGlobalBegin

begins updating global vectors from local vectors

## Synopsis

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

Neighbor-wise Collective

## Input Parameters

- dm - the `DM` object

- l - the local vector

- mode - if `INSERT_VALUES` then no parallel communication is used, if `ADD_VALUES` then all ghost points from the same base point accumulate into that base point.

- g - the global vector

## Notes

In the `ADD_VALUES` case you normally would zero the receiving vector before beginning this operation.

`INSERT_VALUES is` not supported for `DMDA`, in that case simply compute the values directly into a global vector instead of a local one.

Use `DMLocalToGlobalEnd()` to complete the communication process.

`DMLocalToGlobal()` is a short form of `DMLocalToGlobalBegin()` and `DMLocalToGlobalEnd()`

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

## See Also

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

## Level

intermediate

## Location

src/dm/interface/dm.c

## Examples

src/dm/tutorials/ex7.c
src/ksp/ksp/tutorials/ex69.c
src/dm/tutorials/ex14.c
src/dm/tutorials/ex1.c
src/ksp/ksp/tutorials/ex49.c
src/ksp/ksp/tutorials/ex42.c
src/dm/tutorials/ex5.c
src/dm/tutorials/ex9.c
src/ksp/ksp/tutorials/ex70.c
src/ksp/ksp/tutorials/ex43.c

## Implementations

DMLocalToGlobalBegin_Composite() in src/dm/impls/composite/pack.c
DMLocalToGlobalBegin_DA() in src/dm/impls/da/dagtol.c
DMLocalToGlobalBegin_Moab() in src/dm/impls/moab/dmmbvec.cxx
DMLocalToGlobalBegin_Network() in src/dm/impls/network/network.c
DMLocalToGlobalBegin_Redundant() in src/dm/impls/redundant/dmredundant.c
DMLocalToGlobalBegin_Stag() in src/dm/impls/stag/stag.c
DMLocalToGlobalBegin_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