:orphan: # VecStrideSubSetScatter Scatters components from a vector into a subset of components of a multi-component vector. ## Synopsis ``` #include "petscvec.h" PetscErrorCode VecStrideSubSetScatter(Vec s, PetscInt nidx, const PetscInt idxs[], const PetscInt idxv[], Vec v, InsertMode addv) ``` Collective ## Input Parameters - ***s -*** the smaller-component vector - ***nidx -*** the number of indices in idx - ***idxs -*** the indices of the components in the smaller-component vector, 0 <= idxs[0] ...idxs[nidx-1] < bs(s) they need not be sorted, may be null if nidx == bs(s) or is `PETSC_DETERMINE` - ***idxv -*** the indices of the components in the larger-component vector, 0 <= idx[0] ...idx[nidx-1] < bs(v) they need not be sorted - ***addv -*** one of `ADD_VALUES`, `INSERT_VALUES`, `MAX_VALUES` ## Output Parameter - ***v -*** the location where the subvector is into scattered (the multi-component vector) ## Notes One must call `VecSetBlockSize()` on the vectors before this routine to set the stride information, or use a vector created from a multicomponent `DMDA`. The parallel layout of the vector and the subvector must be the same; Not optimized; could be easily ## See Also `Vec`, `VecStrideNorm()`, `VecStrideGather()`, `VecStrideGather()`, `VecStrideSubSetGather()`, `VecStrideMin()`, `VecStrideMax()`, `VecStrideGatherAll()`, `VecStrideScatterAll()` ## Level advanced ## Location src/vec/vec/utils/vinv.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/vec/vec/utils/vinv.c) [Index of all Vec routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)