Background
There is an extremely large body of literature on the derivation of Gaussian quadrature rules for triangular domains. Along with the aforementioned paper by Taylor et al. [9] a collection of near-optimal symmetric rules were discovered by Dunavant [10]. When deriving pure quadrature rules the objective is usually to obtain a rule which utilises a minimal number of points for a given integration strength. However, seldom are these minima coincident with the triangular number of points required by nodal schemes. A consequence of this is that few of the rules presented by Dunavant feature a triangular number of points. It is therefore not possible to repurpose these rules as FR solution points. An additional complication arises on account of the fact that basis functions on a triangle are not unisolvent [11]. This means that there exists configurations of distinct points inside of a triangle for which the associated basis set is linearly dependent. While this does not affect the suitability of a given set of points for numerical quadrature it does prevent them from being used for polynomial interpolation. Hence, such nodes are unsuitable candidates for solution points. These three constraints: symmetry, unisolvency and a triangular number of points serve to exclude almost all existing rules.
More recently Shunn and Ham [12] presented a set of quadrature rules for tetrahedra derived using a cubic close packed (CCP) lattice arrangement. One advantage of the CCP methodology employed is that all of the rules have, by construction, a tetrahedral number of points. By applying this approach to triangles Williams [13] was able to generate a suitable set of solution points for \(1 \le \wp \le 11\). Following Williams we will refer to these herein as the Williams–Shunn (WS) points. Further, in [7] Williams and Jameson proceeded to analyse the points by Shunn and Ham [12] for solving unsteady flow problems on tetrahedral meshes. (In these experiments the corresponding set of WS points were used on the faces of the tetrahedra.) It was found that the symmetric quadrature points outperformed the \(\alpha \)-optimised points in all of the test cases.
Methodology
To identify solution points in this paper we will employ the methodology of Zhang et al. [8] which provides a simple means of generating symmetric quadrature rules on triangles with a prescribed number of points. This will give us a means of generating candidate solution point sets which fulfil three of the four requirements described in Sect. 2. Namely those of being symmetric, having a triangular number of points, and with abscissa that correspond to a quadrature rule.
We take our triangular domain to be \(\mathcal {T} = \mathcal {T}(\varvec{\mathrm{v}}_1, \varvec{\mathrm{v}}_2, \varvec{\mathrm{v}}_3)\) where \(\varvec{\mathrm{v}}_i\) are the three defining vertices. Given a function \(f(\varvec{\mathrm{r}})\) where \(\varvec{\mathrm{r}} = (p,q)^T\) we can approximate its integral as
$$\begin{aligned} \int \int \limits _{\mathcal {T}} f(\varvec{\mathrm{r}}) \,\mathrm{d}\varvec{\mathrm{r}} \approx |\mathcal {T}| \sum \limits _{i}^{N_p} f(\varvec{\mathrm{r}}_i) \omega _i, \end{aligned}$$
(1)
where \(\{\varvec{\mathrm{r}}_i\}\) are a set of \(N_p\) quadrature points, \(\{\omega _i\}\) the set of associated weights, and \(|\mathcal {T}|\) the area of \(\mathcal {T}\). Next, we shall introduce the set of monomials on \(\mathcal {T}\) as being
$$\begin{aligned} P_\varphi = \bigl \{p^iq^j \mid 0 \le (i, j) \le \varphi , i + j \le \varphi \bigr \}, \end{aligned}$$
(2)
which consists of all polynomials of degree \(\le \varphi \). A quadrature rule can be said to be of order \(\varphi \) if \(\forall f \in P_\varphi \) the relation in Eq. 1 is exact. This definition also provides us with a direct mechanism for evaluating the strength of a rule.
As was mentioned in the previous section it is important that any set of solution points be symmetric. The symmetry group of the triangle consists of two rotations, three reflections, and the identity transformation. A simple means of realising these symmetries is to transform from Cartesian to barycentric coordinates; which we introduce as
$$\begin{aligned} (\lambda _1,\lambda _2,\lambda _3)^T \quad 0 \le \lambda _i \le 1, \lambda _1 + \lambda _2 + \lambda _3 = 1, \end{aligned}$$
(3)
and being related to Cartesian coordinates via
$$\begin{aligned} \varvec{\mathrm{r}} = \lambda _1\varvec{\mathrm{v}}_1 + \lambda _2\varvec{\mathrm{v}}_2 + \lambda _3\varvec{\mathrm{v}}_3. \end{aligned}$$
(4)
A key property of this system is that the symmetries of the triangle can be encoded as the (unique) permutations of \((\lambda _1,\lambda _2,\lambda _3)^T\). The number of permutations of a barycentric coordinate is dependent on the number of unique components. This leads us directly to the notion of symmetry orbits as defined in Table 2. A point where \(\lambda _1 = \lambda _2 = \lambda _3 = \tfrac{1}{3}\) gives rise to an \(S_3\) orbit and one degree of freedom, the weight. Similarly, a point where any two barycentric components are identical corresponds to an \(S_{21}\) orbit which has three unique permutations and two degrees of freedom: the repeated component \(\alpha \) and a weight. Any symmetric set of points can be written as a combination of these orbits. From this it follows that \(N_p = n_3 + 3n_{21} + 6n_{111}\) where \(n_3 \in \{0,1\}\) and \((n_{21},n_{111}) \ge 0\). The above expression is simply a linear Diophantine equation. Hence, by solving it we can decompose an \(N_p\) into orbits. For example in the case of \(N_p = 15\) we obtain
$$\begin{aligned} \begin{aligned} n_3{:}n_{21}{:}n_{111}&= 0{:}5{:}0\\ n_3{:}n_{21}{:}n_{111}&= 0{:}3{:}1\\ n_3{:}n_{21}{:}n_{111}&= 0{:}1{:}2, \end{aligned} \end{aligned}$$
(5)
with the total number of degrees of freedom being 10, 9, and 8 respectively.
Table 2 Symmetry orbits inside of a triangle
To generate a series of candidate solution points three input parameters are required: the number of points, \(N_p\), the desired rule order, \(\varphi \), and the maximum number of attempts, \(N_t\). The first stage of the algorithm consists of computing the permitted decompositions of \(N_p\). For each decomposition the idea is to generate a random set of points, \(\mathcal {G}\), inside of \(\mathcal {T}\) and then attempt to minimise—in the least squares sense—the error incurred when using these points to integrate the basis set, \(P_{\varphi }\). If the minimisation process is successful then the points are validated to ensure that they are all inside of \(\mathcal {T}\). This procedure is then repeated until \(N_t\) attempts have been made. Due to the large number of local minima it is not unusual for hundreds or even thousands of attempts to be required to find a single rule. However, as the minimum number of points required to construct a rule of order \(\varphi \) is almost never coincident with the desired point counts of Table 1 it usually possible to obtain a very large number of distinct rule sets. This is a direct consequence of the presence of additional degrees of freedom in such cases. In accordance with the recommendations of Zhang et al. [8] we have opted to treat the quadrature weights as dependent variables. As a consequence the weights are not included as degrees of freedom in the non-linear least squares problem. Rather, they are computed dynamically at each iteration of the non-linear solve. This is accomplished by taking the abscissa as given and then finding a set of weights which minimise the integration error. Since the only free parameters are the weights this is a linear least squares problem. This reduces the size of the non-linear least squares problem from \(n_1 + 2n_2 + 3n_3\) unknowns to \(n_2 + 2n_3\) unknowns [8]. This modification has been found to increase the probability that a given initial guess will converge to a solution. A description of the algorithm can be found in Algorithm 1.
Further refinements to the above procedure are possible: it turns out that the number of equations required to specify a quadrature rule of strength \(\varphi \) is less than the number of polynomials in Eq. 2. Specifically, by exploiting symmetries in the basis the number of equations can be reduced from
$$\begin{aligned} \frac{1}{2}(\varphi + 1)(\varphi + 2) = \frac{\varphi ^2}{2} + \frac{3\varphi }{2} + 1, \end{aligned}$$
to [14]
$$\begin{aligned} \frac{\varphi ^2}{12} + \frac{\varphi }{2} + \frac{7}{9} + \frac{2}{9}\cos {\frac{2\varphi \pi }{3}}. \end{aligned}$$
This greatly decreases the size of the non-linear least squares problem. Moreover, it can also be used to exclude decompositions in cases where the associated number of degrees of freedom is less than the number of equations.