VecScatterPostRecvs

Posts the receives required for the ready-receiver version of the VecScatter routines.

Synopsis

#include "petscvec.h" 
int VecScatterPostRecvs(Vec x,Vec y,InsertMode addv,ScatterMode mode,VecScatter inctx)
Collective on VecScatter

Input Parameters

x - the vector from which we scatter (not needed,can be null)
y - the vector to which we scatter
addv - either ADD_VALUES or INSERT_VALUES
mode - the scattering mode, usually SCATTER_FORWARD. The available modes are: SCATTER_FORWARD, SCATTER_REVERSE
inctx - scatter context generated by VecScatterCreate()

Output Parameter

y -the vector to which we scatter

Notes

If you use SCATTER_REVERSE the first two arguments should be reversed, from the SCATTER_FORWARD. The vectors x and y cannot be the same. y[iy[i]] = x[ix[i]], for i=0,...,ni-1

This scatter is far more general than the conventional scatter, since it can be a gather or a scatter or a combination, depending on the indices ix and iy. If x is a parallel vector and y is sequential, VecScatterBegin() can serve to gather values to a single processor. Similarly, if y is parallel and x sequential, the routine can scatter from one processor to many processors.

See Also

VecScatterCreate(), VecScatterEnd(), VecScatterBegin()

Level:advanced
Location:
src/vec/utils/vscat.c
Index of all Vec routines
Table of Contents for all manual pages
Index of all manual pages