VecScatterCreateToAll#
Creates a vector and a scatter context that copies all vector values to each processor
Synopsis#
#include "petscsf.h"
PetscErrorCode VecScatterCreateToAll(Vec vin, VecScatter *ctx, Vec *vout)
Collective
Input Parameter#
vin - an
MPIVEC
Output Parameters#
ctx - scatter context
vout - output
SEQVEC
that is large enough to scatter into
Example 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);
Notes#
vout
may be NULL
[PETSC_NULL_VEC
from Fortran] if you do not
need to have it created
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 NULL
in for that argument if you do not need it).
See Also#
Low-level Vector Communication, VecScatter
, VecScatterCreate()
, VecScatterCreateToZero()
, VecScatterBegin()
, VecScatterEnd()
Level#
intermediate
Location#
Examples#
src/ksp/ksp/tutorials/ex49.c
src/ksp/ksp/tutorials/ex43.c
Index of all PetscSF routines
Table of Contents for all manual pages
Index of all manual pages