Code

 

PetFMM

PetFMM is a portable, extensible software library for N-body interactions, using the fast multipole method (FMM). The software is built to be used as a part of the PETSc library, and it is distributed as open source.  It can be used either in serial or parallel mode.

A prominent feature of PetFMM is its capacity for dynamic load balancing, based on an optimizing strategy for distribution of work among processors and a model of both work estimates and communication estimates.

Authors:  Felipe A Cruz, Matthew G Knepley, Lorena A Barba

First release:  May, 2009.

The first release performs the fast calculation of the velocity induced by N smooth vortex particles in 2D. Ample verification and testing of this code has been performed, as well as a strong-scaling study with close to a million particles in up to 64 processors.

The library is currently able to achieve over 90% parallel efficiency for 32 processors and over 85% parallel efficiency for 64 processors.


Publications:

  1. “PetFMM–A dynamically load-balancing parallel fast multipole library”, Felipe A Cruz, Matthew G Knepley, Lorena A Barba.  Submitted.
    [arXiv]

  2. “Characterization of the accuracy of the fast multipole method in particle simulations”, Felipe A Cruz, Lorena A Barba
    Int. J. Num. Meth. Engrg., 2009 [doi]
    [arXiv]


Download:

[Feb. 2010] We have moved the repository to Bitbucket, where we can have a code tracker, wiki, and issue tracker.

  1. distribution of petfmm-dev >> http://bitbucket.org/petfmm/petfmm-dev/get/tip.zip

  2. Version-controlled repository >> http://bitbucket.org/petfmm/petfmm-dev/

The software library is open source under the conditions of the PETSc license, even less restrictive than the BSD license.

User’s Manual:

  1. Not yet complete, but nevertheless useful ... [PetFMM-UserManual.pdf]


Contact:

If you have interest or any questions about PetFMM, join the Mailing list and post there —traffic is very low and you can unsubscribe at any time:

http://barbagroup.bu.edu/mailman/listinfo/petfmm




  1. PetRBF

  2. PetFMM

  3. PyFMM

  4. PyRBF