Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time
August 3, 2023 02:52
December 5, 2022 17:14
June 30, 2021 13:16
September 20, 2023 15:14
December 5, 2022 17:14
September 20, 2023 15:14
August 3, 2023 00:24
March 1, 2020 09:29
September 20, 2023 15:02
October 26, 2018 21:28
August 1, 2023 14:43
January 30, 2014 18:34
January 30, 2014 18:34
January 30, 2014 18:34

PVFMM Build Status Stable Version Latest Release

What is PVFMM?

PVFMM is a library for solving certain types of elliptic partial differential equations.

  • We support Stokes, Poisson, and Helmholtz problems on the unit cube, with free-space or periodic boundary conditions, with constant or mildly varying coefficients. Our method is based on volume potential integral equation formulation accelerated by the Kernel Independent Fast Multipole Method.

How to get PVFMM

For the latest stable release of PVFMM visit


PVFMM is distributed under the LGPLv3 licence. See COPYING in the top-level directory of the distribution.

Installing PVFMM

To install PVFMM, follow the steps in the INSTALL file, which is located in the top directory of the source distribution.


The file examples/Makefile can be used as a template makefile for any project using the library. In general the MakeVariables file should be included in any makefile and CXXFLAGS_PVFMM and LDFLAGS_PVFMM should be used to compile the code.

Two very simple examples illustrating usage of the library are available: For particle N-body : examples/src/example1.cpp For volume potentials: examples/src/example2.cpp

To compile these examples: make examples/bin/example1 make examples/bin/example2

  • The volume potentials example will take a long time, the first time it is used, since it has to precompute quadrature rules. This data is saved to a file and used for subsequent runs. See INSTALL for the configure option '--with-precomp-dir=DIR' to set the default path for precomputed data.


This software has been developed as part of the work supported by,

  • US National Institutes of Health/10042242
  • US Department of Energy/DE-SC0010518
  • US Department of Energy/DE-SC0009286
  • US National Science Foundation/CCF-1337393
  • US Air Force Office for Scientific Research /FA9550-12-10484

The authors would also like to thank ORNL/OLCF and TACC for providing access to computing resources for the development, testing and benchmarking of this software.