1. Introduction

APBS (Adaptive Poisson-Boltzmann Solver) is a software package for the numerical solution of the Poisson-Boltzmann equation (PBE), one of the most popular continuum models for describing electrostatic interactions between molecular solutes in salty, aqueous media. APBS was designed to efficiently evaluate electrostatic properties for a wide range of length scales to enable the investigation of molecules with tens to millions of atoms.

The iAPBS package provides a C/C++ and Fortran interface to the APBS library through a single function call. The interface code can be compiled as a library (libiapbs.a) which can be linked with a Fortran or C/C++ application thus making most of APBS functionality available from within any C/C++/Fortran code.

Please acknowledge your use of iAPBS by citing:

Robert Konecny, Nathan A. Baker and J. Andrew McCammon, iAPBS: a programming interface to Adaptive Poisson-Boltzmann Solver (APBS), Computational Science & Discovery, 2012, 5, 015005 pdf.

The iAPBS development is supported by grants from the National Center for Research Resources (5P41RR008605-19) and the National Institute of General Medical Sciences (8P41GM103426-19) from the National Institutes of Health.

2. Implementation of the iAPBS interface

The iAPBS interface is implemented as a single wrapper function to the APBS C library. This function (apbsdrv) can be called from a C, C++ or Fortran code. The function accepts several input parameters - coordinates of atoms, their charges and radii and APBS calculation parameters. The function returns calculated electrostatic energies and forces. Various calculated properties like electrostatic potential, solvent accessible surface and charge can also be written to files and subsequently visualized by external applications.

For detailed description of required input and output parameters please see src/apbs_driver.h and src/wrapper_inc.f and iAPBS Programmer’s Guide.

The iAPBS distribution also includes a simple reference Fortran code (src/wrapper.f) which reads input data from an external file, calls the apbsdrv wrapper function and prints out calculated electrostatic energy.

If you plan to include APBS functionality in your C, C++ or Fortran code through iAPBS interface the following steps are required:

  • Write a C, C++ or Fortran code which prepares all necessary APBS input parameters (for example by parsing an input file). When all input parameters are set in the code call the apbsdrv function and process the output data.

  • Compile your code and link it with the APBS, MALOC, BLAS and iAPBS libraries. For example, if you have a code called application.f the following would compile and link it with the iAPBS and other required libraries:
    ifort -o application application.f -L${APBS_LIB} -liapbs -lapbs_routines -lapbs_mg -lapbs_generic -lapbs_pmgc -lmaloc -lz

3. Installing and using the iAPBS Interface

4. License

iAPBS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 (GPLv2) as published by the Free Software Foundation.

iAPBS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License version 2 for more details.

Copyright © 2005-2020 UC Regents

University of California San Diego
National Biomedical Computation Resource