Skip to content
This repository has been archived by the owner on Jul 10, 2024. It is now read-only.

polatory/ScalFMM

Repository files navigation

ScalFMM: Fast Multipole Method


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.

Build

# 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

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

soon available

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.