petsc-3.3-p7 2013-05-11

VecScatterCreateToZero

Creates an output vector and a scatter context used to copy all vector values into the output vector on the zeroth processor

Synopsis

#include "petscvec.h" 
PetscErrorCode  VecScatterCreateToZero(Vec vin,VecScatter *ctx,Vec *vout)
Collective on Vec

Input Parameter

vin -input MPIVEC

Output Parameter

ctx - scatter context
vout - output SEQVEC that is large enough to scatter into on processor 0 and of length zero on all other processors

Note: vout may be PETSC_NULL [PETSC_NULL_OBJECT from fortran] if you do not need to have it created

Usage

       VecScatterCreateToZero(vin,&ctx,&vout);

       // scatter as many times as you need
       VecScatterBegin(ctx,vin,vout,INSERT_VALUES,SCATTER_FORWARD);
       VecScatterEnd(ctx,vin,vout,INSERT_VALUES,SCATTER_FORWARD);

       // destroy scatter context and local vector when no longer needed
       VecScatterDestroy(ctx);
       VecDestroy(vout);

See Also

VecScatterCreate(), VecScatterCreateToAll(), VecScatterBegin(), VecScatterEnd()

Do NOT create a vector and then pass it in as the final argument vout! vout is created by this routine automatically (unless you pass PETSC_NULL in for that argument if you do not need it).

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