Cubature rules for 3D need improvement
Hi,
the numerical integration rules for 3D settings given in QuadratureRules.hpp need improvement. Especially 3D-T4 (should be exact for polynomial integrands up to order 5) seems to be not accurate enough. Probably because the reference did not list enough significant digits.
We currently have the following situation with our two tests:
when we look at the differences observed for the P1FormMass3D e.g. we get
rule | HyTeGvsFEniCS w/o blending | HyTeGvsFEniCS w/ blending | MassOperatorTest w/ blending |
---|---|---|---|
3D-T3 | 3.203654e-16 | 6.487959e-16 | 1.463570e-03 |
3D-T4 | 5.006480e-09 | 1.001296e-08 | 1.502809e-06 |
here the column for the MassOperatorTest refers to the IcosahedralShellMap case, which failed in pipeline #24261; HyTeGvsFEniCS w/ blending uses only an affine mapping (rotation + scaling + shift).
I interpret the table as showing that 3DT-3 (should be exact for polynomial integrands up to order 2) is alright per se, but not accurate enough for the non-linear blending in 3D. 3DT-4, however, is somewhat buggy, although it gives better results for the non-linear blending.
Does anybody have a reference at hand for moderately high-order cubature rules?
Cheers
Marcus