Skip to main content
`Ctrl`+`K`

# VecGetArrayWrite

Returns a pointer to a contiguous array that WILL contain this MPI processes’s portion of the vector data.

## Synopsis

    #include "petscvec.h"
    PetscErrorCode VecGetArrayWrite(Vec x, PetscScalar *a[])

Logically Collective

## Input Parameter

- x - the vector

## Output Parameter

- a - location to put pointer to the array

## Note

The values in this array are NOT valid, the caller of this routine is responsible for putting values into the array; any values it does not set will be invalid.

The array must be returned using a matching call to `VecRestoreArrayWrite()`.

For vectors associated with GPUs, the host and device vectors are not synchronized before giving access. If you need correct values in the array use `VecGetArray()`

## See Also

Vectors and Parallel Data, `Vec`, `VecRestoreArray()`, `VecGetArrayRead()`, `VecGetArrays()`, `VecPlaceArray()`, `VecGetArray2d()`, `VecGetArrayPair()`, `VecRestoreArrayPair()`, `VecGetArray()`, `VecRestoreArrayWrite()`, `VecGetArrayAndMemType()`

## Level

intermediate

## Location

src/vec/vec/interface/rvector.c

## Examples

src/ts/tutorials/ex36.c
src/ksp/ksp/tutorials/ex27.c
src/dm/impls/plex/tutorials/ex14f90.F90
src/dm/impls/plex/tutorials/ex11.c
src/dm/impls/plex/tutorials/ex14.c
src/tao/unconstrained/tutorials/rosenbrock3.c
src/ts/tutorials/ex3.c
src/dm/impls/plex/tutorials/ex18.c
src/snes/tutorials/ex17.c
src/ts/tutorials/ex23fwdadj.c

## Implementations

VecGetArrayWrite_SeqKokkos() in src/vec/vec/impls/seq/kokkos/veckok.kokkos.cxx
VecGetArrayWrite_SeqViennaCL() in src/vec/vec/impls/seq/seqviennacl/vecviennacl.cxx

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