PETSc version 3.17.0
Fix/Edit manual page

# 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 on Vec

### Input Parameter

| vin | - input MPIVEC

### Output Parameters

| ctx | - scatter context
| vout | - output SEQVEC that is large enough to scatter into

Note: vout may be NULL [PETSC_NULL_VEC 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 NULL in for that argument if you do not need it).

### See Also

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

### Level

intermediate

### Location

src/vec/is/sf/interface/vscat.c

### Examples

src/ksp/ksp/tutorials/ex43.c.html
src/ksp/ksp/tutorials/ex49.c.html
Index of all PetscSF routines
Table of Contents for all manual pages
Index of all manual pages