APBS  1.4.1
routines.c File Reference

Supporting routines for APBS front end. More...

#include "routines.h"
Include dependency graph for routines.c:

Go to the source code of this file.

Functions

VPUBLIC void startVio ()
 Wrapper to start MALOC Vio layer. More...
 
VPUBLIC VparamloadParameter (NOsh *nosh)
 Loads and returns parameter object. More...
 
VPUBLIC int loadMolecules (NOsh *nosh, Vparam *param, Valist *alist[NOSH_MAXMOL])
 Load the molecules given in NOsh into atom lists. More...
 
VPUBLIC void killMolecules (NOsh *nosh, Valist *alist[NOSH_MAXMOL])
 Destroy the loaded molecules. More...
 
VPUBLIC int loadDielMaps (NOsh *nosh, Vgrid *dielXMap[NOSH_MAXMOL], Vgrid *dielYMap[NOSH_MAXMOL], Vgrid *dielZMap[NOSH_MAXMOL])
 Load the dielectric maps given in NOsh into grid objects. More...
 
VPUBLIC void killDielMaps (NOsh *nosh, Vgrid *dielXMap[NOSH_MAXMOL], Vgrid *dielYMap[NOSH_MAXMOL], Vgrid *dielZMap[NOSH_MAXMOL])
 Destroy the loaded dielectric. More...
 
VPUBLIC int loadKappaMaps (NOsh *nosh, Vgrid *map[NOSH_MAXMOL])
 Load the kappa maps given in NOsh into grid objects. More...
 
VPUBLIC void killKappaMaps (NOsh *nosh, Vgrid *map[NOSH_MAXMOL])
 Destroy the loaded kappa maps. More...
 
VPUBLIC int loadPotMaps (NOsh *nosh, Vgrid *map[NOSH_MAXMOL])
 Load the potential maps given in NOsh into grid objects. More...
 
VPUBLIC void killPotMaps (NOsh *nosh, Vgrid *map[NOSH_MAXMOL])
 Destroy the loaded potential maps. More...
 
VPUBLIC int loadChargeMaps (NOsh *nosh, Vgrid *map[NOSH_MAXMOL])
 Load the charge maps given in NOsh into grid objects. More...
 
VPUBLIC void killChargeMaps (NOsh *nosh, Vgrid *map[NOSH_MAXMOL])
 Destroy the loaded charge maps. More...
 
VPUBLIC void printPBEPARM (PBEparm *pbeparm)
 Print out generic PBE params loaded from input. More...
 
VPUBLIC void printMGPARM (MGparm *mgparm, double realCenter[3])
 Print out MG-specific params loaded from input. More...
 
VPUBLIC int initMG (int icalc, NOsh *nosh, MGparm *mgparm, PBEparm *pbeparm, double realCenter[3], Vpbe *pbe[NOSH_MAXCALC], Valist *alist[NOSH_MAXMOL], Vgrid *dielXMap[NOSH_MAXMOL], Vgrid *dielYMap[NOSH_MAXMOL], Vgrid *dielZMap[NOSH_MAXMOL], Vgrid *kappaMap[NOSH_MAXMOL], Vgrid *chargeMap[NOSH_MAXMOL], Vpmgp *pmgp[NOSH_MAXCALC], Vpmg *pmg[NOSH_MAXCALC], Vgrid *potMap[NOSH_MAXMOL])
 Initialize an MG calculation. More...
 
VPUBLIC void killMG (NOsh *nosh, Vpbe *pbe[NOSH_MAXCALC], Vpmgp *pmgp[NOSH_MAXCALC], Vpmg *pmg[NOSH_MAXCALC])
 Kill structures initialized during an MG calculation. More...
 
VPUBLIC int solveMG (NOsh *nosh, Vpmg *pmg, MGparm_CalcType type)
 Solve the PBE with MG. More...
 
VPUBLIC int setPartMG (NOsh *nosh, MGparm *mgparm, Vpmg *pmg)
 Set MG partitions for calculating observables and performing I/O. More...
 
VPUBLIC int energyMG (NOsh *nosh, int icalc, Vpmg *pmg, int *nenergy, double *totEnergy, double *qfEnergy, double *qmEnergy, double *dielEnergy)
 Calculate electrostatic energies from MG solution. More...
 
VPUBLIC int forceMG (Vmem *mem, NOsh *nosh, PBEparm *pbeparm, MGparm *mgparm, Vpmg *pmg, int *nforce, AtomForce **atomForce, Valist *alist[NOSH_MAXMOL])
 Calculate forces from MG solution. More...
 
VPUBLIC void killEnergy ()
 Kill arrays allocated for energies. More...
 
VPUBLIC void killForce (Vmem *mem, NOsh *nosh, int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC])
 Free memory from MG force calculation. More...
 
VPUBLIC int writematMG (int rank, NOsh *nosh, PBEparm *pbeparm, Vpmg *pmg)
 Write out operator matrix from MG calculation to file. More...
 
VPUBLIC void storeAtomEnergy (Vpmg *pmg, int icalc, double **atomEnergy, int *nenergy)
 Store energy in arrays for future use. More...
 
VPUBLIC int writedataFlat (NOsh *nosh, Vcom *com, const char *fname, double totEnergy[NOSH_MAXCALC], double qfEnergy[NOSH_MAXCALC], double qmEnergy[NOSH_MAXCALC], double dielEnergy[NOSH_MAXCALC], int nenergy[NOSH_MAXCALC], double *atomEnergy[NOSH_MAXCALC], int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC])
 Write out information to a flat file. More...
 
VPUBLIC int writedataXML (NOsh *nosh, Vcom *com, const char *fname, double totEnergy[NOSH_MAXCALC], double qfEnergy[NOSH_MAXCALC], double qmEnergy[NOSH_MAXCALC], double dielEnergy[NOSH_MAXCALC], int nenergy[NOSH_MAXCALC], double *atomEnergy[NOSH_MAXCALC], int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC])
 Write out information to an XML file. More...
 
VPUBLIC int writedataMG (int rank, NOsh *nosh, PBEparm *pbeparm, Vpmg *pmg)
 Write out observables from MG calculation to file. More...
 
VPUBLIC double returnEnergy (Vcom *com, NOsh *nosh, double totEnergy[NOSH_MAXCALC], int iprint)
 Access net local energy. More...
 
VPUBLIC int printEnergy (Vcom *com, NOsh *nosh, double totEnergy[NOSH_MAXCALC], int iprint)
 Combine and pretty-print energy data (deprecated...see printElecEnergy) More...
 
VPUBLIC int printElecEnergy (Vcom *com, NOsh *nosh, double totEnergy[NOSH_MAXCALC], int iprint)
 Combine and pretty-print energy data. More...
 
VPUBLIC int printApolEnergy (NOsh *nosh, int iprint)
 Combine and pretty-print energy data. More...
 
VPUBLIC int printForce (Vcom *com, NOsh *nosh, int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC], int iprint)
 Combine and pretty-print force data (deprecated...see printElecForce) More...
 
VPUBLIC int printElecForce (Vcom *com, NOsh *nosh, int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC], int iprint)
 Combine and pretty-print force data. More...
 
VPUBLIC int printApolForce (Vcom *com, NOsh *nosh, int nforce[NOSH_MAXCALC], AtomForce *atomForce[NOSH_MAXCALC], int iprint)
 Combine and pretty-print force data. More...
 
VPUBLIC void killFE (NOsh *nosh, Vpbe *pbe[NOSH_MAXCALC], Vfetk *fetk[NOSH_MAXCALC], Gem *gm[NOSH_MAXMOL])
 Kill structures initialized during an FE calculation. More...
 
VPUBLIC Vrc_Codes initFE (int icalc, NOsh *nosh, FEMparm *feparm, PBEparm *pbeparm, Vpbe *pbe[NOSH_MAXCALC], Valist *alist[NOSH_MAXMOL], Vfetk *fetk[NOSH_MAXCALC])
 Initialize FE solver objects. More...
 
VPUBLIC void printFEPARM (int icalc, NOsh *nosh, FEMparm *feparm, Vfetk *fetk[NOSH_MAXCALC])
 Print out FE-specific params loaded from input. More...
 
VPUBLIC int partFE (int icalc, NOsh *nosh, FEMparm *feparm, Vfetk *fetk[NOSH_MAXCALC])
 Partition mesh (if applicable) More...
 
VPUBLIC int preRefineFE (int icalc, FEMparm *feparm, Vfetk *fetk[NOSH_MAXCALC])
 Pre-refine mesh before solve. More...
 
VPUBLIC int solveFE (int icalc, PBEparm *pbeparm, FEMparm *feparm, Vfetk *fetk[NOSH_MAXCALC])
 Solve-estimate-refine. More...
 
VPUBLIC int energyFE (NOsh *nosh, int icalc, Vfetk *fetk[NOSH_MAXCALC], int *nenergy, double *totEnergy, double *qfEnergy, double *qmEnergy, double *dielEnergy)
 Calculate electrostatic energies from FE solution. More...
 
VPUBLIC int postRefineFE (int icalc, FEMparm *feparm, Vfetk *fetk[NOSH_MAXCALC])
 Estimate error, mark mesh, and refine mesh after solve. More...
 
VPUBLIC int writedataFE (int rank, NOsh *nosh, PBEparm *pbeparm, Vfetk *fetk)
 Write FEM data to files. More...
 
VPUBLIC int initAPOL (NOsh *nosh, Vmem *mem, Vparam *param, APOLparm *apolparm, int *nforce, AtomForce **atomForce, Valist *alist)
 Upperlevel routine to the non-polar energy and force routines. More...
 
VPUBLIC int energyAPOL (APOLparm *apolparm, double sasa, double sav, double atomsasa[], double atomwcaEnergy[], int numatoms)
 Calculate non-polar energies. More...
 
VPUBLIC int forceAPOL (Vacc *acc, Vmem *mem, APOLparm *apolparm, int *nforce, AtomForce **atomForce, Valist *alist, Vclist *clist)
 Calculate non-polar forces. More...
 

Detailed Description

Supporting routines for APBS front end.

Author
Nathan Baker
Version
$Id$
Attention
* APBS -- Adaptive Poisson-Boltzmann Solver
*
*  Nathan A. Baker (nathan.baker@pnnl.gov)
*  Pacific Northwest National Laboratory
*
*  Additional contributing authors listed in the code documentation.
*
* Copyright (c) 2010-2012 Battelle Memorial Institute. Developed at the
* Pacific Northwest National Laboratory, operated by Battelle Memorial
* Institute, Pacific Northwest Division for the U.S. Department of Energy.
*
* Portions Copyright (c) 2002-2010, Washington University in St. Louis.
* Portions Copyright (c) 2002-2010, Nathan A. Baker.
* Portions Copyright (c) 1999-2002, The Regents of the University of
* California.
* Portions Copyright (c) 1995, Michael Holst.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* Neither the name of the developer nor the names of its contributors may be
* used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
* 

Definition in file routines.c.