Support Status

This library aims to enable users to calculate the value of integrals over all Meshes.jl geometry types using a number of numerical integration rules and techniques. However, some combinations of geometry types and integration rules are ill-suited (and a few are simply not yet implemented).

General Recommendations

In general, GaussKronrod integration rules are recommended (and the default) for geometries with one parametric dimension. For geometries with more than one parametric dimension, e.g. surfaces and volumes, HAdaptiveCubature rules are recommended (and the default).

While it is currently possible to apply nested GaussKronrod rules to numerically integrate surfaces, this produces results that are strictly inferior to using an equivalent HAdaptiveCubature rule, so support for this usage has been deprecated. In version 16.x of MeshIntegrals.jl, using a GaussKronrod rule for a surface will work but will yield a deprecation warning. Beginning with a future version 17.0, this combination will simply be unsupported and throw an error.

The Support Matrix

The following Support Matrix captures the current state of support for all geometry/rule combinations. Entries with a green check mark are fully supported and pass unit tests designed to check for accuracy.

Meshes.GeometryGaussKronrodGaussLegendreHAdaptiveCubature
Ball in 𝔼{2}⚠️
Ball in 𝔼{3}🛑
BezierCurve
Box in 𝔼{1}
Box in 𝔼{2}⚠️
Box in 𝔼{≥3}🛑
Circle
Cone🛑
ConeSurface⚠️
Cylinder🛑
CylinderSurface⚠️
Disk⚠️
Ellipsoid
Frustum⚠️
FrustumSurface⚠️
Hexahedron
Line
ParaboloidSurface⚠️
ParametrizedCurve
Plane
Polyarea🛑🎗️🎗️
Pyramid⚠️
Quadrangle⚠️
Ray
Ring
Rope
Segment
SimpleMesh🛑🎗️🎗️
Sphere in 𝔼{2}
Sphere in 𝔼{3}⚠️
Tetrahedron⚠️
Triangle
Torus⚠️
Wedge⚠️
SymbolSupport Level
Supported
🎗️Planned to support in the future
⚠️Deprecated
🛑Not supported