VecGetValues#
Gets values from certain locations of a vector. Currently can only get values on the same processor on which they are owned
Synopsis#
#include "petscvec.h"
PetscErrorCode VecGetValues(Vec x, PetscInt ni, const PetscInt ix[], PetscScalar y[])
Not Collective
Input Parameters#
x - vector to get values from
ni - number of elements to get
ix - indices where to get them from (in global 1d numbering)
Output Parameter#
y - array of values, must be passed in with a length of
ni
Notes#
The user provides the allocated array y; it is NOT allocated in this routine
VecGetValues()
gets y[i] = x[ix[i]], for i=0,…,ni-1.
VecAssemblyBegin()
and VecAssemblyEnd()
MUST be called before calling this if VecSetValues()
or related routine has been called
VecGetValues() uses 0-based indices in Fortran as well as in C.
If you call VecSetOption
(x, VEC_IGNORE_NEGATIVE_INDICES
,PETSC_TRUE
),
negative indices may be passed in ix. These rows are
simply ignored.
See Also#
Vectors and Parallel Data, Vec
, VecAssemblyBegin()
, VecAssemblyEnd()
, VecSetValues()
Level#
beginner
Location#
Examples#
Implementations#
VecGetValues_MPI() in src/vec/vec/impls/mpi/pdvec.c
VecGetValues_Seq() in src/vec/vec/impls/seq/bvec2.c
Index of all Vec routines
Table of Contents for all manual pages
Index of all manual pages