1  Introduction

The Fortran subroutines described here are useful in the implementation of integral equation methods for the solution of the general two-dimensional, the general three-dimensional and the axisymmetric three-dimensional Helmholtz equation,

Ñ2 f(p) + k2 f(p) = 0 ,
(1)
which governs f(p) in a given domain and k is a complex number. The subroutines compute the discrete form of the integral operators Lk, Mk, Mkt and Nk that arise in the application of collocation to integral equation formulations of the Helmholtz equation. Expressions for the discrete integral operators are derived by approximating the boundaries by the most simple elements for each of the three cases - straight line elements for the general two-dimensional case, flat triangular elements for the general three-dimensional case and conical elements for the axisymmetric three-dimensional case - and approximating the boundary functions by a constant on each element.

The Helmholtz integral operators are defined as follows:

{ Lk m}G(p ) º
ó
õ
G 
 Gk(p,qm(qdSq  ,
(2)

{ Mk m}G(p) º
ó
õ
G 
  Gk
nq
(p,qm(qdSq  ,
(3)

{ Mkt m}G(p; vp) º
vp
 
ó
õ
G 
 Gk(p,qm(q)  dSq  ,
(4)

{ Nk m}G(p; vp) º
vp

ó
õ
G 
  Gk
nq
(p,qm(qdSq   ,
(5)
where G is a boundary (not necessarily closed), nq is the unique unit normal vector to G at q, vp is a unit directional vector passing through p and m(q) is a function defined for q Î G. Gk(p,q) is a the free-space Green's function for the Helmholtz equation. In this paper the Green's functions are

Gk(p,q) = i
4
H0(1)(kr)  (k Î C \{ 0 })  in two dimensions,
(6)

Gk(p,q) = 1
4 p
eikr
r
  (k Î C)  in three dimensions,
(7)
where r = |r|, r = p-q, C is the set of complex numbers and i is the unit imaginary number. The function H0(1) is the spherical Hankel function of the first kind of order zero. The Green's functions (6) and (7) also satisfy the following condition at infinity, known physically as the Sommerfeld radiation condition,


lim
r ® ¥ 
r1/2 ( f(p)
r
- i k f(p) ) = 0    in two dimensions.
(8)


lim
r ® ¥ 
r ( f(p)
r
- i k f(p) ) = 0    in three dimensions.
(9)
It is noted that the term `integral operator' is applied loosely, Nk is not generally an integral operator.

For the special case when k = 0 the Helmholtz equation (1) is the Laplace equation. In this particular case the chosen Green's functions are

G0(p,q) = - 1
2 p
logr   in two dimensions,
(10)

G0(p,q) = 1
4 p
1
r
   in three dimensions.
(11)
Note that limk ® 0 Gk(p,q) = G0(p,q) for the three-dimensional case but not for the two dimensional case and that G0(p,q) for the two-dimensional case does not satisfy condition (8).

For each particular case of boundary division, the discrete form of the operators is computed using the subroutines H2LC (two-dimensional), H3LC (three-dimensional) and H3ALC (axisymmetric three-dimensional). The subroutines in this paper are thus useful for the solution of the interior or exterior Helmholtz or Laplace equation via integral equation methods. Examples of situations where the subroutines in this paper could be useful are the problems addressed in references [32], [9], [29], [34], [31], [1], [5], [6], [13], [14], [35], [2], [12], [16], [17], [18], [19], [22], [24]. A full description of the solution of acoustic problems in interior, exterior domains and of the solution to modal problems is given in Kirkup [25]. The objective of this paper is to describe the underlying methods employed in computing the discrete form of the integral operators (2)-(5), to outline the three Fortran subroutines and examine their computational cost, explain how the subroutines may be utilised and to demonstrate the subroutines on the Burton and Miller equation [7]. The subroutines have been written to the Fortran77 standard and employ double-precision arithmetic.