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