petsc-dev 2014-07-25
Report Typos and Errors

VecGhostUpdateBegin

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

Synopsis

#include "petscvec.h"   
PetscErrorCode  VecGhostUpdateBegin(Vec g,InsertMode insertmode,ScatterMode scattermode)
Neighbor-wise 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/vec/impls/mpi/commonmpvec.c
Index of all Vec routines
Table of Contents for all manual pages
Index of all manual pages

Examples

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