Lines Matching refs:xdup
11 Vec xdup, ydup; /* parallel vector that congregates xsub or ysub facilitating vector scattering */
115 /* create working vectors xdup and ydup.
116 xdup concatenates all xsub's contiguously to form a mpi vector over dupcomm (see PetscSubcommCreate_interlaced())
120 PetscCall(VecCreateMPI(PetscSubcommContiguousParent(red->psubcomm), mloc_sub, PETSC_DECIDE, &red->xdup));
142 PetscCall(VecScatterCreate(x, is1, red->xdup, is2, &red->scatterin));
149 PetscCall(VecScatterCreate(red->xdup, is1, x, is2, &red->scatterout));
192 /* scatter x to xdup */
193 PetscCall(VecScatterBegin(red->scatterin, x, red->xdup, INSERT_VALUES, SCATTER_FORWARD));
194 PetscCall(VecScatterEnd(red->scatterin, x, red->xdup, INSERT_VALUES, SCATTER_FORWARD));
196 /* place xdup's local array into xsub */
197 PetscCall(VecGetArray(red->xdup, &array));
204 PetscCall(VecRestoreArray(red->xdup, &array));
230 /* scatter x to xdup */
231 PetscCall(VecScatterBegin(red->scatterin, x, red->xdup, INSERT_VALUES, SCATTER_FORWARD));
232 PetscCall(VecScatterEnd(red->scatterin, x, red->xdup, INSERT_VALUES, SCATTER_FORWARD));
234 /* place xdup's local array into xsub */
235 PetscCall(VecGetArray(red->xdup, &array));
242 PetscCall(VecRestoreArray(red->xdup, &array));
266 PetscCall(VecDestroy(&red->xdup));