#include "petscvec.h" int VecScatterBegin(Vec x,Vec y,InsertMode addv,ScatterMode mode,VecScatter inctx)Collective on VecScatter and Vec
x | - the vector from which we scatter | |
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 or SCATTER_REVERSE | |
inctx | - scatter context generated by VecScatterCreate() |
You cannot change the values in the input vector between the calls to VecScatterBegin() and VecScatterEnd().
If you use SCATTER_REVERSE the first two arguments should be reversed, from the SCATTER_FORWARD.
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.
Level:intermediate
Location:src/vec/utils/vscat.c
Index of all Vec routines
Table of Contents for all manual pages
Index of all manual pages