Related Experiment Video
Updated: Apr 23, 2026

Rapid in-silico Battery Electrolyte Electrochemical Reaction Generation using 3T-VASP Multi-Scale Energy Minimization
Published on: August 22, 2025
A biomolecular electrostatics solver using Python, GPUs and boundary elements that can handle solvent-filled cavities
Christopher D Cooper1, Jaydeep P Bardhan2, L A Barba1
1Mechanical Engineering, Boston University, Boston, MA, 02215 U.S.A.
Abstract:
The continuum theory applied to biomolecular electrostatics leads to an implicit-solvent model governed by the Poisson-Boltzmann equation. Solvers relying on a boundary integral representation typically do not consider features like solvent-filled cavities or ion-exclusion (Stern) layers, due to the added difficulty of treating multiple boundary surfaces. This has hindered meaningful comparisons with volume-based methods, and the effects on accuracy of including these features has remained unknown. This work presents a solver called PyGBe that uses a boundary-element formulation and can handle multiple interacting surfaces. It was used to study the effects of solvent-filled cavities and Stern layers on the accuracy of calculating solvation energy and binding energy of proteins, using the well-known apbs finite-difference code for comparison. The results suggest that if required accuracy for an application allows errors larger than about 2% in solvation energy, then the simpler, single-surface model can be used. When calculating binding energies, the need for a multi-surface model is problem-dependent, becoming more critical when ligand and receptor are of comparable size. Comparing with the apbs solver, the boundary-element solver is faster when the accuracy requirements are higher. The cross-over point for the PyGBe code is in the order of 1-2% error, when running on one gpu card (nvidia Tesla C2075), compared with apbs running on six Intel Xeon cpu cores. PyGBe achieves algorithmic acceleration of the boundary element method using a treecode, and hardware acceleration using gpus via PyCuda from a user-visible code that is all Python. The code is open-source under MIT license.
More Related Videos
Related Concept Videos
Electrostatic Boundary Conditions
The surface integral of an electric field is given by Gauss's law in integral form and is related to...
Electrostatic Boundary Conditions in Dielectrics
Consider a case where both the mediums across a boundary are two different dielectric materials. Recall that the electric field and electric displacement are proportional and related through the material's permittivity....
Biot-Savart Law: Problem-Solving
Consider a mobile phone battery bank as a source of steady current, which flows through the wire connected between the two. What is the magnitude of the magnetic field created by this current at a field point P?
To estimate the magnitude of the total magnetic field, we first consider a small current element of length dl, at a distance r from the field point. Now the following...
Gauss's Law in Dielectrics
Maxwell-Boltzmann Distribution: Problem Solving
This distribution function f(v) is defined by saying that the expected number N (v1,v2) of particles with speeds between v1 and v2 is given by
Boundary Conditions for Current Density

