Lorena A. Barba group


Our philosophy about sharing code

Scientific codes are tools—or you can view them as protocols to use a tool: the computer. When we share our tools and protocols for making science, and others use them for their discoveries, it multiplies our impact in science. This is one, rather philosophical, reason for sharing our codes.

A more practical reason for publishing our codes is reproducibility. It is a long tradition of science that experiments are to be reported so that others can repeat them. In experimental work, this often means a thorough description of materials, methods, and protocols.

So that others can repeat our results, we reveal our “methods”—the mathematical models, algorithms, and implementation in a programming language.

Related Links

Codes released by the group


Released: July 2012
Team members: Christopher Cooper, Natalia Clementi

A code for Poisson-Boltzmann equation with boundary element methods and treecode fast summation, with capability of running on GPU hardware.


Released: July 2012
Team members: Anush Krishnan, Simon Layton, Olivier Mesnard

This is a Navier-Stokes solver in two dimensions using the immersed boundary method, and running on GPU hardware. The three-dimensional extensions are planned for year 2013.


Released: November 2011
Team member: Rio Yokota

This code was released at the Supercomputing 2011 conference, with a poster showcased at the NVIDIA booth.


Released: July 2010
Team member: Rio Yokota

The Gems FMM code was produced to accompany the Chapter contribution to the new GPU Gems, Vol. IV book, to be published by Nvidia late in 2010. This is a CUDA implementation of the treecode and FMM for the Laplace kernel. Find more information and get the code (under the MIT license) from the project’s GitHub repository.


Released: September 2009
Team members: Rio Yokota, Matt Knepley

PetRBF is an algorithm for the solution of radial basis function interpolation with Gaussian bases that scales as O(N) in time and memory. It uses a restricted additive Schwarz method to solve large interpolation problems, in parallel. The implementation is based on PETSc. Get the code (under MIT license) from the GitHub repository.


Released: May 2009
Team members: Felipe Cruz, Matt Knepley

PetFMM is a portable, extensible fast multipole library. It performs the fast calculation of the velocity induced by N smooth vortex particles in 2D. Get the code (under MIT license) from the Bitbucket repository.


Released: March 2009
Team member: Rio Yokota

PyRBF is a Python implementation of a fast method for solving radial basis function (RBF) interpolation using Gaussian bases. Get the code (under MIT license) from the GitHub repository.


Released: February 2008
Team member: Felipe Cruz

PyFMM is a Python implementation of the fast multipole method. Get the code (under MIT license) from the GitHub repository.