PolytopeQuadrature

Cached quadrature attached to one specific polytope.

Defined in Rodin/Geometry/PolytopeQuadrature.h

class PolytopeQuadrature;

A PolytopeQuadrature stores the mapped quadrature points corresponding to a single quadrature formula on a single concrete polytope. It is:

  • not a reference quadrature formula,
  • not a variational quadrature rule,
  • not a container of weights.

Its purpose is to cache the geometric realization of a quadrature formula on a polytope so that repeated integration passes can reuse mapped Point objects.

Architecture

Construction evaluates the transformation's quadrature Jacobians in one bulk call and places each matrix in its point's existing owned cache. Parametric transformations can therefore reuse reference derivatives without retaining mapped geometry for previously traversed cells. Physical coordinates and derived inverse, determinant and distortion remain lazy. No point borrows a formula or element table. Temporary Jacobian storage and retained points are both bounded by the current formula's size.

Constructors, destructors, conversion operators

PolytopeQuadrature(const Polytope& polytope, const QF::QuadratureFormula& qf)
Constructs the realized quadrature on a polytope.

Public functions

auto getQuadratureFormula() const -> const QF::QuadratureFormula&
Gets the reference quadrature formula used to build this object.
auto getSize() const -> size_t
Gets the number of mapped quadrature points.
auto getPoint(size_t i) const -> const Point&
Gets a mapped quadrature point by index.

Function documentation

PolytopeQuadrature(const Polytope& polytope, const QF::QuadratureFormula& qf)

Constructs the realized quadrature on a polytope.

Parameters
polytope in Concrete mesh polytope
qf in Reference quadrature formula

The formula remains immutable throughout construction. After bulk Jacobian evaluation, the returned array supplies point-storage size and logical sample order. Debug builds independently assert agreement with the formula size; release construction does not query size again. No additional retained cache or collective operation is introduced. Sample order, reference coordinates and owned Jacobians are unchanged.

const QF::QuadratureFormula& getQuadratureFormula() const

Gets the reference quadrature formula used to build this object.

Returns Reference to the quadrature formula

size_t getSize() const

Gets the number of mapped quadrature points.

Returns Number of quadrature points

const Point& getPoint(size_t i) const

Gets a mapped quadrature point by index.

Parameters
i in Quadrature point index
Returns Reference to the mapped point
Exceptions
Alert::Exception If the point index is outside the realized rule.