DMDAVecGetArrayDOF#
Returns a multiple dimension array that shares data with the underlying vector and is indexed using the global or local dimensions of a DMDA
Synopsis#
#include "petscdmda.h"
PetscErrorCode DMDAVecGetArrayDOF(DM da, Vec vec, void *array)
Logically Collective
Input Parameters#
da - the
DMDAvec - a vector the same size as one obtained with
DMCreateGlobalVector()orDMCreateLocalVector()
Output Parameter#
array - the
arraypointer
Notes#
Call DMDAVecRestoreArrayDOF() once you have finished accessing the vector entries.
In C, the indexing is “backwards” from what expects: array[k][j][i][DOF] NOT array[i][j][k][DOF]
The accessible indices are array[zs:zs+zm-1][ys:ys+ym-1][xs:xs+xm-1][0:ndof-1] where the values are obtained from
DMDAGetCorners() for a global vector or DMDAGetGhostCorners() for a local vector.
Fortran Notes#
Use DMDAVecGetArray() and pass for the array type PetscScalar,pointer :: array(:,…,:) of the appropriate
dimension. 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
dimension of the DMDA.
The order of the indices is array(xs:xs+xm-1,ys:ys+ym-1,zs:zs+zm-1) (when ndof is 1) otherwise
array(0:dof-1,xs:xs+xm-1,ys:ys+ym-1,zs:zs+zm-1) where the values are obtained from
DMDAGetCorners() for a global vector or DMDAGetGhostCorners() for a local vector.
See Also#
DMDA - Creating vectors for structured grids, DMDA - Setting vector values, DM, DMDA, DMDAGetGhostCorners(), DMDAGetCorners(), VecGetArray(), VecRestoreArray(), DMDAVecRestoreArray(), DMDAVecGetArray(), DMDAVecRestoreArrayDOF(),
DMDAVecGetArrayWrite(), DMDAVecRestoreArrayWrite(), DMDAVecGetArrayRead(), DMDAVecRestoreArrayRead(), DMDAVecGetArrayDOFRead()
Level#
intermediate
Location#
Examples#
src/ts/tutorials/ex12.c
src/ksp/ksp/tutorials/ex34.c
src/dm/tutorials/ex15.c
src/ts/tutorials/extchemfield.c
src/dm/tutorials/ex51.c
Index of all DMDA routines
Table of Contents for all manual pages
Index of all manual pages