petsc-3.7.1 2016-05-15
Report Typos and Errors

DMDAVecGetArray

Returns a multiple dimension array that shares data with the underlying vector and is indexed using the global dimensions.

Synopsis

#include "petscdmda.h"   
PetscErrorCode  DMDAVecGetArray(DM da,Vec vec,void *array)
Logically collective on Vec Many br

Input Parameter

da - the distributed array Many br
vec - the vector, either a vector the same size as one obtained with DMCreateGlobalVector() or DMCreateLocalVector() Many br

Output Parameter

array -the array Many br

Notes

Call DMDAVecRestoreArray() once you have finished accessing the vector entries. Many br

In C, the indexing is "backwards" from what expects: array[k][j][i] NOT array[i][j][k]! Many br

If vec is a local vector (obtained with DMCreateLocalVector() etc) then the ghost point locations are accessible. If it is Many bra global vector then the ghost points are not accessible. Of course with the local vector you will have had to do the Many br

appropriate DMGlobalToLocalBegin() and DMGlobalToLocalEnd() to have correct values in the ghost locations. Many br

Fortran Notes: From Fortran use DMDAVecGetArrayF90() and pass for the array type PetscScalar,pointer :: array(:,...,:) of the appropriate Many brdimension. For a DMDA created with a dof of 1 use the dimension of the DMDA, for a DMDA created with a dof greater than 1 use one more than the Many brdimension of the DMDA. The order of the indices is array(xs:xs+xm-1,ys:ys+ym-1,zs:zs+zm-1) (when dof is 1) otherwise Many brarray(0:dof-1,xs:xs+xm-1,ys:ys+ym-1,zs:zs+zm-1) where the values are obtained from Many brDMDAGetCorners() for a global array or DMDAGetGhostCorners() for a local array. Include petsc/finclude/petscdmda.h90 to access this routine. Many br

Due to bugs in the compiler DMDAVecGetArrayF90() does not work with gfortran versions before 4.5 Many br

Many br

Keywords

distributed array, get, corners, nodes, local indices, coordinates

See Also

DMDAGetGhostCorners(), DMDAGetCorners(), VecGetArray(), VecRestoreArray(), DMDAVecRestoreArray(), DMDAVecRestoreArrayDOF()
DMDAVecGetArrayDOF() Many br

Level:intermediate
Location:
src/dm/impls/da/dagetarray.c
Index of all DM routines
Table of Contents for all manual pages
Index of all manual pages

Examples

src/dm/examples/tutorials/ex3.c.html
src/dm/examples/tutorials/ex10.c.html
src/ksp/ksp/examples/tutorials/ex29.c.html
src/ksp/ksp/examples/tutorials/ex32.c.html
src/ksp/ksp/examples/tutorials/ex34.c.html
src/ksp/ksp/examples/tutorials/ex42.c.html
src/ksp/ksp/examples/tutorials/ex43.c.html
src/ksp/ksp/examples/tutorials/ex45.c.html
src/ksp/ksp/examples/tutorials/ex49.c.html
src/ksp/ksp/examples/tutorials/ex50.c.html
src/snes/examples/tutorials/ex3.c.html