Code
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.
- 8 Aug. 2012— I have endorsed the Science Code Manifesto.
Related Links
- “Reproducible Research” by Sergey Fomel and Jon F. Claerbout, Computing in Science & Engineering, Vol. 11(1), pp. 5–7, Jan/Feb 2009.
- “The Legal Framework for Reproducible Scientific Research” by Victoria Stodden, Computing in Science & Engineering, Vol. 11(1), pp. 35–40, Jan/Feb 2009.
Codes released by the group
PyGBe
Released: July 2012 Team members: Christopher Cooper, Natalia ClementiA code for Poisson-Boltzmann equation with boundary element methods and treecode fast summation, with capability of running on GPU hardware.
- "Validation of the PyGBe code for Poisson-Boltzmann equation with boundary element methods", Christopher D. Cooper, L. A. Barba. (25 January 2013). 10.6084/m9.figshare.154331 // Code repository
Technical Report published on figshare under CC-BY-NC-SA.
cuIBM
Released: July 2012 Team members: Anush Krishnan, Simon Layton, Olivier MesnardThis 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.
- "Validation of the cuIBM code for Navier-Stokes equations with immersed boundary methods", Anush Krishnan, L. A. Barba. (6 July 2012). 10.6084/m9.figshare.92789 // Code repository
Technical report published on figshare under CC-BY-NC.
ExaFMM
Released: November 2011 Team member: Rio YokotaThis code was released at the Supercomputing 2011 conference, with a poster showcased at the NVIDIA booth.
- "ExaFMM: An open source library for Fast Multipole Methods aimed towards Exascale systems", L. A. Barba, Rio Yokota. (31 May 2012). 10.6084/m9.figshare.92166
Poster, published on figshare under CC-BY
- "ExaFMM: An open source library for Fast Multipole Methods", L. A. Barba, Rio Yokota. (18 June 2012). 10.6084/m9.figshare.92426
Trifold brochure, distributed with the exaFMM poster, published on figshare under CC-BY
GemsFMM
Released: July 2010 Team member: Rio YokotaThe 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.
- "Treecode and fast multipole method for N-body simulation with CUDA", Rio Yokota, L. A. Barba. (2011). 10.1016/B978-0-12-384988-5.00009-7 // Preprint arXiv:1010.1482
Ch. 9 in GPU Computing Gems Emerald Edition, Wen-mei Hwu, ed.; Morgan Kaufmann/Elsevier (2011) pp. 113–132. ISBN: 978-0-12-384988-5
PetRBF
Released: September 2009 Team members: Rio Yokota, Matt KnepleyPetRBF 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.
- "PetRBF—A parallel O(N) algorithm for radial basis function interpolation", Rio Yokota, L. A. Barba, Matthew G. Knepley. Comput. Meth. Appl. Mech. Eng., 199(25–28):1793–1804 (May 2010). 10.1016/j.cma.2010.02.008 // Preprint arXiv:0909.5413
- A summary of this project is also available among the Boston University research-computing briefs.
PetFMM
Released: May 2009 Team members: Felipe Cruz, Matt KnepleyPetFMM 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.
- "PetFMM–A dynamically load-balancing parallel fast multipole library", Felipe A. Cruz, Matthew G. Knepley, L. A. Barba. Int. J. Num. Meth. Eng., 85(4):403–428 (January 2011). 10.1002/nme.2972 // Preprint arXiv:0905.2637
PyRBF
Released: March 2009 Team member: Rio YokotaPyRBF 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.
PyFMM
Released: February 2008 Team member: Felipe CruzPyFMM is a Python implementation of the fast multipole method. Get the code (under MIT license) from the GitHub repository.