Skip to content

Feature/higher order simplex quadrature

In Issue #6 it is discussed, that it would be nice to have higher order quadrature rules in high precision on triangles and tetrahedra, as provided by other libraries, like PHG, and published in several publication, e.g. "A Set of Symmetric Quadrature Rules on Triangles and Tetrahedra", by L. Zhang, T. Cui and H. Liu, (2009) and "New fully symmetric and rotationally symmetric cubature rules on the triangle using minimal orthonormal bases", by S.-A. Papanicolopulos, (2016)

A set of rules is added to the simplexquadrature.hh implementation, i.e. rules for order 12-24 for triangles and rules for order 2-12 for tetrahedra. All these rules are provided in 35 digit precision, calculated from symmetric interior point rules with positive weights, given originally in barycentric coordinates in PHG version 0.9.2 that can be found at http://lsec.cc.ac.cn/phg/index_en.htm. The corresponding conversion scripts are attached to this merge request and use boost.multiprecision to actually calculate the rescaled coefficients and the residuum of the formulas: rules3d.ccrules2d.ccquad-permu.h

Some rules are replaced with the new rules:

  • 2d, order 12: using higher precision coefficients
  • 3d, order 2: higher precision, same number of points
  • 3d, order 3: interior point rule, higher precision, same number of points
  • 3d, order 4 and 5: new rules with less number of points

In 2d some DUNE quadrature rules have negative weights (order 3) or points on the triangle boundary (order 11). However, a replacement with interior point rules with positive weights might have more quadrature points. Thus, this is not changed and may be discussed later on.

Some higher order rules in 2d might be replaced with not fully symmetric rules, with less number of points, as provided in Papanicolopulos's paper. Currently only fully symmetric rules are added. There, the value of the formula is independent of the vertex numbering, but results in slightly less efficient rules.

Some higher order rules can be found in the supplement of "On the identification of symmetric quadrature rules for finite element methods", by F. D. Witherden and P. E. Vincent (2015). Using the scripts rules3d_new.ccrules2d_new.cc to convert the provided coefficients to the DUNE reference geometry.

Merge request reports