The
program pFFT++ computes single-layer potential,
double-layer potential and their gradients on *N* panels due to sources on *N*
panels in nearly O(*N*) time and with O(*N*) memory. Combined with an
iterative solver (such as GMRES or QMR), pFFT++ could
be used to efficiently solve the integral equations commonly seen in many
engineering applications. It was written in C++ and developed on Linux
platform. The generic programming technique and the standard template library
(STL) are extensively used in pFFT++.

The
underlining algorithm of pFFT++, the pre-corrected
FFT algorithm, is applicable to any kernels that are reciprocal
and shift invariant. Three panel integration routines are included. Theses
routines could calculate the integration of 1/r, e^{ikr}/r
and e^{kr}/r (k is real) and their gradients
over a flat panel. These kernels are the Green’s functions of 3D Poisson
equation, 3D Helmholtz equation and 3D Poisson Boltzmann equation, respectively. The program pFFT++ itself, however, is entirely independent of the
panel integration routine. So user could add new integration routines to
accommodate new kernels. The package also includes an iterative solver routine
GMRES and a c++ interface to the sparse matrix solver SuperLU.
With pFFT++ as the acceleration engine, GMRES as the
iterative solver and a sparse matrix as pre-conditioner (stored and LU factored
by SuperLU), one could easily construct a fast
integral equation solver for a specific application problem.

·
Download softwares:

o pFFT++: source code and documentation in a tgz
file (v1.0 1.2Mb, v1.1
1.2Mb, v1.2
1.2Mb)

o fftcap++: source code and documentation in a tgz
file (v1.0 4.9Mb)

This
is a simple fast capacitance extraction code. It is used to demonstrate how to
construct a fast integral equation solver using pFFT++,
gmres and superLU. For your
convenience, pFFT++ 1.2 is also included, along with
some FastCap input files.

·
These are a series of lectures on the algorithms and
the implementation of pFFT++.

o Projection and Interpolation

o More on projection and interpolation

o Direct matrix, pre-correction and grid selection

·
These are some of the applications of pFFT++

o Computational biology (handout)

o Computational aerodynamics (handout)

·
This paper (PDF, PS) describes the algorithm and the performance of pFFT++.

·
I
gave this talk at a weekly seminar
at the Math department of

·
These are the outside libraries included in pFFT++

o FFTW

o clapack

o SuperLU

o TNT

·
Release note

o Nov, 2001
version alpha

o February, 2002
version beta

o January, 2003
version 1.0

o February, 2003
version 1.1.

o February, 2007
version 1.2. I fixed two minor problems and now the binary compiled with gcc 3.2 and 3.3 have passed all tests.