Skip to content
pigay edited this page Jul 17, 2012 · 1 revision

LibAran is a Free Software implementation of the Fast Multipole Method (FMM) for N-Body problems in 2 and 3 dimensions.

Written in C, this library is designed to be easily embedded in existing software, provided they are written in a language that can interface with a C library. The LibAran API allows to apply the FMM to arbitrary user data structures (user must provide functions for manipulating its data. For example, see the translation operators P2M, L2P, …).

One of the main LibAran objectives is to enable a relatively easy extension to other N-Body potentials (the only potentials tested at the moment are Newton/Coulomb potentials, both in 2 and 3 dimensions). Adding a new potential (e.g. Helmholtz potential) should be done with minimal modifications, other FMM algorithms staying unchanged.

LibAran try to keep an as wide as possible field of application. Particular attention is payed to have an implementation independent from possible use cases. For example, the implemented algorithms are tested on a wide sample of particle distributions, in order to adapt them to a wide field of application. Moreover, data structures and algorithms allow easy handling of problems where particles are moving through time (astrophysics, molecular dynamics).

The library has a two layers design, split into a geometrical algorithms library (LibVsg: for building, manipulating and traversing the Quad and Octal trees needed for 2D and 3D FMM), and a numerical computations library more specific to the FMM (Multipole and Local developments, translation operators, spherical harmonics, Laurent series, … in LibAran itself).

LibAran relies on a limited number of mandatory software dependencies: mainly Glib-2 (www.gtk.org) through LibVsg, other dependencies being optional (MPI, …).

Clone this wiki locally