petsc-3.7.7 2017-09-25
Report Typos and Errors

# VecScatterCreateLocal

Creates a VecScatter from a list of messages it must send and receive.

### Synopsis

    #include "petscvec.h"
    PetscErrorCode VecScatterCreateLocal(VecScatter ctx,PetscInt nsends,const PetscInt sendSizes[],const PetscInt sendProcs[],const PetscInt sendIdx[],PetscInt nrecvs,const PetscInt recvSizes[],const PetscInt recvProcs[],const PetscInt recvIdx[],PetscInt bs)

Collective on VecScatter

### Input Parameters

| VecScatter | - obtained with VecScatterCreateEmpty()
| nsends | -
| sendSizes | -
| sendProcs | -
| sendIdx | - indices where the sent entries are obtained from (in local, on process numbering), this is one long array of size \sum_{i=0,i<nsends} sendSizes[i]
| nrecvs | - number of receives to expect
| recvSizes | -
| recvProcs | - processes who are sending to me
| recvIdx | - indices of where received entries are to be put, (in local, on process numbering), this is one long array of size \sum_{i=0,i<nrecvs} recvSizes[i]
| bs | - size of block

Notes: sendSizes[] and recvSizes[] cannot have any 0 entries. If you want to support having 0 entries you need to change the code below to "compress out" the sendProcs[] and recvProcs[] entries that have 0 entries.

Probably does not handle sends to self properly. It should remove those from the counts that are used in allocating space inside of the from struct

Level:intermediate
Location:src/vec/vec/utils/vpscat.c
Index of all Vec routines
Table of Contents for all manual pages
Index of all manual pages