LP2D tools for applying layer potentials to densities on curves in 2D
This links against the FMMLIB2D library of Greengard-Gimbutas 2011 to
compute the self-interation of 2D Helmholtz SLP and DLP on potentials
and normal derivatives on a single smooth closed curve. The curve is
specified by equally-spaced quadrature nodes in the curve
parametrization, the normals at the nodes, and the parametric speed at
the nodes. The main content here is applying Alpert corrections in an
efficient manner for the S, D, D^T operators. (The codes also apply
them to the T operator, but this would only be meaningful when the
difference of T_1-T_2 is taken at two wavenumbers.) The code also
allows for the interaction of nearest-neighbor copies of the curve to
be included, useful for periodic grating scattering problems.
Thanks to Mike O'Neil and Zydrunas Gimbutas for pieces of their code.
(C) Alex Barnett 2011-2012.
Codes in this directory:
lpclosedcurve.f - main library (fortran 90)
lpevalselfcc_dr.f - example fortran driver, tests curve self-evaluation
using interior GRF (S & D operators)
lp2d.mw - MWrap headers to create the MATLAB MEX interfaces:
lpevalselfcc.m : MATLAB interface to lpevalselfcc
testkernel.m : for debugging
dummy.m : ditto
lp2d.mexglx : the resulting MEX executable
testlpevalselfcc.m - example MATLAB driver for lpevalselfcc, tests GRF
testlpevalselfcc_mpspack.m - MATLAB driver testing lpevalselfcc against MPSpack
(needs MPSpack, obviously)
makefile - compiles library and fortran driver into ./lp2d
makefile.mwrap - calls MWrap (must be in your path) to make MATLAB
MEX interfaces
README - this file
INSTALL - installation instructions
History:
10/17/12: adjusted library locations and docs for FMMLIB2D rather than HFMM2D
3/24/11: added check QP-nei-copies-summing in lpevalselfcc_dr.f
3/19/11: working version completed.