iAPBS interface: User Guide
Table of Contents
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
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-2023 UC Regents
University of California San Diego
National Biomedical Computation Resource