Data associated with the cells of a Triangulation. CellDatum objects behave as if they are defined in the physical space of the triangulation. But in some cases they are implemented as reference quantities plus some transformation to the physical domain.


A single point or an array of points on the cells of a Triangulation CellField objects can be evaluated efficiently at CellPoint instances.


Composite Measure

Measure such that the integration and target triangulations are different.

  • ttrian: Target triangulation, where the domain contribution lives.
  • itrian: Integration triangulation, where the integration takes place.
  • quad : CellQuadrature, defined in itrian

SkeletonCellFieldPair is a special construct for allowing and uh.minus to be two different CellFields. In particular, it is useful when we need one of the CellFields to be the dualized version of the other for performing ForwardDiff AD of a Skeleton integration DomainContribution wrt to the degrees of freedom of the CellField, plus and minus sensitivities done separately, so as to restrict the interaction between the dual numbers.

It takes in two CellFields and stores plus version of CellFieldAt of the first CellField and minus version of CellFieldAt of the second the CellField. SkeletonCellFieldPair is associated with same triangulation as that of the CellFields (we check if the triangulations of both CellFields match)

SkeletonCellFieldPair is an internal convenience artifact/construct to aid in dualizing plus and minus side around a Skeleton face separately to perform the sensitivity of degrees of freedom of cells sharing the Skeleton face, without the interaction dual numbers of the two cells. The user doesn't have to deal with this construct anywhere when performing AD of functionals involving integration over Skeleton faces using the public API.


dist = distance(polytope::ExtrusionPolytope, inv_cmap::Field, x::Point)

Calculate distance from point x to the polytope. The polytope is given by its type and by the inverse cell map, i.e. by the map from the physical to the reference space.

Positive distances are outside the polytope, negative distances are inside the polytope.

The distance is measured in an unspecified norm, currently the L∞ norm.