Skip to main content
`Ctrl`+`K`

# VecRestoreArray3d

Restores a vector after `VecGetArray3d()` has been called.

## Synopsis

    #include "petscvec.h"
    PetscErrorCode VecRestoreArray3d(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 the three dimensional array

- p - third dimension of the 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)

- a - location of pointer to array obtained from VecGetArray3d()

## Notes

For regular PETSc vectors this routine does not involve any copies. For any special vectors that do not store local vector data in a contiguous array, this routine will copy the data back into the underlying vector data structure from the array obtained with `VecGetArray()`.

This routine actually zeros out the `a` pointer.

## See Also

Vectors and Parallel Data, `Vec`, `VecGetArray()`, `VecRestoreArray()`, `VecRestoreArrays()`, `VecPlaceArray()`, `VecGetArray2d()`, `VecGetArray3d()`, `DMDAVecGetArray()`, `DMDAVecRestoreArray()`, `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