VecGetArrayAndMemType#
Like VecGetArray(), but if this is a standard device vector (e.g., VECCUDA), the returned pointer will be a device pointer to the device memory that contains this MPI processes’s portion of the vector data.
Synopsis#
#include "petscvec.h"
PetscErrorCode VecGetArrayAndMemType(Vec x, PetscScalar **a, PetscMemType *mtype)
Logically Collective; No Fortran Support
Input Parameter#
x - the vector
Output Parameters#
a - location to put pointer to the array
mtype - memory type of the array
Note#
Device data is guaranteed to have the latest value. Otherwise, when this is a host vector
(e.g., VECMPI), this routine functions the same as VecGetArray() and returns a host
pointer.
For VECKOKKOS, if Kokkos is configured without device (e.g., use serial or openmp), per
this function, the vector works like VECSEQ/VECMPI; otherwise, it works like VECCUDA or
VECHIP etc.
Use VecRestoreArrayAndMemType() when the array access is no longer needed.
See Also#
Vectors and Parallel Data, Vec, VecRestoreArrayAndMemType(), VecGetArrayReadAndMemType(), VecGetArrayWriteAndMemType(), VecRestoreArray(), VecGetArrayRead(), VecGetArrays(), VecGetArrayF90(), VecGetArrayReadF90(),
VecPlaceArray(), VecGetArray2d(), VecGetArrayPair(), VecRestoreArrayPair(), VecGetArrayWrite(), VecRestoreArrayWrite()
Level#
beginner
Location#
Implementations#
VecGetArrayAndMemType_SeqKokkos() in src/vec/vec/impls/seq/kokkos/veckok.kokkos.cxx
Index of all Vec routines
Table of Contents for all manual pages
Index of all manual pages