# VecGhostUpdateBegin

Begins the vector scatter to update the vector from local representation to global or global representation to local.

### Synopsis

    #include "petscvec.h"
    PetscErrorCode PETSCVEC_DLLEXPORT VecGhostUpdateBegin(Vec g,InsertMode insertmode,ScatterMode scattermode)

Collective on Vec

### Input Parameters

| g | - the vector (obtained with VecCreateGhost() or VecDuplicate())
| insertmode | - one of ADD_VALUES or INSERT_VALUES
| scattermode | - one of SCATTER_FORWARD or SCATTER_REVERSE

### Notes

Use the following to update the ghost regions with correct values from the owning process

           VecGhostUpdateBegin(v,INSERT_VALUES,SCATTER_FORWARD);
           VecGhostUpdateEnd(v,INSERT_VALUES,SCATTER_FORWARD);

Use the following to accumulate the ghost region values onto the owning processors

           VecGhostUpdateBegin(v,ADD_VALUES,SCATTER_REVERSE);
           VecGhostUpdateEnd(v,ADD_VALUES,SCATTER_REVERSE);

To accumulate the ghost region values onto the owning processors and then update the ghost regions correctly, call the later followed by the former, i.e.,

           VecGhostUpdateBegin(v,ADD_VALUES,SCATTER_REVERSE);
           VecGhostUpdateEnd(v,ADD_VALUES,SCATTER_REVERSE);
           VecGhostUpdateBegin(v,INSERT_VALUES,SCATTER_FORWARD);
           VecGhostUpdateEnd(v,INSERT_VALUES,SCATTER_FORWARD);

### See Also

VecCreateGhost(), VecGhostUpdateEnd(), VecGhostGetLocalForm(),
VecGhostRestoreLocalForm(),VecCreateGhostWithArray()

Level:advanced
Location:src/vec/impls/mpi/pbvec.c
Index of all Vec routines
Table of Contents for all manual pages
Index of all manual pages

### Examples

src/vec/examples/tutorials/ex9.c.html
src/vec/examples/tutorials/ex9f.F.html
src/vec/examples/tutorials/ex14f.F.html