petsc-3.7.1 2016-05-15
Report Typos and Errors

VecScatterBegin

Begins a generalized scatter from one vector to another. Complete the scattering phase with VecScatterEnd().

Synopsis

#include "petscvec.h"    
PetscErrorCode  VecScatterBegin(VecScatter inctx,Vec x,Vec y,InsertMode addv,ScatterMode mode)
Neighbor-wise Collective on VecScatter and Vec Many br

Input Parameters

inctx - scatter context generated by VecScatterCreate() Many br
x - the vector from which we scatter Many br
y - the vector to which we scatter Many br
addv - either ADD_VALUES or INSERT_VALUES, with INSERT_VALUES mode any location Many brnot scattered to retains its old value; i.e. the vector is NOT first zeroed. Many br
mode - the scattering mode, usually SCATTER_FORWARD. The available modes are: Many brSCATTER_FORWARD or SCATTER_REVERSE Many br

Many br

Options Database: See VecScatterCreate() Many br

Notes

The vectors x and y need not be the same vectors used in the call Many brto VecScatterCreate(), but x must have the same parallel data layout Many bras that passed in as the x to VecScatterCreate(), similarly for the y. Many brMost likely they have been obtained from VecDuplicate(). Many br

You cannot change the values in the input vector between the calls to VecScatterBegin() Many brand VecScatterEnd(). Many br

If you use SCATTER_REVERSE the two arguments x and y should be reversed, from Many brthe SCATTER_FORWARD. Many br

y[iy[i]] = x[ix[i]], for i=0,...,ni-1 Many br

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

See Also

VecScatterCreate(), VecScatterEnd()

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

Examples

src/dm/examples/tutorials/ex2.c.html
src/ksp/ksp/examples/tutorials/ex43.c.html
src/ksp/ksp/examples/tutorials/ex49.c.html
src/snes/examples/tutorials/ex74f.F90.html
src/tao/pde_constrained/examples/tutorials/elliptic.c.html
src/tao/pde_constrained/examples/tutorials/parabolic.c.html
src/tao/pde_constrained/examples/tutorials/hyperbolic.c.html