Skip to main content
`Ctrl`+`K`

# VecGetArray3dWrite

Returns a pointer to a 3d contiguous array that will contain this processor’s portion of the vector data. You MUST call `VecRestoreArray3dWrite()` when you no longer need access to the array.

## Synopsis

    #include "petscvec.h"
    PetscErrorCode VecGetArray3dWrite(Vec x, PetscInt m, PetscInt n, PetscInt p, PetscInt mstart, PetscInt nstart, PetscInt pstart, PetscScalar ***a[])

Logically Collective

## Input Parameters

- x - the vector

- m - first dimension of three dimensional array

- n - second dimension of three dimensional array

- p - third dimension of three dimensional array

- mstart - first index you will use in first coordinate direction (often 0)

- nstart - first index in the second coordinate direction (often 0)

- pstart - first index in the third coordinate direction (often 0)

## Output Parameter

- a - location to put pointer to the array

## Notes

For a vector obtained from `DMCreateLocalVector()` `mstart`, `nstart`, and `pstart` 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 `VecGetArray3d()`.

For standard PETSc vectors this is an inexpensive call; it does not copy the vector values.

## See Also

Vectors and Parallel Data, `Vec`, `VecGetArray()`, `VecRestoreArray()`, `VecGetArrays()`, `VecPlaceArray()`, `VecRestoreArray2d()`, `DMDAVecGetarray()`, `DMDAVecRestoreArray()`, `VecGetArray3d()`, `VecRestoreArray3d()`, `VecGetArray1d()`, `VecRestoreArray1d()`, `VecGetArray4d()`, `VecRestoreArray4d()`

## Level

developer

## Location

src/vec/vec/interface/rvector.c

Index of all Vec routines
Table of Contents for all manual pages
Index of all manual pages