#include "petscvec.h" PetscErrorCode VecStrideGather(Vec v,PetscInt start,Vec s,InsertMode addv)Collective on Vec
v | - the vector | |
start | - starting point of the subvector (defined by a stride) | |
addv | - one of ADD_VALUES,INSERT_VALUES,MAX_VALUES |
s | - the location where the subvector is stored |
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