petsc-3.3-p7 2013-05-11

VecScatterCreateToAll

Creates a vector and a scatter context that copies all vector values to each processor

Synopsis

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

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

Usage

       VecScatterCreateToAll(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);

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).

See Also

VecScatterCreate(), VecScatterCreateToZero(), VecScatterBegin(), VecScatterEnd()

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

Examples

src/ksp/ksp/examples/tutorials/ex43.c.html
src/ksp/ksp/examples/tutorials/ex49.c.html