petsc-3.12.5 2020-03-29
Report Typos and Errors

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 NULL [PETSC_NULL_VEC 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 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