Validation of the PyGBe code for Poisson-Boltzmann equation with boundary element methods
Any type of content formally published in an academic journal, usually following a peer-review process.
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.