Skip to content
icyspiritPublic

About

Simple fast multipole method (FMM) library

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

SimpleFMM

A simple Fast Multipole Method (FMM) implementation using MPI shared memory and OpenMP SIMD vectorization.
This is a header-only library and can be easily included in any C++ project.

Dependencies and Compilation

  • C++17
  • MPI
  • OpenMP

To compile:

make CC=$YOUR_OWN_CXX_COMPILER
./a.out               # or: mpirun -n $NP ./a.out

Usage

See main.cpp for an example of how to use the library.

Multipole to local translation goes through plane waves, which is 2 to 2.8x faster than the rotation form. -DFMM_M2L_ROTATION selects the rotation form instead, and with it -DFMM_M2L_DIRECT translates directly rather than rotate-translate-rotate. The quadrature table is picked from p; -DFMM_EXP_DIGITS=3|6|9 overrides it. make builds fmm_test from main.cpp; make CXXFLAGS=-DNDEBUG adds flags.

License

This project is licensed under the MIT License.

About

Simple fast multipole method (FMM) library

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages