petsc-3.11.4 2019-09-28
Report Typos and Errors

VecRestoreArray

Restores a vector after VecGetArray() has been called.

Synopsis

#include "petscvec.h"   
PetscErrorCode VecRestoreArray(Vec x,PetscScalar **a)
Logically Collective on Vec

Input Parameters

x - the vector
a - location of pointer to array obtained from VecGetArray()

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. This is to prevent accidental use of the array after it has been restored. If you pass null for a it will not zero the array pointer a.

Fortran Note

This routine is used differently from Fortran 77
   Vec         x
   PetscScalar x_array(1)
   PetscOffset i_x
   PetscErrorCode ierr
      call VecGetArray(x,x_array,i_x,ierr)

  Access first local entry in vector with
     value = x_array(i_x + 1)

     ...... other code
      call VecRestoreArray(x,x_array,i_x,ierr)

See the Fortran chapter of the users manual and petsc/src/snes/examples/tutorials/ex5f.F for details. For Fortran 90 see VecRestoreArrayF90()

See Also

VecGetArray(), VecRestoreArrayRead(), VecRestoreArrays(), VecRestoreArrayF90(), VecRestoreArrayReadF90(), VecPlaceArray(), VecRestoreArray2d(),
VecGetArrayPair(), VecRestoreArrayPair()

Level

beginner

Location

src/vec/vec/interface/rvector.c

Examples

src/vec/vec/utils/tagger/examples/tutorials/ex1.c.html
src/vec/vec/examples/tutorials/ex3.c.html
src/vec/vec/examples/tutorials/ex6.c.html
src/vec/vec/examples/tutorials/ex9.c.html
src/vec/vec/examples/tutorials/ex18.c.html
src/vec/vec/examples/tutorials/ex19.c.html
src/vec/vec/examples/tutorials/ex21.c.html
src/vec/vec/examples/tutorials/ex4f.F.html
src/vec/vec/examples/tutorials/ex4f90.F90.html
src/vec/is/sf/examples/tutorials/ex2.c.html
src/dm/examples/tutorials/ex5.c.html

Implementations

VecRestoreArray_Nest in src/vec/vec/impls/nest/vecnest.c
VecRestoreArray_Node in src/vec/vec/impls/node/vecnode.c

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