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).