ScalFMM is a C++ library that implements a kernel independent Fast Multipole Method.
Copyright Inria, please read the licence.
- CMake v3.10.0 or later
- C++ compiler that supports
- C++14 compiler support list
- OpenMP
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.
# Move to the build folder
mkdir Build
cd 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
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
.
soon available
- 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.