KIFMM3d Download and Installation

The Kernel-Independent Fast Multipole (FMM) 3D code (kifmm3d) requires the installation of several libraries. Before downloading the kifmm3d code, make sure to install the necessary libraries listed on the links page.

Download

The most current version of the code and documentation can be downloaded here

Compilation and Testing

Once the Necessary libraries are installed and running properly, you can compile the FMM code as follows:

  • go to directory kifmm3d/common and type:
    make
  • go to directory kifmm3d/fmm3d_mpi and type:
    make
  • go to directory kifmm3d/fmm3d_mpi and type:
    make tt0
    make tt1

To run the test examples, do the following:

  • 1. For non-uniform data distribution:
    go to kifmm3d/fmm3d, and do the following:

    (1) For single layer laplace kernel, low accuracy, type:
    mpirun -np N tt0 -options_file options_0

    (2) For double layer stokes kernel, mid accuracy, type:
    mpirun -np N tt0 -options_file options_1

    (3) For single layer navier kernel, high accuracy, type:
    mpirun -np N tt0 -options_file options_2

  • 2. For uniform data distributino
    go to kifmm3d/fmm3d_mpi, and do the following:

    (1) For single layer laplace kernel, low accuracy, type:
    mpirun -np N tt1 -options_file options_0

    (2) For double layer stokes kernel, mid accuracy, type:
    mpirun -np N tt1 -options_file options_1

    (3) For single layer navier kernel, high accuracy, type:
    mpirun -np N tt1 -options_file options_2

Similar instructions are available for the sequential code in the home directory of the code. However, instead of running the sequential code, we suggest installing the parallel code and using mpirun with the number of processors set to 1. Example:
mpirun -np 1 tt0 -options_file options_0
The above statement runs the code tt0 on one processor, and this will work for PETSc installed properly on a uni-processor machine.