Mentions légales du service

Skip to content
Snippets Groups Projects

ScalFMM: Fast Multipole Method

pipeline status coverage report


⚠️ ScalFMM has moved to Inria's GitLab: https://gitlab.inria.fr/solverstack/ScalFMM


ScalFMM is a C++ library that implements a kernel independent Fast Multipole Method.

Copyright Inria, please read the licence.

Requirements

The following are optional:

  • Doxygen to build the documentation.
  • An MPI implementation to build the distributed files.
  • Custom BLAS, FFT implementations.
  • StarPU for the relevant FMM implementations.

Get and Build ScalFMM

To use last development states of ScalFMM, please clone the develop branch. Note that ScalFMM contains two git submodules morse_cmake and inastemp. To get sources please use these commands:

git clone --recursive git@gitlab.inria.fr:solverstack/ScalFMM.git -b develop

or

git clone git@gitlab.inria.fr:solverstack/ScalFMM.git
cd ScalFMM
git submodule init
git submodule update

Move to the build folder

cd scalfmm/Build
# Use cmake, with relevant options
cmake .. # -DSCALFMM_USE_MPI=ON

The build may be configured after the first CMake invocation using, for instance, ccmake or cmake-gui.

# Still in the Build folder
ccmake ../
# Or
cmake-gui ../

The binaries are then compiled calling make. They can be found in scalfmm/Build/Tests/{Release,Debug}/...

An example build using StarPU:

cmake .. -DSCALFMM_USE_STARPU=ON -DSCALFMM_USE_CUDA=OFF -DSCALFMM_USE_OPENCL=OFF  \
               -DHWLOC_DIR=/home/berenger/Download/hwloc-1.10.0/install/      \
               -DSTARPU_DIR=/home/berenger/Download/starpu-work/StarPU/installwithfxt

Build the doc:

cd scalfmm/Build
cmake .. -DSCALFMM_BUILD_DOC=ON # or if cmake has already been called, ccmake .
make doc

This will generate the documentation in HTML format in the Build/Doc/html folder. You can create a local server to access it using Python

# From the Build folder
cd Doc/html
python3 -m http.server # or python2 -m SimpleHTTPServer

The documentation can then be accessed from an internet browser at the address localhost:8000.

Help and News

You can subscribe to the scalfmm-public-users@lists.gforge.inria.fr mailing list (http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/scalfmm-public-users). The list is very low trafic (~ 2 mails per year), we will let you know of improvements and releases.

Contact the developers at : scalfmm-public-support@lists.gforge.inria.fr

Folder structure

  • Src : library core.
  • Data : particle distribution examples.
  • Examples : common usage examples.
  • Doc : documentation configuration.
  • UTests : unit tests.
  • Tests : examples to know how to use scalfmm/put particles in the tree/iterate on the tree...
  • Utils : some scripts and binaries to handle data files.