#include "petscvec.h" PetscErrorCode VecGhostUpdateEnd(Vec g,InsertMode insertmode,ScatterMode scattermode)Neighbor-wise Collective on Vec
g | - the vector (obtained with VecCreateGhost() or VecDuplicate()) | |
insertmode | - one of ADD_VALUES, MAX_VALUES, MIN_VALUES or INSERT_VALUES | |
scattermode | - one of SCATTER_FORWARD or SCATTER_REVERSE |
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);