# VecStrideGather#

Gathers a single component from a multi-component vector into another vector.

## Synopsis#

#include "petscvec.h"
PetscErrorCode VecStrideGather(Vec v, PetscInt start, Vec s, InsertMode addv)


Collective

## Input Parameters#

• v - the vector

• start - starting point of the subvector (defined by a stride)

## Output Parameter#

• s - the location where the subvector is stored

## Notes#

One must call VecSetBlockSize() before this routine to set the stride information, or use a vector created from a multicomponent DMDA.

If x is the array representing the vector x then this gathers the array (x[start],x[start+stride],x[start+2*stride], ….)

The parallel layout of the vector and the subvector must be the same; i.e., nlocal of v = stride*(nlocal of s)

Not optimized; could be easily

VecStrideNorm(), VecStrideScatter(), VecStrideMin(), VecStrideMax(), VecStrideGatherAll(), VecStrideScatterAll()