Lorena A. Barba group

Validation of the PyGBe code for Poisson-Boltzmann equation


The PyGBe code solves the linearized Poisson-Boltzmann equation using a boundary-integral formulation. We use a boundary element method with a collocation approach, and solve it via a Krylov-subspace method. To do this efficiently, the matrix-vector multiplications in the Krylov iterations are accelerated with a treecode, achieving O(N log N) complexity. The code presents a Python environment for the user, while being efficient and fast. The core computational kernels are implemented in Cuda and interface with the user-visible code with PyCuda, for maximum ease-of-use combined with high performance on GPU hardware. This document provides background on the model and formulation of the numerical method, evidence of a validation exercise with well-known benchmarks---a spherical shell with a centered charge and one with an off-center charge--- and a demonstration with a realistic biological geometry (lysozyme molecule)



This research is made possible by support from the Office of Naval Research, Applied Computational Analysis Program. LAB also acknowledges support from NSF CAREER award OCI-1149784.




Technical report made available under a CC-BY license. It describes the validation of the PyGBe code for Poisson-Boltzmann equation, which offers a Python interface to the user and high-performance thanks to internal computations being performed on GPU hardware using Cuda. The validation uses a standard benchmark (the Kirkwood sphere) and compares with other openly available code.