ScalFmm  1.4
Downloading, Building and Installing ScalFMM

On this page, you will find all the requirements for building and installing ScalFMM.

Download ScalFMM

To download ScalFmm go on .

You can stay in touch of the updates and new version by registering to the users mailing list ( which has a very low traffic (one email per month) at :


  • CMake for compiling, ccmake for configuring the build. Version or later
  • Open MP
  • MPI, if you want to use distributed version of the algorithm (Optional)
  • A compiler supporting C++ 2011
  • BLAS, FFTW, ... (Optionals)


How to build ScalFMM

  • Go to scalfmm/Build directory
  • type $> cmake ..
    • If you want to enable MPI, use $> cmake .. -DSCALFMM_USE_MPI=ON
  • then configure your build with $> ccmake .. if needed
  • then type $> make name_of_exec

an example :

Configuration of the build

This is all the build options you can modify.

  • CMAKE_INSTALL_PREFIX : to choose where to install ScalFmm
  • SCALFMM_USE_MPI : to use and enable MPI. Warning, you need to use this parameter at the first cmake command you write.
  • SCALFMM_ATTACHE_SOURCE : to build with -g (which enables debugging with release binaries)
  • SCALFMM_BUILD_EXAMPLES : to build the examples
  • SCALFMM_BUILD_TESTS : to build the tests
  • SCALFMM_BUILD_UTESTS : to build the unit tests
  • SCALFMM_BUILD_DOC : to enable make doc to generate the documentation
  • SCALFMM_USE_ADDONS : to activate add ons
    • SCALFMM_ADDON_FMMAPI : to build Fmm Api
  • ScalFMMUSE_MEM_STATS : to use memory stats (which count any new/delete done during a simulation)
  • SCALFMM_USE_BLAS : to enable BLAS (needed by Chebyshev interpolation kernel)
    • SCALFMM_USE_MKL_AS_BLAS : to use MKL as blas
  • SCALFMM_USE_FFT : Use FFTW needed by the uniform interpolation kernel
    • ( SCALFMM_USE_MKL_AS_FFTW : to use MKL as FFTW)
  • SCALFMM_USE_LOG to print output debug information during the execution
  • SCALFMM_USE_ASSERT enable safe tests during execution
  • SCALFMM_USE_SSE compile with SEE support
  • SCALFMM_USE_AVX compile with AVX support

Once the library is built, you may want to install it : $> make install . Note that it is not an obligation to install ScalFmm to use it. You can build it and use it from the Build directory.

The whole project is documented using Doxygen. You can build the doc by typing $> make doc in the Build directory.

Notice that if you would like to create you own executable and rely on ScalFMM you can simply create a .cpp file and store it inside the Tests/Utils directory. Then by running cmake one more time (cmake ..) you will be able to compile your file without the need to change CMake files.