Skip to main content
`Ctrl`+`K`

# DMPlexComputeCellGeometryFEM

Compute the Jacobian, inverse Jacobian, and Jacobian determinant at each quadrature point in the given cell

## Synopsis

    #include "petscdmplex.h"
    #include "petscfe.h"
    PetscErrorCode DMPlexComputeCellGeometryFEM(DM dm, PetscInt cell, PetscQuadrature quad, PetscReal v[], PetscReal J[], PetscReal invJ[], PetscReal detJ[])

Collective

## Input Parameters

- dm - the `DMPLEX`

- cell - the cell

- quad - the quadrature containing the points in the reference element where the geometry will be evaluated. If `quad` is `NULL`, geometry will be evaluated at the first vertex of the reference element

## Output Parameters

- v - the image of the transformed quadrature points, otherwise the image of the first vertex in the closure of the reference element. This is a one-dimensional array of size \(cdim * Nq\) where \(cdim\) is the dimension of the `DM` coordinate space and \(Nq\) is the number of quadrature points

- J - the Jacobian of the transform from the reference element at each quadrature point. This is a one-dimensional array of size \(Nq * cdim * cdim\) containing each Jacobian in column-major order.

- invJ - the inverse of the Jacobian at each quadrature point. This is a one-dimensional array of size \(Nq * cdim * cdim\) containing each inverse Jacobian in column-major order.

- detJ - the Jacobian determinant at each quadrature point. This is a one-dimensional array of size \(Nq\).

## Note

Implicit cell geometry must be used when the topological mesh dimension is not equal to the coordinate dimension, for instance for embedded manifolds.

## See Also

`DMPLEX`, `DMGetCoordinateSection()`, `DMGetCoordinates()`

## Level

advanced

## Location

src/dm/impls/plex/plexgeometry.c

## Examples

src/tao/tutorials/ex3.c

## Implementations

DMPlexComputeCellGeometryFEM_Implicit() in src/dm/impls/plex/plexgeometry.c
DMPlexComputeCellGeometryFEM_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