Skip to main content
`Ctrl`+`K`

# DMPlexCoordinatesToReference

Pull coordinates back from the mesh to the reference element using a single element map.

## Synopsis

    #include "petscdmplex.h"
    #include "petscfe.h"
    PetscErrorCode DMPlexCoordinatesToReference(DM dm, PetscInt cell, PetscInt numPoints, const PetscReal realCoords[], PetscReal refCoords[])

Not Collective

## Input Parameters

- dm - The mesh, with coordinate maps defined either by a `PetscDS` for the coordinate `DM` (see `DMGetCoordinateDM()`) or implicitly by the coordinates of the corner vertices of the cell: as an affine map for simplicial elements, or as a multilinear map for tensor-product elements

- cell - the cell whose map is used.

- numPoints - the number of points to locate

- realCoords - (numPoints x coordinate dimension) array of coordinates (see `DMGetCoordinateDim()`)

## Output Parameter

- refCoords - (`numPoints` x `dimension`) array of reference coordinates (see `DMGetDimension()`)

## Notes

This inversion will be accurate inside the reference element, but may be inaccurate for mappings that do not extend uniquely outside the reference cell (e.g, most non-affine maps)

## See Also

`DMPLEX`, `DMPlexReferenceToCoordinates()`

## Level

intermediate

## Location

src/dm/impls/plex/plexgeometry.c

## Implementations

DMPlexCoordinatesToReference_NewtonUpdate() in src/dm/impls/plex/plexgeometry.c
DMPlexCoordinatesToReference_Tensor() in src/dm/impls/plex/plexgeometry.c
DMPlexCoordinatesToReference_FE() in src/dm/impls/plex/plexgeometry.c

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