Skip to main content
`Ctrl`+`K`

# DMGetCoordinates

Gets a global vector with the coordinates associated with the `DM`.

## Synopsis

    #include "petscdm.h"
    PetscErrorCode DMGetCoordinates(DM dm, Vec *c)

Collective if the global vector with coordinates has not been set yet but the local vector with coordinates has been set

## Input Parameter

- dm - the `DM`

## Output Parameter

- c - global coordinate vector

## Notes

This is a borrowed reference, so the user should NOT destroy this vector. When the `DM` is destroyed `c` will no longer be valid.

Each process has only the locally-owned portion of the global coordinates (does NOT have the ghost coordinates), see `DMGetCoordinatesLocal()`.

For `DMDA`, in two and three dimensions coordinates are interlaced (x_0,y_0,x_1,y_1,…) and (x_0,y_0,z_0,x_1,y_1,z_1…)

Does not work for `DMSTAG`

## See Also

`DM`, `DMDA`, `DMSetCoordinates()`, `DMGetCoordinatesLocal()`, `DMGetCoordinateDM()`, `DMDASetUniformCoordinates()`

## Level

intermediate

## Location

src/dm/interface/dmcoordinates.c

## Examples

src/ksp/ksp/tutorials/ex69.c
src/dm/tutorials/ex4.c
src/ksp/ksp/tutorials/ex49.c
src/dm/tutorials/swarm_ex1.c
src/dm/tutorials/ex3.c
src/dm/impls/stag/tutorials/ex3.c
src/ksp/ksp/tutorials/ex71.c
src/dm/tutorials/ex25.c
src/dm/tutorials/swarm_ex3.c
src/dm/impls/plex/tutorials/ex15.c

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