An Approach to the Implementation of Laplace and a Broadband Helmholtz Fast Multipole Method as an Application Independent Library
Sanjay Velamparambil
Ansys Inc., 1995 N. 57th Court, Suite 100, Boulder, CO-80301, USA
sanjay.velamparambil@ansys.com
Submitted On: August 9, 2023; Accepted On: July 8, 2024
In this paper, we propose an approach to develop an application independent library of Laplace and Helmholtz fast multipole method (FMM) that can be used in different applications. For this purpose, we consider a generalized problem and a corresponding canonical problem (defined below). In the first main contribution, we show that it is possible to capture the essential characteristics of the canonical summation from sampling the values of certain potentials or signature functions. In the second main contribution, we show that partial derivatives of arbitrary orders acting on the far field can be represented as product of sparse matrices within the library, transparent to the user. Combining the two ideas, we show that once the FMM is configured to compute the canonical summation, the same setup can be used to work with a much wider, general class of problems.
Index Terms: Fast multipole methods, integral equations.
In this paper, we describe an approach to develop a stand-alone, application independent library of the fast multipole method (FMM) [1, 2, 3] to be used in different physical applications and developed by multiple teams with differing backgrounds. In particular, we are concerned with the evaluation of summations of the form:
(1a) | ||||
with: | ||||
(1b) | ||||
where and are linear partial differential operators with constant coefficients and: | ||||
(1c) |
Note that, in general, . Furthermore, following the terminology used by the method of moments (MoM) practitioners in electromagnetics, we shall refer to and as the basis and testing functions, respectively, with the understanding that they can be Dirac -functions to represent “point” particles.
Such computations can arise from a wide variety of applications, such as electromagnetics, acoustics and elastic wave scattering. Since its development in the 1980s [4, 5] for the Laplace equation to the elegant extension to the Helmholtz and Maxwell equations in the 1990s [2, 3, 6], FMM and its multilevel variants have transformed computational physics, especially, computational electromagnetics. It is beyond the scope of this paper to provide a comprehensive overview of these remarkable developments. Instead, we refer the reader to the recent review by He et al. [7].
Although the theory of FMM has been well established and many high quality implementations exist, both in the public domain and in proprietary products, the development of an application independent library is still a challenging problem due to various practical constraints such as:
Different formulations and physics lead to different choices for and .
Different domain and geometry; the integrals could be defined over surfaces or volumetric regions, discretized with surface elements such as flat or curvilinear triangles and/or quadrilaterals and volume elements such as tetrahedra. It is also possible to have mixed formulations involving both surface elements and volume elements. The quality of such a mesh can often be poor, with highly non-uniform elements.
Different basis and testing procedures in reducing the integral equations to a matrix equation; note that each basis and testing function can be supported by one or more mesh elements.
Familiarity/background knowledge of the library user. Even though one can expect the users to have a sound understanding of the integral equation and the underlying physics, it is not necessary that they have a sufficient understanding of FMM to develop the components needed to integrate their code with a library.
We illustrate this with an example. In an implementation of Laplace FMM that uses spherical harmonics, the library user may have to provide the multipole coefficients of basis/testing functions. Although standard implementations of spherical harmonics are available, it may be tricky to ensure consistency between third party implementation of spherical harmonics and the ones used in the FMM implementation.
One of the ways to address these issues is to replace the basis and testing functions with weighted (point) “particles” as shown in Fig. 1. Although this approach simplifies the implementation of the library, it has several drawbacks. First, as illustrated in Fig. 1, replacing mesh elements and basis/testing functions with weighted particles generally leads to incompatible partitioning of the geometry, requiring error-prone bookkeeping, complicated data interchange between the application and the library, and messy corrections in the near field. In addition, given that the number of quadrature points is generally larger than the number of basis/testing functions, the matrix as seen by the library tends to be larger as well, potentially affecting the performance.
Therefore, the objective of this paper is to present an approach that can handle a wide class of problems through the use of good abstractions to capture the physics, the formulation and the discretization. The main contributions of this work are:
Abstractions to characterize the geometry of the elements in a way that allows consistent handling of non-uniform meshes.
A technique to compute required multipole coefficients of the shape/basis and testing functions from sampled values of their corresponding potentials or signature functions which are easy to define and simple to evaluate, without involving any special functions.
We show that the partial derivatives of the far field, represented by multipole or plane wave expansions, can be represented as products of sparse matrices independent of the basis and testing functions allowing the user to compute these derivatives without having to directly work with multipole expansions.
Finally, we demonstrate that once the library is integrated into an existing code to compute what we call the canonical problem, defined in equation (4), the same implementation can be used to evaluate summations in equation (1) without modifying the library and without adding new subroutines to the application code.
We assume that the reader is familiar with the basic mathematical formulation and the octree based computational structure of the Laplace and Helmholtz multi-level fast multipole methods (MLFMM). Except when specificity is needed, we shall use the abbreviation MLFMM to refer to either of the two versions.
In the context of MLFMM, we begin by noting that if and in equation (1) belong to well separated boxes, the Green’s function in equation (1) does not involve any singularities. Since:
(2) |
whenever , the differential operator appearing on the source point can be transferred to the observation point when and are geometrically well separated. Therefore, for far field computations, it is possible to transform equation (1b) to a linear combination of integrals of the form:
(3a) | |||
(3b) | |||
with and being non-negative integers. |
One of the key results presented in this work is that the differential operator can be exactly represented as a product of certain sparse matrices in the calculation of far interactions. Anticipating this result, we define a new summation:
(4a) | ||||
(4b) | ||||
and refer to it as the canonical problem. |
If and for , we shall often write in spherical coordinates. We shall denote the unit sphere centered at the origin by and will typically use the symbol to denote a vector on .
Following [8, 9], we define the associated Legendre function of degree and order and by the formula:
(5a) |
Following Messiah [9], we define the spherical harmonic of degree and order by the relation:
(5b) |
We have:
(5c) | ||||
(5d) |
where denotes the complex conjugate.
Let . We define inner and outer multipole functions for the Laplace equation by the formulae [10]:
(6a) | |||
(6b) | |||
(6c) |
Similarly, for the Helmholtz equation, we define the inner and outer functions, denoted by and , respectively, by the formulae [10]:
(7a) | ||||
(7b) | ||||
where and are, respectively, spherical Bessel and Hankel functions of the first kind and of order . |
We first develop the abstractions needed to evaluate the canonical summation in equation (4). Assuming the existence of an octree structure, let and be the boxes in which the basis function and the testing function , respectively, reside1. Referring to Fig. 2, let:
(8) | ||||
(9) |
We assume that and and that .
To represent the matrix element in equation (4), we first let:
(10a) | ||||
(10b) |
For a given accuracy , let be given. Let and , respectively, denote the outer and inner multipoles of either Laplace or Helmholtz kernel. Then, we recall the following foundational results from the theory of MLFMM [2, 10]:
The potential can be approximated by a finite outer multipole series valid outside :
(11a) |
The potential can be approximated as an inner multipole series valid inside :
(11b) |
There exists a linear operator, , called a translation operator, relating the coefficients and by:
(11c) |
To evaluate , we substitute equation (11b) into equation (10b), and obtain:
(11d) | ||||
(11e) |
Borrowing the terminology from Laplace FMM parlance, we shall refer to as the “Q2M” coefficients and as the “L2P” coefficients.
Expressing the Q2M and L2P coefficients in terms of multipole functions presents a challenge to implementation when multiple teams are involved. For example, a team developing a stand-alone library of FMM, to be used by multiple product teams, may not be deeply familiar with the applications themselves. On the other hand, a product team, although experts in, say, integral equations, may have little or no familiarity with FMM. Given that it is these coefficients that couple the application side (integral equation) with the FMM implementation, it is imperative that they are evaluated correctly and efficiently.
An obvious way to do this is to let the FMM library be aware of the basis and testing functions, and thus let the library evaluate these functions. This has the advantage that if the library decides to change, say, the definitions of inner functions, it will remain transparent to the application. However, this approach has the severe disadvantage that the library is deeply tied to a particular class of basis and testing functions. It is then left with the task of potentially adding a new class of basis and testing functions for every new application. This is inefficient and will eventually make the code unmaintainable.
A second approach is to let the application evaluate the coefficients using formulae similar to those in equation (11d) and then hand-over the results to the FMM kernel. This has the great advantage that the FMM library remains completely decoupled from the application. However, this approach has the disadvantage that the application team must have some familiarity with FMM and multipoles. This may not always be the case.
Therefore, our goal is to evaluate the coefficients and within the library without exposing the functions to the application.
We now present an approach that eliminates these difficulties and it is inspired by ideas from [11, 12, 13, 14].
We begin by noting the basis function is defined by the application and that the application “knows” how to evaluate in equation (10a) at any point . Moreover, if , the integral can be accurately evaluated using simple quadrature.
Consider a sphere so that . Let . Then where . Then, substituting the definition of from equation (6a) into equation (11a) and using the orthogonality of from equation (5d), we obtain the well known relation (see, for example [14, equations 4-5]):
(12) |
Now assume that the degree of approximation used in the FMM is . Then, the maximum degree of spherical harmonics under the integral that is relevant to the computations is . Therefore, if we use a quadrature, such as a composite Gauss-Legendre-Trapezoidal rule, that can integrate spherical harmonics of degree exactly, we will be able to compute the coefficients exactly as well. Let be the number of quadrature points, , be quadrature points and their corresponding weights on , respectively, and let , for . Then, equation (12) can be approximated as:
(13) |
Therefore, to compute the coefficients , all the library needs are the values of , given by equation (10), at a set points on a specified sphere, which the application can readily supply. As remarked earlier, since the observation points are chosen to be far away from the support of , the integrand in (10a) is non-singular and hence can be evaluated using simple quadrature rules.
Using the addition theorem [10]:
(14a) | ||||
for in equation (10a) and comparing with equation (11a), it is easy to see that: | ||||
(14b) |
Comparing equation (14b) with the definition of in equation (11d), we see that:
(15) |
for the if it were also used as a testing function in a Galerkin MoM. Since:
it follows that we can use exactly the same technique (equations (12) and (13)) for computing of any testing function by evaluating the corresponding Q2M coefficients and using the relation in equation (15).
By this process, we have thus decoupled the application and the library for computing the L2P and Q2M coefficients for the Laplace equation: the application does not have to work with functions and the library does not have to know the nature of the basis and testing functions, .
Given a multipole degree and using a composite Gauss-Trapezoidal rule with quadrature points, it is easy to see that the standard approach to computing Q2M (and L2P) coefficients and the potential based approach proposed above have the same asymptotic complexity. However, the proposed method has a larger constant associated with it. We now demonstrate that this additional cost for engineering a simplified interface is negligible in the context of the much larger initialization time (the time for the matrix-vectors are not affected).
To do this, we have taken 30 distinct triangular meshes ranging in size from 200 to about 1.2 million. They were generated by Ansys Q3D Extractor for different test cases and do not share a common geometry. For our purposes, it is sufficient to replace the triangles with point sources at their centroids. The canonical matrix in equation (4) is then constructed with a multipole degree of which gives roughly 4 digits of accuracy in the matrix vector products. All the computations were done on a single core of a virtual machine with two Intel(R) Xeon(R) 6238R @2.20GHz processors with 182GB of RAM. In Fig. 3, we compare the time for evaluating the Q2M coefficients using the standard approach and from the potential samples.
It is important to note that the bulk of the initialization/setup time is spent in computing the near matrix and that the near matrix evaluation for concentrated sources gives the least possible time. This is because the commonly used basis functions require more expensive handling of singularities and near singularities. In other words, we are comparing the cost of Q2M evaluations against the best case scenario for the rest of the initialization. It is clear from Fig. 3 that although the proposed method is slightly more expensive, the increase is negligible when compared with the overall setup time. We have also compared the accuracy of the computed matrix vector products and the largest norm error observed was less than , which is comparable to the overall precision of the matrix-vector products corresponding to the degree of multipole approximation .
In the case of Helmholtz FMM that uses only multipole expansions involving and , it is clear that an approach analogous to the one described in section 3.1 can be readily developed. However, most applications of Helmholtz FMM involves electrically large structures where a diagonalized form is employed [2, 10], often combined with multipole expansions to handle multi-scale structures [15]. For such a mixed-form FMM, it is simpler to compute signature functions [10] rather than work with potentials. We now show how signature functions can be used to decouple the FMM library from the applications.
The signature function of the potential of equation (10a), now with the Green’s function for the Helmholtz equation (1), is defined by formula [10]:
(16a) | ||||
which when approximated by equation (11a) with , can be shown to be: | ||||
(16b) |
Therefore, given a signature function , the orthogonality of spherical harmonics implies that we can recover the coefficients of the multipole expansion in equation (11a), , using the formula [16]:
(17) |
It is well known that [2, 10] the signature function of the Green’s function for is given by:
Therefore, it follows that signature function of of the canonical problem in equation (10a) is given by:
(18) |
and we define the signature of the basis function by .
Using the representation [9, 10]:
(19a) | ||||
it is easy to show that the L2P coefficients: | ||||
(19b) | ||||
(19c) | ||||
are defined by the signature function of the testing function 2. |
Hence, in a mixed-form broadband FMM that uses both diagonalized and (possibly scaled) multipole expansions, the user only has to provide the signature functions in equation (18) and equation (19c) for setting up the far field calculations in Helmholtz FMM. Furthermore, these functions are easy to define and easy to calculate.
We claimed in the introduction that it is possible to represent the derivatives of far fields as product of sparse matrices. In this section, we shall demonstrate this claim. The approach relies on the following observation for the Helmholtz equation (A similar argument can be made for the Laplace equation by setting and replacing with .)
Consider the potential field due to sources in having an approximation of the form in equation (11b): | ||||
(20a) |
Since:
(20b) |
it follows that also must have an expansion of the form:
(20c) |
and that the coefficients and must be related through a linear operator so that:
Thus, for non-negative integers , an inductive reasoning shows that:
Therefore:
(21a) | |||
(21b) |
where are the same receiving coefficients defined in equation (11d). Thus, we see that partial derivatives of arbitrary order manifest as product of linear operators that can be applied to the local expansion coefficients transparent to the application/user.
So far, we have not said anything about the nature of . In the next three sections, we shall demonstrate that the finite dimensional representation of is a sparse matrix for the Laplace and low frequency Helmholtz FMM that use explicit multipole expansions and a diagonal matrix for the high frequency Helmholtz FMM that uses signature functions.
Let . We begin with the integral representation of the inner function derived in [10, equation 2.33]:
(22) |
Without the loss of generality, consider the case of . From Appendix 6.1, we have:
(23) |
Substituting equation (23) into equation (20a), we get:
(24a) |
Since if or , the above equation can be rewritten as:
(24b) |
Identifying:
and in equation (20c), we see that the matrix representation of has at most two non-zero entries per row. It is clear from Appendix 6.1 that a similar reasoning can be made for and as well.
Without the loss of generality, we consider the partial derivative with respect to . Then, it can be shown that can be expressed as a four-term recurrence of the form (see Appendix 6.2 for the derivation and for the explicit expressions):
(25a) |
A reasoning similar to that made in the previous section shows that each row of the matrix representation of has at most four entries, once again showing that the derivative can be represented as a sparse matrix. Furthermore, a closer look at equation (25a) shows that if equation (20a) has degree , then equation (20c) will have degree . However, if the degree of the “L2P” coefficients is truncated to , then the summation in equation (21b) will be truncated to degree and we can set .
A potential field having an approximation of the form in (20a), can also be represented as [2, 10]:
(26a) | ||||
(26b) | ||||
so that: | ||||
(26c) | ||||
(26d) | ||||
and we recognize as the signature function defined in equation (19c). Since: | ||||
(26e) | ||||
from equation (26a), it follows that: | ||||
(26f) | ||||
demonstrating that the partial differential operator appears as a diagonal modification to the incoming signature function . |
Note that this result has been known from the very early days of FMM and has been effectively used for computing with derivatives [17]. The novelty in our approach is that we are using it to transfer the responsibility of computing the derivative to the library instead of requiring the application do it.
We now discuss how the results from sections 3 and 4 can be used to develop an application independent library of Laplace and Helmholtz FMM. Our objective is not to describe a concrete implementation, but to discuss the essential functionality.
To that end, we divide the library functionality into two parts: the matrix build/initialization functions and matrix apply (“matrix-vector” product) functions. During the initialization, we expect the user to provide what are called “call-back” functions. The library, in turn, repeatedly calls these functions to get the information needed to complete matrix initialization. After the matrix is built, the library provides the functionality to evaluate matrix-vector products, potentially involving different combinations of derivatives.
Building the matrix consists of three phases:
The tree construction phase
The evaluation of the near interactions
The evaluation of the far field representations (“Q2M” and “L2P” coefficients).
In general, each source/receiver can be assigned a “center” and a spatial extent. The former can be captured as a array of three floating point numbers. Given that the mesh used in the discretization can be extremely non-uniform in practical cases, it is often necessary to take the spatial extent into account to ensure sufficient accuracy. This can lead to non-uniform trees with internal nodes also “hosting” sources and/or receivers. The following listing shows an example of an interface.
With the ability to compute arbitrary derivatives of the far field, it becomes necessary to handle multiple matrices as well. As a simple example, consider the following summations:
(27a) | ||||
(27b) |
Although potential and the derivatives of the far field can be computed from a single FMM representation, the four components of the near matrix must be stored simultaneously. In other words, the library needs to allow for the possibility of multiple matrix entries resulting from each pair-wise interaction. If we assume that every pair-wise near interaction results in the same number of matrix entries (although there are exceptions, this usually the case), the following interface would be adequate for most purposes.
In the above example, dim(elements)=4 and a user can return the Green’s function and its gradient as:
In section 3, we have shown that the required Q2M and L2P coefficients can be evaluated from sampled potential values or signature functions. For the Laplace equation, this can be implemented in the following way. Given a node with sources (or receivers) in it, we can construct a sphere with center, at the center of the box and a sufficiently large radius, where is the box length, and introduce a Gauss-Trapezoidal rule as discussed in section 3.1. Then, a function of the following nature can be invoked repeatedly to evaluate the potential, as defined by equation (10a) at each integration point in equation (13).
For the Helmholtz equation, we expect the user to return the signature function, defined by equation (18).
Note that in this case, we need both the center of the box and the direction vector passed to the application.
In order to offer maximum flexibility, we split the evaluation of the matrix-vector products (MVP) into three steps:
multipole_pass
: performs all the source-to-multipole (Q2M), outer-to-outer (M2M, aggregation), outer-to-inner (M2L) and inner-to-inner (L2L) translations in the standard FMM flow. This is a pre-requisite for calling the far field evaluation step below.
far_axpy
: evaluates (the integral of) the potential (or its derivative) for every testing function using the results in Section 4.
near_axpy
: evaluates the contribution due the near interaction matrix selected by the user (if there are multiple matrices involved).
The library can offer a functionality similar to the following one to accomplish these tasks:
where the array deriv specifies the orders of the partial derivatives. For example:
The motivation for this is best illustrated by an example. Towards this, consider the evaluation of the two sums in equation (27). A psuedo-code is given below.
Computation of the partial derivatives with respect and can be done analogously. Note that the multipole_pass is usually the most dominant part during a matrix-vector evaluation and it is invoked only once.
In this paper, we have proposed an approach to developing a stand-alone, application independent library of Laplace and Helmholtz FMM. Towards this end, we have demonstrated a technique to capture the essential characteristics of the problem needed for setting up the FMM – the basis and testing functions, mesh etc. – using samples of either potentials or the signature functions of a canonical problem. Furthermore, we have shown that it is possible to transfer the responsibility of computing the partial derivatives of the far field to the library, instead of burdening the user to implement complicated integrals. This is accomplished by representing partial derivatives of arbitrary orders as product of certain sparse matrices. We have also outlined a pseudo interface that illustrates how the methods can be used.
Within Ansys Inc., we have developed a flexible library, called Q3Dfastmvpack incorporating these ideas and it is currently being used by multiple Ansys products.
I would like to thank my colleagues Andy Mathis, Dalian Zheng, Eric Bracken and Indranil Chowdhury for the many discussions. I would also like to thank Werner Thiel for supporting this work.
Let in equation (22). Consider:
where we have used the facts and that . The following results can be similarly derived:
We have, from equation (19a):
(28) |
where . Noting that:
(29) |
from the definition of spherical harmonics in equation (5b), and using equation (5c), we get:
(30a) | ||||
(30b) | ||||
(30c) |
Let:
(31) |
Then, substituting equation (30) into equation (28) and using equation (31), we get:
(32a) | |||
(32b) | |||
(32c) |
Now, substituting the following well known addition theorem [9, 10]:
into equation (31), we can express:
(33a) | ||||
(33b) | ||||
where is the Gaunt coefficient defined as | ||||
(33c) | ||||
for integers and for . Using the properties of Gaunt coefficients [9], for , we have to have , even and . Thus, and and therefore: | ||||
(33d) | ||||
(33e) | ||||
showing that the right hand sides of equations (32a)-(32c) have at most four non-zero terms. |
[1] L. Greengard, “The rapid evaluation of potential fields in particle systems,” Ph.D. thesis, Yale University, 1987.
[2] V. Rokhlin, “Diagonal forms of translation operators for the Helmholtz equation in three dimensions,” Applied and Comp. Harmonic Analysis, vol. 1, pp. 82-93, 1993.
[3] W. C. Chew, J.-M. Jin, E. Michielssen, and J. M. Song, Fast and Efficient Algorithms in Computational Electromagnetics, chap. 9, Boston: Artech House, 2001.
[4] V. Rokhlin, “Rapid solution of integral equations of classical potential theory,” Journal Of Computational Physics, vol. 60, pp. 187-207, 1985.
[5] J. Carrier, L. Greengard, and V. Rokhlin, “A fast adaptive multipole algorithm for particle simulations,” SIAM Journal on Scientific and Statistical Computing, vol. 9, no. 4, pp. 669-686, July 1988.
[6] V. Rokhlin, “Rapid solution of integral equations of scattering theory in two dimensions,” Journal Of Computational Physics, vol. 86, pp. 414-439,1990.
[7] W.-J. He, X.-W. Huang, M.-L. Yang, and X.-Q. Sheng, “Massively parallel multilevel fast multipole algorithm for extremely large-scale electromagnetic simulations: A review,” Progress In Electromagnetics Research, vol. 173, pp. 37-52,2022.
[8] F. W. J. Olver, D. W. Lozier, R. F. Boisvert, and C. W. Clark, NIST Handbook of Mathematical Functions, Cambridge: Cambridge University Press, Cambridge, 2010.
[9] A. Messiah, Quantum Mechanics, New York: Dover Publications, Inc., 2014.
[10] M. A. Epton and B. Dembart, “Multipole translation theory for the three dimensional Laplace and Helmholtz equations,” SIAM J. of Scientific Computing, vol. 16, no. 4, pp. 865-897, July 1995.
[11] C. R. Anderson, “An implementation of the fast multipole method without multipoles,” SIAM Journal of Scientific and Statistical Computing, vol. 13, no. 4, pp. 923-947, July 1992.
[12] T. Eibert, “A diagonalized multilevel fast multipole method with spherical harmonics expansion of the k-space Integrals,” IEEE Transactions on Antennas and Propagation, vol. 53, no. 2, pp. 814-817, Feb. 2005.
[13] B. Dembart and E. Yip, “A 3D Fast multipole method for electromagnetics with multiple levels,” 11th Annual Review of Progress in Applied Computational Electromagnetics, Monterey, CA, vol. 1, pp. 621-628, Mar. 1995.
[14] J. Phillips and J. White, “A precorrected-FFT method for electrostatic analysis of complicated 3-D structures,” IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 16, no. 10, pp. 1059-1072, 1997.
[15] J.-S. Zhao and W. C. Chew, “Integral equation solution of Maxwell's equations from zero frequency to microwave frequencies,” IEEE Transactions on Antennas and Propagation, vol. 48, no. 10, pp. 1635-1645, Oct. 2000.
[16] B. Dembart and E. Yip, “The accuracy of fast multipole methods for Maxwell’s equations,” IEEE Computational Science and Engineering, vol. 5, no. 3, pp. 48-56, 1998.
[17] J. M. Song and W. C. Chew, “Multilevel fast multipole algorithm for solving combined field integral equations of electromagnetic scattering,” Micro. Opt. Tech. Lett., vol. 10, no. 1, pp. 14-19, Sep. 1995.
1Note that we are not providing a strict definition for the term “reside.” It is simply a rule that the user provides to determine if a given basis/testing function can be considered as belonging to a given box. For example, in the case of point particles, if the location of the particle falls into a box, it can be considered to be a resident of that box.
2Compare with equation (18) for subtle differences.
Sanjay Velamparam I obtained a Ph.D. in Engineering from the Indian Institute of Science, Bangalore, in 1997. My doctoral work was in the then nascent field of fast multipole methods (FMM). Subsequently, working with Dr. Weng Chew at the University of Illinois at Urbana-Champaign, I pioneered the parallelization of Helmholtz FMM on distributed memory computers.
I was with Ansoft Corporation (currently Ansys Inc.) from 2002-2005 working on fast integral equation methods for signal integrity applications. In 2007, I joined Acceleware Corporation, Calgary, and worked on linear algebraic algorithms for GPU computing. In 2010, I joined Apache Design Solutions, which was later acquired by Ansys. I have been working on fast integral equation methods for several Ansys products such as Ansys Q3D Extractor and SIwave™ since 2010.
I enjoy long bicycle rides, especially mountainous routes, running, and generally love the outdoors. I am married and we are fortunate enough to live in the foothills of the majestic Rocky Mountains in Northern Colorado.
ACES JOURNAL, Vol. 39, No. 5, 405–415
doi: 10.13052/2024.ACES.J.390504
© 2024 River Publishers
B. Some notations and definitions
III. ABSTRACTIONS FOR THE FAR FIELD COMPUTATIONS
A. Evaluation of Q2M and L2P coefficients for the Laplace equation
B. Evaluation of Q2P and L2P coefficients for the Helmholtz equation
IV. COMPUTATION OF THE DERIVATIVES OF THE FAR FIELD
A. Derivatives for the Laplace kernel
B. Derivatives for the Helmholtz kernel with multipoles
C. Derivatives for the Helmholtz kernel in diagonalized form
V. A PSEUDO-EXAMPLE FOR A LIBRARY INTERFACE