Boundary integral equations (BIEs) are a wonderfully efficient way to solve PDE boundary value problems (BVPs) or eigenvalue problems (EVPs) with constant (or piecewise-constant) coefficients. This includes elliptic PDE such as the Laplace, Helmholtz, Maxwell, and Stokes equations. Much of my recent research is on better ways to do this. Here are some resources on theory and numerical methods.

- David Colton and Rainer Kress,
*Integral equation methods in scattering theory*(Wiley, 1983). Helmholtz and Maxwell equations in 3D. Chapter 3 has useful proofs including the "inside-out" trick for existence for the transmission BVP. - David Colton and Rainer Kress,
*Inverse acoustic and electromagnetic scattering theory*(Springer, 1998). Has a good summary for the Helmholtz (including the 2D case, and numerics including the Martensen-Kussmaul spectral quadrature) and Maxwell equations. - David Colton,
*Partial Differential Equations: An Introduction*(Random House, 1988). Unusally detailed on Bessel functions and the Helmholtz equation in 2D. Includes proof of jump relations that relies on "blurring" the boundary. - Rainer Kress,
*Linear Integral Equations*(Springer, 1999). Chapter 6 has potential theory for Laplace equation. Chapter 12 has the Nystrom method. - My handwritten class notes for Math 126. Starting at p.25, although the earlier stuff is useful numerical analysis background. This draws from the above Kress and Colton books.

Established numerical methods:

- Review talk on BIE Nystrom quadratures from CSE19 in Spokane, WA: slides (3.6 MB).
- Go through the homework exercises in Math 126, starting around HW4 #2. Note, there are solution notes.
- My tutorials from our 2014 CBMS conference:
- tutorial on quadrature for BIEs (with example code bundle and exercises). This covers mostly Laplace BVPs on smooth curves in 2D, both global and panel quadratures. The only code currently included for Helmholtz is based on a simple but somewhat inefficient Kapur-Rokhlin scheme.
- Handwritten notes from the accompanying chalk talk. Sketches the BVP setup and various 2D schemes for handling weakly singular kernels, mostly for the Helmholtz equation on smooth curves.

- Lectures 5-7 by Rikard Ojala in the course DN2255 at KTH.
- Review and comparison article by myself with Gunnar Martinsson, Sijia Hao, and Patrick Young (2011). Covers mostly the Helmholtz 2D case on smooth curves, which involves logarithmically singular kernels.

More advanced numerical methods and research for BVPs:

- Johan Helsing's tutorial paper and Matlab codes. Covers his accurate evaluation schemes close to panels in 2D, and his recursive corner compression.
- Johan Helsing and Anders Holst's 2014 comparison of panel-based quadrature for Helmholtz in 2D on smooth curves, and accurate close-evaluation schemes.
- My QBX idea and close evaluation paper. Includes a proof of the "5h-rule" for when you're in the far field of a quadrature rule for a layer potential. Accompanying codes for this paper
- My close evaluation schemes for Laplace and Stokes, tested out in Stokes problems with Shravan Veerapaneni and Bowei Wu (2014). Includes pretty well documented and clean Matlab codes.
- Serkh-Rokhlin analytic corner expansions for Laplace and Helmholtz BIE in the neighborhood of corners with straight edges, enabling generalized quadratures with minimal degrees of freedom and no panel refinement.

Methods specific to eigenvalue problems:

- My work with Andrew Hassell on using BIE operators for the 2D eigenvalue problem with smooth boundary. Numerical methods from this paper can be accessed in Sec. 9 of the The MPSpack tutorial.
- Lin Zhao's work with myself on improving the BIE method for the EVP (2014). 2D smooth boundaries but including multiply-connected cases.
- ...

- MPSpack includes code for Laplace and Helmholtz BIEs in 2D, including various quadrature schemes for smooth curves and corners, and periodization methods. The tutorial (Sec. 7-9) has the BIE commands. Development stopped around 2016; it is more of historical interest.
- BIE2D Matlab software package, which has Laplace and Stokes global quadratures, including the current best implementation of their barycentric-style close-evaluations. This is far from complete; however, it is simple to extract the routines you want.
- pybie2d, David Stein's extension of BIE2D in python, which has object-oriented construction of boundary objects, etc.
- pytential by Andreas Klöckner, for fast 2D and 3D later potential evaluation in python, via QBX, etc.
- BEM++ by Timo Betcke and colleagues at UCL. This is a mature and professional low-order Galerkin code in 3D, in C++ with python wrappers, including Laplace, Helmholtz and Maxwell.

*This work was enabled in part by NSF grant DMS-1216656.
*