# 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 PETSCVEC_DLLEXPORT VecScatterCreateToZero(Vec vin,VecScatter *ctx,Vec *vout)

Collective

### 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()

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