WBFMM is a Wide Band (soon) Fast Multipole Method library for the Helmholtz equation, with an extension for the Laplace (static) problem. It efficiently computes an estimate of the field generated by distributions of point sources at a set of target points.
The basic algorithms are those of Gumerov and Duraiswami (details are given at appropriate points in the in-code documentation).
WBFMM requires
- BLAS wrapper https://github.com/mjcarley/blaswrap
which is a wrapper for BLAS routines used in the code.
Installation instructions are given in the file INSTALL. If you have downloaded the github distribution, you will need to set up the automake system by running
./autogen.sh
in the root directory of the source code. You can then go through the usual autotools configure process
./configure (options)
WBFMM gives quite poor performance with the default -O2 optimization
from autotools. The default compiler flags in the configuration are
-O3 -g. If you want to override this default (for debugging, for
example), you can use the CFLAGS variable. For example, to switch
off all optimization and use debugging:
./configure CFLAGS="-O0 -g" ...
If you want to use code optimized with AVX extensions (this is experimental but does give a performance improvement in the code where it is in use) pass the compiler flag WBFMM_USE_AVX. For example:
./configure CFLAGS="-O3 -g -DWBFMM_USE_AVX" ...
To compile the code:
make
and to install it:
make install