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