ABSTRACT
For the Helmholtz equation (or Laplace’s equation if k = 0), the finite element stiffness matrix has entries of the following form:
BJI = ∫
{ [∇xφI (x)]T∇xφJ (x) − k2φI (x)φJ (x)
} dx
We make the typical change of variables
BJI = ∫
{
[∇ξφI (ξ)]T D∇ξφJ (ξ) − k2φI (ξ)φJ (ξ) ∣ ∣ ∣ ∣ dx dξ
∣ ∣ ∣ ∣
}
dξ (7.1)
where D is the symmetric matrix
D = ∣ ∣ ∣ ∣ dx dξ
∣ ∣ ∣ ∣
dξ dx
dξ dx
If the element has polynomial order of approximation p = [p1, p2, p3], then a Gauss-Legendre quadrature rule of order p + 1 = [p1 + 1, p2 + 1, p3 + 1] is used to guarantee exact integration in the case of an affine element. Then
BJI = p1+1∑
{
[∇ξφI (ξ(l))]T D∇ξφJ (ξ(l)) − k2φI (ξ(l))φJ (ξ(l)) ∣ ∣ ∣ ∣ dx dξ
∣ ∣ ∣ ∣
}
w(l)
(7.2)
where ξ(l) = [ξ (l1)1 , ξ (l2)2 , ξ (l3)3 ] and w(l) = w(l1)1 w(l2)2 w(l3)3 are the 1D GaussLegendre points and weights, respectively. A straight-forward algorithm for computing the entries in (7.2) is shown in Figure 7.1. Clearly the runtime complexity of this algorithm is O( p9).