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, eikr/r and ekr/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.