Skip to content

Commit 06aadad

Browse files
authored
Update support matrix docs
1 parent 54b8c39 commit 06aadad

File tree

1 file changed

+26
-23
lines changed

1 file changed

+26
-23
lines changed

docs/src/supportmatrix.md

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,61 @@
11
# Support Matrix
22

3-
While this library aims to support all possible integration rules and [**Meshes.jl**](https://github.com/JuliaGeometry/Meshes.jl)
4-
geometry types, some combinations are ill-suited and some others are simply not yet
5-
implemented. The following Support Matrix aims to capture the current development state of
6-
all geometry/rule combinations. Entries with a green check mark are fully supported
7-
and have passing unit tests that provide some confidence they produce accurate results.
3+
This library aims to enable users to calculate the value of integrals over all [**Meshes.jl**](https://github.com/JuliaGeometry/Meshes.jl)
4+
geometry types using an array of numerical integration rules and techniques. However, some
5+
combinations of geomtry types and integration rules are ill-suited, and some others are simply
6+
not yet yet implemented. The following Support Matrix captures the current state of support for
7+
all geometry/rule combinations. Entries with a green check mark are fully supported and pass
8+
unit tests designed to check for accuracy.
89

910
In general, Gauss-Kronrod integration rules are recommended (and the default) for geometries
10-
with one parametric dimension, e.g.: `Segment`, `BezierCurve`, and `Rope`. Gauss-Kronrod
11-
rules can also be applied to some geometries with more dimensions by nesting multiple
12-
integration solves, but this is inefficient. These Gauss-Kronrod rules are supported (but
13-
not recommended) for surface-like geometries, but not for volume-like geometries. For
14-
geometries with more than one parametric dimension, e.g. surfaces and volumes, H-Adaptive
15-
Cubature integration rules are recommended (and the default).
11+
with one parametric dimension, e.g.: `Segment`, `BezierCurve`, and `Rope`. or geometries with
12+
more than one parametric dimension, e.g. surfaces and volumes, H-Adaptive Cubature rules are
13+
recommended (and the default).
14+
15+
While it is possible to apply nested Gauss-Kronrod rules to numerically integrate geometries
16+
with more than one parametric dimension, this produces results that are strictly inferior to
17+
using an equivalent H-Adaptive Cubature rule, so support for this usage is not recommended.
1618

1719
| Symbol | Support Level |
1820
|--------|---------|
19-
|| Supported, passes unit tests |
21+
|| Supported |
2022
| 🎗️ | Planned to support in the future |
23+
| ⚠️ | Deprecated |
2124
| 🛑 | Not supported |
2225

2326
| `Meshes.Geometry` | Gauss-Legendre | Gauss-Kronrod | H-Adaptive Cubature |
2427
|----------|----------------|---------------|---------------------|
25-
| `Ball` in `𝔼{2}` || ||
28+
| `Ball` in `𝔼{2}` || ⚠️ ||
2629
| `Ball` in `𝔼{3}` || 🛑 ||
2730
| `BezierCurve` ||||
2831
| `Box` in `𝔼{1}` ||||
29-
| `Box` in `𝔼{2}` || ||
32+
| `Box` in `𝔼{2}` || ⚠️ ||
3033
| `Box` in `𝔼{≥3}` || 🛑 ||
3134
| `Circle` ||||
32-
| `Cone` || ||
33-
| `ConeSurface` || ||
35+
| `Cone` || 🛑 ||
36+
| `ConeSurface` || ⚠️ ||
3437
| `Cylinder` || 🛑 ||
35-
| `CylinderSurface` || ||
36-
| `Disk` || ||
38+
| `CylinderSurface` || ⚠️ ||
39+
| `Disk` || ⚠️ ||
3740
| `Ellipsoid` ||||
3841
| `Frustum` | [🎗️](https://github.com/JuliaGeometry/MeshIntegrals.jl/issues/28) | [🎗️](https://github.com/JuliaGeometry/MeshIntegrals.jl/issues/28) | [🎗️](https://github.com/JuliaGeometry/MeshIntegrals.jl/issues/28) |
39-
| `FrustumSurface` || ||
42+
| `FrustumSurface` || ⚠️ ||
4043
| `Hexahedron` ||||
4144
| `Line` ||||
42-
| `ParaboloidSurface` || ||
45+
| `ParaboloidSurface` || ⚠️ ||
4346
| `ParametrizedCurve` ||||
4447
| `Plane` ||||
4548
| `Polyarea` | [🎗️](https://github.com/JuliaGeometry/MeshIntegrals.jl/issues/28) | [🎗️](https://github.com/JuliaGeometry/MeshIntegrals.jl/issues/28) | [🎗️](https://github.com/JuliaGeometry/MeshIntegrals.jl/issues/28) |
4649
| `Pyramid` | [🎗️](https://github.com/JuliaGeometry/MeshIntegrals.jl/issues/28) | [🎗️](https://github.com/JuliaGeometry/MeshIntegrals.jl/issues/28) | [🎗️](https://github.com/JuliaGeometry/MeshIntegrals.jl/issues/28) |
47-
| `Quadrangle` || ||
50+
| `Quadrangle` || ⚠️ ||
4851
| `Ray` ||||
4952
| `Ring` ||||
5053
| `Rope` ||||
5154
| `Segment` ||||
5255
| `SimpleMesh` | [🎗️](https://github.com/JuliaGeometry/MeshIntegrals.jl/issues/27) | [🎗️](https://github.com/JuliaGeometry/MeshIntegrals.jl/issues/27) | [🎗️](https://github.com/JuliaGeometry/MeshIntegrals.jl/issues/27) |
5356
| `Sphere` in `𝔼{2}` ||||
54-
| `Sphere` in `𝔼{3}` || ||
57+
| `Sphere` in `𝔼{3}` || ⚠️ ||
5558
| `Tetrahedron` in `𝔼{3}` | [🎗️](https://github.com/JuliaGeometry/MeshIntegrals.jl/issues/40) || [🎗️](https://github.com/JuliaGeometry/MeshIntegrals.jl/issues/40) |
5659
| `Triangle` ||||
57-
| `Torus` || ||
60+
| `Torus` || ⚠️ ||
5861
| `Wedge` | [🎗️](https://github.com/JuliaGeometry/MeshIntegrals.jl/issues/28) | [🎗️](https://github.com/JuliaGeometry/MeshIntegrals.jl/issues/28) | [🎗️](https://github.com/JuliaGeometry/MeshIntegrals.jl/issues/28) |

0 commit comments

Comments
 (0)