:orphan: # DMStagRestoreProductCoordinateArrays restore local array access ## Synopsis ``` PetscErrorCode DMStagRestoreProductCoordinateArrays(DM dm, void *arrX, void *arrY, void *arrZ) ``` Logically Collective ## Input Parameter - ***dm -*** the `DMSTAG` object ## Output Parameters - ***arrX -*** local 1D coordinate arrays for x direction - ***arrY -*** local 1D coordinate arrays for y direction - ***arrZ -*** local 1D coordinate arrays for z direction ## Notes This function does not automatically perform a local->global scatter to populate global coordinates from the local coordinates. ## Thus, it may be required to explicitly perform these operations in some situations, as in the following partial example ``` PetscCall(DMGetCoordinateDM(dm,&cdm)); for (d=0; d<3; ++d) { DM subdm; Vec coor,coor_local; PetscCall(DMProductGetDM(cdm,d,&subdm)); PetscCall(DMGetCoordinates(subdm,&coor)); PetscCall(DMGetCoordinatesLocal(subdm,&coor_local)); PetscCall(DMLocalToGlobal(subdm,coor_local,INSERT_VALUES,coor)); PetscCall(PetscPrintf(PETSC_COMM_WORLD,"Coordinates dim %" PetscInt_FMT ":\n",d)); PetscCall(VecView(coor,PETSC_VIEWER_STDOUT_WORLD)); } ``` ## See Also [](ch_stag), `DMSTAG`, `DMStagGetProductCoordinateArrays()`, `DMStagGetProductCoordinateArraysRead()` ## Level intermediate ## Location src/dm/impls/stag/stagutils.c ## Examples src/dm/impls/stag/tutorials/ex6.c
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/impls/stag/stagutils.c) [Index of all DMStag routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)