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).
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 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.Geometry |
GaussKronrod |
GaussLegendre |
HAdaptiveCubature |
---|---|---|---|
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 |
✅ | ✅ |
Symbol | Support Level |
---|---|
✅ | Supported |
🎗️ | Planned to support in the future |
Deprecated | |
🛑 | Not supported |