# VecScatterPostRecvs

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

### Synopsis

    #include "petscvec.h"
    PetscErrorCode PETSCVEC_DLLEXPORT 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