1 s2.0 S0898122115001224 Main
1 s2.0 S0898122115001224 Main
1. Introduction
When using the finite element method to solve a system of partial differential equations it is often necessary to evaluate
surface and volume integrals inside of a standardised domain [1–3]. A popular numerical integration technique is that of
Gaussian quadrature in which
Np
f (x) dx ≈ ωi f (xi ), (1)
i
where f (x) is the function to be integrated, {xi } are a set of Np points, and {ωi } the set of associated weights. The points
and weights are said to define a quadrature rule. A rule is said to be of strength φ if it is capable of exactly integrating any
polynomial of maximal degree φ over . A degree φ polynomial p(x) with x ∈ can be expressed as a linear combination
of basis polynomials
φ
|P |
φ φ
p(x) = αi Pi (x), αi = p(x)Pi (x) dx, (2)
i
where P φ is the set of basis polynomials of degree ≤ φ whose cardinality is given by |P φ |. From the linearity of integration
it therefore follows that a strength φ quadrature rule is one which can exactly integrate the basis. Taking f ∈ P φ the task
of obtaining an Np point quadrature rule of strength φ is hence reduced to finding a solution to a system of |P φ | nonlinear
equations. This system can be seen to possess (ND + 1)Np degrees of freedom where ND ≥ 2 corresponds to the number of
spatial dimensions.
∗ Corresponding author.
E-mail address: [email protected] (F.D. Witherden).
http://dx.doi.org/10.1016/j.camwa.2015.03.017
0898-1221/© 2015 The Authors. Published by Elsevier Ltd. This is an open access article under the CC BY license (http://creativecommons.org/licenses/by/
4.0/).
F.D. Witherden, P.E. Vincent / Computers and Mathematics with Applications 69 (2015) 1232–1241 1233
In the case of Np . 10 the above system can often be solved analytically using a computer algebra package. However,
beyond this it is usually necessary to solve the above system – or a simplification thereof – numerically. Much of the research
into multidimensional quadrature over the past five decades has been directed towards the development of such numerical
methods. The traditional objective when constructing quadrature rules is to obtain a rule of strength φ inside of a domain
using the fewest number of points. To this end efficient quadrature rules have been derived for a variety of domains:
triangles [4–13], quadrilaterals [11,14,15], tetrahedra [7,9,16,17], prisms [18], pyramids [19], and hexahedra [11,20–22].
For finite element applications it is desirable that (i) points are arranged symmetrically inside of the domain, (ii) all of the
points are strictly inside of the domain, and (iii) all of the weights are positive. The consideration given to these criteria in
the literature cited above depends strongly on the intended field of application—not all rules are derived with finite element
methods in mind.
Much of the existing literature is predicated on the assumption that the integrand sits in the space of P φ . Under this
assumption there is little, other than the criteria listed above, to distinguish two Np rules of strength φ ; both can be expected
to compute the integral exactly with the same number of functional evaluations. It is therefore common practice to terminate
the rule discovery process as soon as a rule is found. However, there are cases when either the integrand is inherently non-
polynomial in nature, e.g. the quotient of two polynomials, or of a high degree, e.g. a polynomial raised to a high power. In
these circumstances the above assumption no longer holds and it is necessary to consider the truncation term associated
with each rule. Hence, within this context it is no longer clear that the traditional objective of minimising the number of
points required to obtain a rule of given strength is suitable: it is possible that the addition of an extra point will permit the
integration of several of the basis functions of degree φ + 1.
Over the past five or so years there has also been an increased interest in numerical schemes where the same set of points
are used for both integration and interpolation. One example of such a scheme is the flux reconstruction (FR) approach
introduced by Huynh [23]. In the FR approach there is a need for quadrature rules that (i) are symmetric, (ii) remain strictly
inside of the domain, (iii) have a prescribed number of points, and (iv) are associated with a well conditioned nodal basis for
polynomial interpolation. These last two requirements exclude many of the points tabulated in the literature. Consequently,
there is a need for bespoke or designer quadrature rules with non-standard properties.
This paper describes a methodology for the derivation of symmetric quadrature rules inside of a variety of computational
domains. The method accepts both the number of points and the desired quadrature strength as free parameters and – if
successful – yields a set of rules. Traits, such as the positivity of the weights, can then be assessed and rules binned according
to their suitability for various applications. The remainder of this paper is structured as follows. In Section 2 we introduce the
six reference domains and enumerate their symmetries. Our methodology is presented in Section 3. Based on the approach of
Witherden and Vincent [12] the methodology requires no manual intervention and avoids issues relating to ill-conditioning.
In Section 4 we proceed to describe our open-source implementation, polyquad. Using polyquad a variety of truncation-
optimised rules, many of which appear to improve over those tabulated in the literature, are obtained and presented in
Section 5. Finally, conclusions are drawn in Section 6.
The defining property of a quadrature rule for a domain is its ability to exactly integrate the set of basis polynomials,
P φ . This set has an infinite number of representations the simplest of which being the monomials. In two dimensions we
can express the monomials as
P φ = xi yj | 0 ≤ i ≤ φ, 0 ≤ j ≤ φ − i ,
(3)
where φ is the maximal degree. Unfortunately, at higher degrees the monomials become extremely sensitive to small
perturbations in the inputs. This gives rise to polynomial systems which are poorly conditioned and hence difficult to solve
numerically [9,16]. A solution to this is to switch to an orthonormal basis set defined in two dimensions as
P φ = ψij (x) | 0 ≤ i ≤ φ, 0 ≤ j ≤ φ − i ,
(4)
where δiµ is the Kronecker delta. In addition to being exceptionally well conditioned orthonormal polynomial bases have
other useful properties. Taking the constant mode of the basis to be ψ00 (x) = 1/c we see that
ψij (x) dx = c ψ00 (x)ψij (x) dx = c δi0 δj0 , (6)
1234 F.D. Witherden, P.E. Vincent / Computers and Mathematics with Applications 69 (2015) 1232–1241
from which we conclude that all non-constant modes of the basis integrate up to zero. Following Witherden and Vincent [12]
we will use this property to define the truncation error associated with an Np point rule
Np 2
ξ 2 (φ) = ωk ψij (xk ) − c δi0 δj0 . (7)
i ,j k
This definition is convenient as it is free from both integrals and normalisation factors. The task of constructing an Np point
quadrature rule of strength φ is synonymous with finding a set of points and weights that minimise ξ (φ).
Although the above discussion has been presented primarily in two dimensions all of the ideas and relations carry over
into three dimensions.
A symmetric arrangement of Np points inside of a reference domain can be decomposed into a linear combination of
symmetry orbits. This concept is best elucidated with an example. Consider a line segment defined by [−1, 1]. The segment
possesses two symmetries: an identity transformation and a reflection about the origin. For an arrangement of distinct
points to be symmetric it follows that if there is a point at α where 0 < α ≤ 1 there must also be a point at −α . We can
codify this by writing S2 (α) = ±α with |S2 | = 2. The function S2 is an example of a symmetry orbit that takes a single orbital
parameter, α , and generates two distinct points. In the limit of α → 0 the two points become degenerate. We handle this
degeneracy by introducing a second orbit, S1 = 0, with |S1 | = 1. Having identified the symmetries we may now decompose
a symmetric arrangement of points as
where n1 ∈ {0, 1} and n2 ≥ 0 with the constraint on n1 being necessary to ensure uniqueness. This is a constrained linear
Diophantine equation; albeit one that is trivially solvable and admits only a single solution. As a concrete example we take
Np = 11. Solving the above equation we find n1 = 1 and n2 = 5. The n1 orbit does not take any arguments and so does not
contribute any degrees of freedom. Each n2 orbit takes a single parameter, α , and so contributes one degree of freedom for
a grand total of five. This is less than half that associated with the asymmetrical case. Hence, by parameterising the problem
in terms of symmetry orbits it is possible to simultaneously reduce the number of degrees of freedom while guaranteeing a
symmetric distribution of points.
Symmetries also serve to reduce the number of basis polynomials that must be considered when computing ξ (φ).
Consider the following two monomials
defined inside of a square domain with vertices (−1, −1) and (1, 1). We note that p1 (x, y) = p2 (y, x). As this is a
symmetry which is expressed by the domain it is clear that any symmetric quadrature rule capable of integrating p1 is
also capable of integrating p2 . Further, the index i is odd we have p1 (x, y) = −p1 (−x, y). Similarly, when j is odd we have
p1 (x, y) = −p1 (x, −y). In both cases it follows that the integral of p1 is zero over the domain. More importantly, it also
follows that any set of symmetric points are also capable of obtaining this result. This is due to terms on the right hand
side of Eq. (1) pairing up and cancelling out. A consequence of this is that not all of equations in the system specified by
Eq. (1) are independent. Having identified such polynomials for a given domain it is legitimate to exclude them from our
definition of ξ (φ). Although this exclusion does change the value of ξ (φ) in the case of a non-zero truncation error the effect
is not significant. We shall denote the set of basis polynomials which are included as the objective basis, and denote this
by P̃ φ .
(α,β)
In the paragraphs which follow we will take P̂i (x) to refer to a normalised Jacobi polynomial as specified in Section 18.3
of [24]. In two dimensions we take the coordinate axes to be x = (x, y) and x = (x, y, z ) in three dimensions.
1 −y
Triangle. Our reference triangle can be seen in Fig. 1 and has an area given by −1 −1 dx dy = 2. A triangle has six
symmetries: two rotations, three reflections, and the identity transformation. A simple means of realising these symmetries
is to transform into barycentric coordinates
λ = (λ1 , λ2 , λ3 )T 0 ≤ λi ≤ 1, λ1 + λ2 + λ3 = 1, (8)
where the columns of the matrix can be seen to be the vertices of our reference triangle. The utility of barycentric coordinates
is that the symmetric counterparts to a point λ are given by its unique permutations. The number of unique permutations
depends on the number of distinct components of λ and leads us to the following three symmetry orbits
, 13 , 13 , |S1 | = 1,
1
S1 = 3
S2 (α) = Perm(α, α, 1 − 2α), |S2 | = 3,
S3 (α, β) = Perm(α, β, 1 − α − β), |S3 | = 6,
where α and β are suitably constrained as to ensure that the resulting coordinates are inside of the domain.
It can be easily verified that the orthonormal polynomial basis inside of our reference triangle is given by
√ (2i+1,0)
ψij (x) = 2P̂i (a)P̂j (b)(1 − b)i , (10)
where a = 2(1 + x)/(1 − y) − 1, and b = y with the objective basis being given by
P̃ φ = ψij (x) | 0 ≤ i ≤ φ, i ≤ j ≤ φ − i .
(11)
In the asymptotic limit the cardinality of the objective basis is half that of the complete basis. However, the modes of this
objective basis are known not to be completely independent. Several authors have investigated the derivation of an optimal
quadrature basis on the triangle. Details can be found in the papers of Lyness [4] and Dunavant [5].
1 1
Quadrilateral. Our reference quadrilateral can be seen in Fig. 1. The area is simply −1 −1 dx dy = 4. A square has eight
symmetries: three rotations, four reflections and the identity transformation. Applying these symmetries to a point (α, β)
with 0 ≤ (α, β) ≤ 1 will yield a set χ (α, β) containing its counterparts. The cardinality of χ depends on if any of the
symmetries give rise to identical points. This can be seen to occur when either β = α or β = 0. Enumerating the possible
combinations of the above conditions gives rise to the following four symmetry orbits
Tetrahedron. Our reference tetrahedron is a right-tetrahedron as depicted in Fig. 2. Integrating up the volume we find
−1 −z −1−y−z
−1 −1 −1 dx dy dz = 4/3. A tetrahedron has a total of 24 symmetries. Once again it is convenient to work in terms
of barycentric coordinates which are specified for a tetrahedron as
λ = (λ1 , λ2 , λ3 , λ4 )T 0 ≤ λi ≤ 1, λ1 + λ2 + λ3 + λ4 = 1, (14)
−1 1 −1 −1
x = −1 −1 1 −1 λ, (15)
−1 −1 −1 1
1236 F.D. Witherden, P.E. Vincent / Computers and Mathematics with Applications 69 (2015) 1232–1241
where as with the triangle the columns of the matrix correspond to vertices of the reference tetrahedron. Similarly the
symmetric counterparts of λ are given by its unique permutations. This leads us to the following five symmetry orbits
, 41 , 14 , 41 , |S1 | = 1,
1
S1 = 4
S2 (α) = Perm(α, α, α, 1 − 3α), |S2 | = 4,
S3 (α) = Perm α, α, 12 − α, 12 − α , |S3 | = 6,
where a = −2(1 + x)/(y + z ) − 1, b = 2(1 + y)/(1 − z ), and c = z. The objective basis is given by
P̃ φ = ψijk (x) | 0 ≤ i ≤ φ, i ≤ j ≤ φ − i, j ≤ k ≤ φ − i − j .
(17)
Prism. Extruding the reference triangle along the z-axis gives our reference prism of Fig. 2. It follows that the volume is
1 1 −y
−1 −1 −1 dx dy dz = 4. There are a total of 12 symmetries. On account of the extrusion the most natural coordinate system
is a combination of barycentric and Cartesian coordinates: (λ1 , λ2 , λ3 , z ). Let Perm3 generate all of the unique permutations
of its first three arguments. Using this the six symmetry groups of the prism can be expressed as
, 31 , 13 , 0 , |S1 | = 1,
1
S1 = 3
S2 (γ ) = , , , ±γ ,
1 1 1
|S2 | = 2,
3 3 3
S3 (α) = Perm3 (α, α, 1 − 2α, 0), |S3 | = 3,
S4 (α, γ ) = Perm3 (α, α, 1 − 2α, ±γ ), |S4 | = 6,
S5 (α, β) = Perm3 (α, β, 1 − α − β, 0), |S5 | = 6,
S6 (α, β, γ ) = Perm3 (α, β, 1 − α − β, ±γ ), |S6 | = 12,
where the constraints on α and β are identical to those in a triangle and 0 < γ ≤ 1.
Combining the orthonormal polynomial bases for a right-triangle and line segment yields the orthonormal prism basis
√ (2i+1,0)
ψijk (x) = 2P̂i (a)P̂j (b)P̂k (c )(1 − b)i , (18)
F.D. Witherden, P.E. Vincent / Computers and Mathematics with Applications 69 (2015) 1232–1241 1237
3. Methodology
Our methodology for identifying symmetric quadrature rules is a refinement of that described by Witherden and
Vincent [12] for triangles. This method is, in turn, a refinement of that of Zhang et al. [9].
To derive a quadrature rule four input parameters are required: the reference domain, , the number of quadrature points
Np , the target rule strength, φ , and a desired runtime, t. The algorithm begins by computing all of the possible symmetric
decompositions of Np . The result is a set of vectors satisfying the relation
Ns
Np = nij |Sj |, (24)
j =1
where Ns is the number of symmetry orbits associated with the domain , and nij is the number of orbits of type j in the
ith decomposition. Finding these involves solving the constrained linear Diophantine equation outlined in Section 2. It is
possible for this equation to have no solutions. As an example we consider the case when Np = 44 for a triangular domain.
From the symmetry orbits we have
Np = n1 |S1 | + n2 |S2 | + n3 |S3 | = n1 + 3n2 + 6n3 ,
1238 F.D. Witherden, P.E. Vincent / Computers and Mathematics with Applications 69 (2015) 1232–1241
subject to the constraint that n1 ∈ {0, 1}. This restricts Np to be either a multiple of three or one greater. Since forty-four is
neither of these we find the equation to have no solutions. Therefore, we conclude that there can be no symmetric quadrature
rules inside of a triangle with forty-four points.
Given a decomposition we are interested in finding a set of orbital parameters and weights that minimise the error
associated with integrating the objective basis on . This is an example of a nonlinear least squares problem. A suitable
method for solving such problems is the Levenberg–Marquardt algorithm (LMA). The LMA is an iterative procedure for
finding a set of parameters that correspond to a local minima of a set of functions. The minimisation process is not
always successful and is dependent on an initial guess of the parameters. Within the context of quadrature rule derivation
minimisation can be regarded as successful if ξ (φ) ∼ ϵ where ϵ represents machine precision.
Let us denote the number of parameters associated with symmetry orbit Si as [[Si ]]. Using this we can express the total
number of degrees of freedom associated with decomposition i as
Ns
nij [[Si ]] + nij ,
(25)
j =1
with the second term accounting for the presence of one quadrature weight associated with each symmetry orbit. From the
list of orbits given in Section 2 we expect the weights contribute approximately one third of the degrees of freedom. This is
not an insignificant fraction. One way of eliminating the weights is to treat them as dependent variables. When the points are
prescribed the right hand side of Eq. (1) becomes linear with respect to the unknowns—the weights. In general, however,
the number of weights will be different from the number of polynomials in the objective basis. It is therefore necessary
to obtain a least squares solution to the system. Linear least squares problems can be solved directly through a variety of
techniques. Perhaps the most robust numerical scheme is that of singular value decomposition (SVD). Thus, at the cost of
solving a small linear least squares problem at each LMA iteration we are able to reduce the number of free parameters to
Ns
nij [[Si ]]. (26)
j =1
Such a modification has been found to greatly reduce the number of iterations required for convergence. This reduction
more than offsets the marginally greater computational cost associated with each iteration.
Previous works [9,10,18] have emphasised the importance of picking a ‘good’ initial guess to seed the LMA. To this end
several methodologies for seeding orbital parameters have been proposed. The degree of complexity associated with such
strategies is not insignificant. Further, it is necessary to devise a separate strategy for each symmetry orbit. Our experience,
however, suggests that the choice of decomposition is far more important than the initial guess in determining whether
minimisation will be successful. Orbits can therefore be seeded independently using uniform random deviates. Let U1 be a
deviate between [0, 1], U2 between [0, 1/2], U3 between [0, 1/3], U4 between [0, 1/4], U11 between [−1, 1] and, Uγ between
[0, (1 − γ )/2]. Using these we can seed the various orbital parameters as follows.
Triangle.
S2 (α ∼ U2 )
S3 (α ∼ U2 , β ∼ U3 ).
Quadrilateral.
S2 (α ∼ U1 )
S3 (α ∼ U1 )
S4 (α ∼ U1 , β ∼ U1 ).
Tetrahedron.
S2 (α ∼ U3 )
S3 (α ∼ U2 )
S4 (α ∼ U3 , β ∼ U3 )
S5 (α ∼ U4 , β ∼ U4 , γ ∼ U4 ).
Prism.
S2 (γ ∼ U1 )
S3 (α ∼ U2 )
S4 (α ∼ U2 , γ ∼ U1 )
F.D. Witherden, P.E. Vincent / Computers and Mathematics with Applications 69 (2015) 1232–1241 1239
S5 (α ∼ U2 , β ∼ U2 )
S6 (α ∼ U2 , β ∼ U2 , γ ∼ U1 ).
Pyramid.
S1 (γ ∼ U11 )
S2 (α ∼ Uγ , γ ∼ U11 )
S3 (α ∼ Uγ , γ ∼ U11 )
S4 (α ∼ Uγ , β ∼ Uγ , γ ∼ U11 ).
Hexahedron.
S2 (α ∼ U1 )
S3 (α ∼ U1 )
S4 (α ∼ U1 )
S5 (α ∼ U1 , β ∼ U1 )
S6 (α ∼ U1 , β ∼ U1 )
S7 (α ∼ U1 , β ∼ U1 , γ ∼ U1 ).
For larger values of Np we note that many decompositions – especially those for prisms and pyramids – are pathological.
As an example of this we consider searching for an Np = 80 point rule inside of a prism where there are 2380 distinct
symmetrical decompositions. One such decomposition is Np = 40|S2 | where all points lie in a single column down the
middle of the prism. Since there is no variation in either x or y it is not possible to obtain a rule of strength φ ≥ 1. Hence,
the decomposition can be dismissed without further consideration.
A presentation of our method in pseudocode can be seen in Algorithm 1. When the objective basis functions in P̃ φ
are orthonormal Eq. (6) states that the integrand of all non-constant modes is zero. We can exploit this to simplify the
computation of bi . The purpose of ClampOrbit is to enforce the constraints associated with a given orbit to ensure that all
points remain inside of the domain.
Algorithm 1 Procedure for generating symmetric quadrature rules of strength φ with Np points inside of a domain.
1: procedure FindRules(Np , φ, t)
2: for all decompositions of Np do
3: t0 ← CurrentTime()
4: repeat
5: R ← SeedOrbits() ◃ Initial guess of points
6: ξ ← LMA(RuleResid, R)
7: if ξ ∼ ϵ then ◃ If minimisation was successful
8: save R
9: end if
10: until CurrentTime() − t0 > t
11: end for
12: end procedure
Table 1
Number of points Np required for a fully symmetric quadrature rule with positive weights of strength φ inside of the six reference domains. Rules with
underlines represent improvements over those found in the literature (see text).
Np
φ Tri Quad Tet Pri Pyr Hex
1 1 1 1 1 1 1
2 3 4 4 5 5 6
3 6 4 8 8 6 6
4 6 8 14 11 10 14
5 7 8 14 16 15 14
6 12 12 24 28 24 34
7 15 12 35 35 31 34
8 16 20 46 46 47 58
9 19 20 59 60 62 58
10 25 28 81 85 83 90
11 28 28
12 33 37
13 37 37
14 42 48
15 49 48
16 55 60
17 60 60
18 67 72
19 73 72
20 79 85
4. Implementation
We have implemented the algorithms outlined above in a C++11 program called polyquad. The program is built on top
of the Eigen template library [25] and is parallelised using MPI. It is capable of searching for quadrature rules on triangles,
quadrilaterals, tetrahedra, prisms, pyramids, and hexahedra. All rules are guaranteed to be symmetric having all points
inside of the domain. Polyquad can also, optionally, filter out rules possessing negative weights. Further, functionality exists,
courtesy of MPFR [26], for refining rules to an arbitrary degree of numerical precision and for evaluating the truncation error
of a ruleset.
As a point of reference we consider the case of using polyquad to identify φ = 10 rules with 81 points inside of a
tetrahedra. Running polyquad for one hour on a quad-core Intel i7-4820K CPU we were able to find a total of 50 distinct
rules. These rules were split across four distinct orbital decompositions.
The source code for polyquad is available under the terms of the GNU General Public License v3.0 and can be downloaded
from https://github.com/vincentlab/Polyquad.
5. Rules
Using polyquad v1.0 we have derived a set of quadrature rules for each of the reference domains in Section 2. All rules
are completely symmetric, possess only positive weights, and have all points inside of the domain. It is customary in the
literature to refer to quadratures with the last two attributes as being ‘‘PI’’ rules. As polyquad attempts to find a set of rules
it is necessary to have a means of differentiating between otherwise equivalent formulae. In constructing this collection the
truncation term ξ (φ + 1) was employed with the rule possessing the smallest such term being chosen. The number of points
Np required for a rule of strength φ can be seen in Table 1. The rules themselves are provided as electronic supplementary
material (see Appendix A) and have been refined to 38 decimal places.
From the table we note that several of the rules appear to improve over those in the literature. We consider a rule to
be an improvement when it either (i) requires fewer points than any fully symmetric rule described in literature or, (ii)
when existing fully symmetric rules of this strength are not PI. We note that many of the rules presented by Dunavant
for quadrilaterals [14] and hexahedra [21] possess either negative weights or have points outside of the domain. Using
polyquad in quadrilaterals we were able to identify PI rules with point counts less than or equal to those of Dunavant at
strengths φ = 8, 9, 18, 19, 20. In tetrahedra we were able to reduce the number of points required for φ = 7 and φ = 9 by
one and two, respectively, compared with Zhang et al. [9]. Furthermore, in prisms and pyramids rules requiring significantly
fewer points than those in the literature were identified. As an example, the φ = 9 rule of [18] inside of a prism requires
71 points compared with just 60 for the rule identified by polyquad. Additionally, both of the φ = 10 rules for prisms and
pyramids appear to be new.
6. Conclusions
We have presented a methodology for identifying symmetric quadrature rules on a variety of domains in two and
three dimensions. Our scheme does not require any manual intervention and is not restricted to any particular topological
F.D. Witherden, P.E. Vincent / Computers and Mathematics with Applications 69 (2015) 1232–1241 1241
configuration inside of a domain. Additionally, it is also capable of generating a set of rules. We have further provided an
open source implementation of our method in C++11, and used it to generate a complete set of symmetric quadrature
rules that are suitable for use in finite element solvers. All rules possess purely positive weights and have all points inside
the domain. Many of the rules appear to be new, and an improvement over those tabulated in the literature.
Acknowledgement
The authors would like to thank the Engineering and Physical Sciences Research Council for their support via a Doctoral
Training Grant and an Early Career Fellowship (EP/K027379/1).
References
[1] Jan S. Hesthaven, Tim Warburton, Nodal Discontinuous Galerkin Methods: Algorithms, Analysis, and Applications, Vol. 54, Springer, 2008.
[2] Pavel Solin, Karel Segeth, Ivo Dolezel, Higher-Order Finite Element Methods, CRC Press, 2003.
[3] George Karniadakis, Spencer Sherwin, Spectral/hp Element Methods for Computational Fluid Dynamics, Oxford University Press, 2005.
[4] J.N. Lyness, D. Jespersen, Moderate degree symmetric quadrature rules for the triangle, IMA J. Appl. Math. 15 (1) (1975) 19–32.
[5] D.A. Dunavant, High degree efficient symmetrical Gaussian quadrature rules for the triangle, Internat. J. Numer. Methods Engrg. 21 (6) (1985)
1129–1148.
[6] James N. Lyness, Ronald Cools, A survey of numerical cubature over triangles, in: Proceedings of Symposia in Applied Mathematics, Vol. 48, 1994,
pp. 127–150.
[7] J.Scott Savage, Andrew F. Peterson, Quadrature rules for numerical integration over triangles and tetrahedra, IEEE Antennas Propag. Mag. 38 (3) (1996)
100–102.
[8] S. Wandzurat, H. Xiao, Symmetric quadrature rules on a triangle, Comput. Math. Appl. 45 (12) (2003) 1829–1840.
[9] Linbo Zhang, Tao Cui, Hui Liu, A set of symmetric quadrature rules on triangles and tetrahedra, J. Comput. Math. 27 (1) (2009) 89–96.
[10] M.A. Taylor, B.A. Wingate, L.P. Bos, Several new quadrature formulas for polynomial integration in the triangle, January 2005. ArXiv Mathematics
e-prints.
[11] Hong Xiao, Zydrunas Gimbutas, A numerical algorithm for the construction of efficient quadrature rules in two and higher dimensions, Comput. Math.
Appl. 59 (2) (2010) 663–676.
[12] F.D. Witherden, P.E. Vincent, An analysis of solution point coordinates for flux reconstruction schemes on triangular elements, J. Sci. Comput. (2013)
1–26.
[13] D.M. Williams, L. Shunn, A. Jameson, Symmetric quadrature rules for simplexes based on sphere close packed lattice arrangements, J. Comput. Appl.
Math. 266 (2014) 18–38.
[14] D.A. Dunavant, Economical symmetrical quadrature rules for complete polynomials over a square domain, Internat. J. Numer. Methods Engrg. 21 (10)
(1985) 1777–1784.
[15] Ronald Cools, Ann Haegemans, Another step forward in searching for cubature formulae with a minimal number of knots for the square, Computing
40 (2) (1988) 139–146.
[16] Lee Shunn, Frank Ham, Symmetric quadrature rules for tetrahedra based on a cubic close-packed lattice arrangement, J. Comput. Appl. Math. 236 (17)
(2012) 4348–4364.
[17] Patrick Keast, Moderate-degree tetrahedral quadrature formulas, Comput. Methods Appl. Mech. Engrg. 55 (3) (1986) 339–348.
[18] Ethan J. Kubatko, Benjamin A. Yeager, Ashley L. Maggi, New computationally efficient quadrature formulas for triangular prism elements, Comput. &
Fluids 73 (2013) 187–201.
[19] Ethan J. Kubatko, Benjamin A. Yeager, Ashley L. Maggi, New computationally efficient quadrature formulas for pyramidal elements, Finite Elem. Anal.
Des. 65 (2013) 63–75.
[20] Arthur H. Stroud, Approximate Calculation of Multiple Integrals, Prentice-Hall, 1971.
[21] D.A. Dunavant, Efficient symmetrical cubature rules for complete polynomials of high degree over the unit cube, Internat. J. Numer. Methods Engrg.
23 (3) (1986) 397–407.
[22] Ronald Cools, Kyung Joong Kim, Rotation invariant cubature formulas over the n-dimensional unit cube, J. Comput. Appl. Math. 132 (1) (2001) 15–32.
[23] H.T. Huynh, A flux reconstruction approach to high-order schemes including discontinuous Galerkin methods, AIAA Paper, 4079:2007, 2007.
[24] Frank W.J. Olver, NIST Handbook of Mathematical Functions, Cambridge University Press, 2010.
[25] Gaël Guennebaud, Benoît Jacob, et al. Eigen v3, 2010. http://eigen.tuxfamily.org.
[26] Laurent Fousse, Guillaume Hanrot, Vincent Lefèvre, Patrick Pélissier, Paul Zimmermann, MPFR: a multiple-precision binary floating-point library with
correct rounding, ACM Trans. Math. Softw. 33 (2) (2007) 13:1–13:15.