:orphan: # VecGetArray2dRead Returns a pointer to a 2d contiguous array that contains this processor's portion of the vector data. You MUST call `VecRestoreArray2dRead()` when you no longer need access to the array. ## Synopsis ``` #include "petscvec.h" PetscErrorCode VecGetArray2dRead(Vec x, PetscInt m, PetscInt n, PetscInt mstart, PetscInt nstart, PetscScalar **a[]) ``` Logically Collective ## Input Parameters - ***x -*** the vector - ***m -*** first dimension of two dimensional array - ***n -*** second dimension of two dimensional array - ***mstart -*** first index you will use in first coordinate direction (often 0) - ***nstart -*** first index in the second coordinate direction (often 0) ## Output Parameter - ***a -*** location to put pointer to the array ## Notes For a vector obtained from `DMCreateLocalVector()` `mstart` and `nstart` are likely obtained from the corner indices obtained from `DMDAGetGhostCorners()` while for `DMCreateGlobalVector()` they are the corner indices from `DMDAGetCorners()`. In both cases the arguments from `DMDAGet[Ghost]Corners()` are reversed in the call to `VecGetArray2d()`. For standard PETSc vectors this is an inexpensive call; it does not copy the vector values. ## See Also [](ch_vectors), `Vec`, `VecGetArray()`, `VecRestoreArray()`, `VecGetArrays()`, `VecGetArrayF90()`, `VecPlaceArray()`, `VecRestoreArray2d()`, `DMDAVecGetArray()`, `DMDAVecRestoreArray()`, `VecGetArray3d()`, `VecRestoreArray3d()`, `VecGetArray1d()`, `VecRestoreArray1d()`, `VecGetArray4d()`, `VecRestoreArray4d()` ## Level developer ## Location src/vec/vec/interface/rvector.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/vec/vec/interface/rvector.c) [Index of all Vec routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)