Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

vpmg.c File Reference

Class Vpmg methods. More...

#include "apbscfg.h"
#include "vpmg-private.h"
#include "apbs/vpmg.h"
#include "apbs/vhal.h"

Include dependency graph for vpmg.c:

Include dependency graph

Functions

VPUBLIC unsigned long int Vpmg_memChk (Vpmg *thee)
 Return the memory used by this structure (and its contents) in bytes.

VPUBLIC void Vpmg_printColComp (Vpmg *thee, char path[72], char title[72], char mxtype[3], int flag)
 Print out a column-compressed sparse matrix in Harwell-Boeing format.

VPUBLIC VpmgVpmg_ctor (Vpmgp *pmgp, Vpbe *pbe, int focusFlag, Vpmg *pmgOLD, MGparm *mgparm, PBEparm_calcEnergy energyFlag)
 Constructor for the Vpmg class (allocates new memory).

VPUBLIC int Vpmg_solve (Vpmg *thee)
 Solve the PBE using PMG.

VPUBLIC void Vpmg_dtor (Vpmg **thee)
 Object destructor.

VPUBLIC void Vpmg_dtor2 (Vpmg *thee)
 FORTRAN stub object destructor.

VPUBLIC void Vpmg_setPart (Vpmg *thee, double lowerCorner[3], double upperCorner[3], int bflags[6])
 Set partition information which restricts the calculation of observables to a (rectangular) subset of the problem domain.

VPUBLIC void Vpmg_unsetPart (Vpmg *thee)
 Remove partition restrictions.

VPUBLIC int Vpmg_fillArray (Vpmg *thee, double *vec, Vdata_Type type, double parm, Vhal_PBEType pbetype)
 Fill the specified array with accessibility values.

VPRIVATE double Vpmg_polarizEnergy (Vpmg *thee, int extFlag)
 Determines energy from polarizeable charge and interaction with fixed charges according to Rocchia et al.

VPUBLIC double Vpmg_energy (Vpmg *thee, int extFlag)
 Get the total electrostatic energy.

VPUBLIC double Vpmg_dielEnergy (Vpmg *thee, int extFlag)
 Get the "polarization" contribution to the electrostatic energy.

VPUBLIC double Vpmg_dielGradNorm (Vpmg *thee)
 Get the integral of the gradient of the dielectric function.

VPUBLIC double Vpmg_qmEnergy (Vpmg *thee, int extFlag)
 Get the "mobile charge" contribution to the electrostatic energy.

VPUBLIC double Vpmg_qmEnergySMPBE (Vpmg *thee, int extFlag)
 Vpmg_qmEnergy for SMPBE.

VPUBLIC double Vpmg_qfEnergy (Vpmg *thee, int extFlag)
 Get the "fixed charge" contribution to the electrostatic energy.

VPRIVATE double Vpmg_qfEnergyPoint (Vpmg *thee, int extFlag)
 Calculates charge-potential energy using summation over delta function positions (i.e. something like an Linf norm).

VPUBLIC double Vpmg_qfAtomEnergy (Vpmg *thee, Vatom *atom)
 Get the per-atom "fixed charge" contribution to the electrostatic energy.

VPRIVATE double Vpmg_qfEnergyVolume (Vpmg *thee, int extFlag)
 Calculates charge-potential energy as integral over a volume.

VPUBLIC int Vpmg_ctor2 (Vpmg *thee, Vpmgp *pmgp, Vpbe *pbe, int focusFlag, Vpmg *pmgOLD, MGparm *mgparm, PBEparm_calcEnergy energyFlag)
 FORTRAN stub constructor for the Vpmg class (uses previously-allocated memory).

VPRIVATE void Vpmg_splineSelect (int srfm, Vacc *acc, double *gpos, double win, double infrad, Vatom *atom, double *force)
 Selects a spline based surface method from either VSM_SPLINE, VSM_SPLINE5 or VSM_SPLINE7.

VPRIVATE void focusFillBound (Vpmg *thee, Vpmg *pmgOLD)
 For focusing, fill in the boundaries of the new mesh based on the potential values in the old mesh.

VPRIVATE void extEnergy (Vpmg *thee, Vpmg *pmgOLD, PBEparm_calcEnergy extFlag, double partMin[3], double partMax[3], int bflags[6])
 For focusing, set external energy data members in new Vpmg object based on energy calculations on old Vpmg object from regions outside the indicated partition.

VPRIVATE double bcfl1sp (double size, double *apos, double charge, double xkappa, double pre1, double *pos)
 Calculate pre1*(charge/d)*(exp(-xkappa*(d-size))/(1+xkappa*size) due to a specific ion at a specific point.

VPRIVATE void bcfl1 (double size, double *apos, double charge, double xkappa, double pre1, double *gxcf, double *gycf, double *gzcf, double *xf, double *yf, double *zf, int nx, int ny, int nz)
 Increment all boundary points by pre1*(charge/d)*(exp(-xkappa*(d-size))/(1+xkappa*size) to add the effect of the Debye-Huckel potential due to a single charge.

VPRIVATE void bcCalc (Vpmg *thee)
 Fill boundary condition arrays.

VPRIVATE void bcfl2 (double size, double *apos, double charge, double *dipole, double *quad, double xkappa, double eps_p, double eps_w, double T, double *gxcf, double *gycf, double *gzcf, double *xf, double *yf, double *zf, int nx, int ny, int nz)
 Increment all boundary points to include the Debye-Huckel potential due to a single multipole site. (truncated at quadrupole).

VPRIVATE void multipolebc (double r, double kappa, double eps_p, double eps_w, double rad, double tsr[3])
 This routine serves bcfl2. It returns (in tsr) the contraction independent portion of the Debye-Huckel potential tensor for a spherical ion with a central charge, dipole and quadrupole. See the code for an in depth description.

VPRIVATE void fillcoCoefMap (Vpmg *thee)
 Fill operator coefficient arrays from pre-calculated maps.

VPRIVATE void fillcoCoefMol (Vpmg *thee)
 Fill operator coefficient arrays from a molecular surface calculation.

VPRIVATE void fillcoCoefMolIon (Vpmg *thee)
 Fill ion (nonlinear) operator coefficient array from a molecular surface calculation.

VPRIVATE void fillcoCoefMolDiel (Vpmg *thee)
 Fill differential operator coefficient arrays from a molecular surface calculation.

VPRIVATE void fillcoCoefMolDielNoSmooth (Vpmg *thee)
 Fill differential operator coefficient arrays from a molecular surface calculation without smoothing.

VPRIVATE void fillcoCoefMolDielSmooth (Vpmg *thee)
 Fill differential operator coefficient arrays from a molecular surface calculation with smoothing.

VPRIVATE void fillcoCoefSpline (Vpmg *thee)
 Fill operator coefficient arrays from a spline-based surface calculation.

VPRIVATE void fillcoCoef (Vpmg *thee)
 Top-level driver to fill all operator coefficient arrays.

VPRIVATE Vrc_Codes fillcoCharge (Vpmg *thee)
 Top-level driver to fill source term charge array.

VPRIVATE Vrc_Codes fillcoChargeMap (Vpmg *thee)
 Fill source term charge array from a pre-calculated map.

VPRIVATE void fillcoChargeSpline1 (Vpmg *thee)
 Fill source term charge array from linear interpolation.

VPRIVATE double bspline2 (double x)
 Evaluate a cubic B-spline.

VPRIVATE double dbspline2 (double x)
 Evaluate a cubic B-spline derivative.

VPRIVATE void fillcoChargeSpline2 (Vpmg *thee)
 Fill source term charge array from cubic spline interpolation.

VPUBLIC int Vpmg_fillco (Vpmg *thee, Vsurf_Meth surfMeth, double splineWin, Vchrg_Meth chargeMeth, int useDielXMap, Vgrid *dielXMap, int useDielYMap, Vgrid *dielYMap, int useDielZMap, Vgrid *dielZMap, int useKappaMap, Vgrid *kappaMap, int useChargeMap, Vgrid *chargeMap)
 Fill the coefficient arrays prior to solving the equation.

VPUBLIC int Vpmg_force (Vpmg *thee, double *force, int atomID, Vsurf_Meth srfm, Vchrg_Meth chgm)
 Calculate the total force on the specified atom in units of k_B T/AA.

VPUBLIC int Vpmg_ibForce (Vpmg *thee, double *force, int atomID, Vsurf_Meth srfm)
 Calculate the osmotic pressure on the specified atom in units of k_B T/AA.

VPUBLIC int Vpmg_dbForce (Vpmg *thee, double *dbForce, int atomID, Vsurf_Meth srfm)
 Calculate the dielectric boundary forces on the specified atom in units of k_B T/AA.

VPUBLIC int Vpmg_qfForce (Vpmg *thee, double *force, int atomID, Vchrg_Meth chgm)
 Calculate the "charge-field" force on the specified atom in units of k_B T/AA.

VPRIVATE void qfForceSpline1 (Vpmg *thee, double *force, int atomID)
 Charge-field force due to a linear spline charge function.

VPRIVATE void qfForceSpline2 (Vpmg *thee, double *force, int atomID)
 Charge-field force due to a cubic spline charge function.

VPRIVATE void qfForceSpline4 (Vpmg *thee, double *force, int atomID)
 Charge-field force due to a quintic spline charge function.

VPRIVATE void markSphere (double rtot, double *tpos, int nx, int ny, int nz, double hx, double hy, double hzed, double xmin, double ymin, double zmin, double *array, double markVal)
 Mark the grid points inside a sphere with a particular value. This marks by resetting the the grid points inside the sphere to the specified value.

VPRIVATE void zlapSolve (Vpmg *thee, double **solution, double **source, double **work1)
 Calculate the solution to Poisson's equation with a simple Laplacian operator and zero-valued Dirichlet boundary conditions. Store the solution in thee->u.

VPUBLIC int Vpmg_solveLaplace (Vpmg *thee)
 Solve Poisson's equation with a homogeneous Laplacian operator using the solvent dielectric constant. This solution is performed by a sine wave decomposition.

VPRIVATE double VFCHI4 (int i, double f)
 Return 2.5 plus difference of i - f.

VPRIVATE double bspline4 (double x)
 Evaluate a 5th Order B-Spline (4th order polynomial).

VPUBLIC double dbspline4 (double x)
 Evaluate a 5th Order B-Spline derivative (4th order polynomial).

VPUBLIC double d2bspline4 (double x)
 Evaluate the 2nd derivative of a 5th Order B-Spline.

VPUBLIC double d3bspline4 (double x)
 Evaluate the 3rd derivative of a 5th Order B-Spline.

VPUBLIC void fillcoPermanentMultipole (Vpmg *thee)
 Fill source term charge array for the use of permanent multipoles.

VPRIVATE void fillcoCoefSpline4 (Vpmg *thee)
 Fill operator coefficient arrays from a 7th order polynomial based surface calculation.

VPRIVATE void fillcoCoefSpline3 (Vpmg *thee)
 Fill operator coefficient arrays from a 5th order polynomial based surface calculation.


Detailed Description

Class Vpmg methods.

Author:
Nathan Baker
Version:
Id
vpmg.c 1103 2007-07-05 21:06:44Z sdg0919
Attention:
 *
 * APBS -- Adaptive Poisson-Boltzmann Solver
 *
 * Nathan A. Baker (baker@biochem.wustl.edu)
 * Dept. of Biochemistry and Molecular Biophysics
 * Center for Computational Biology
 * Washington University in St. Louis
 *
 * Additional contributing authors listed in the code documentation.
 *
 * Copyright (c) 2002-2007.  Washington University in St. Louis.
 * All Rights Reserved.
 * Portions Copyright (c) 1999-2002.  The Regents of the University of
 * California.  
 * Portions Copyright (c) 1995.  Michael Holst.
 *
 * This file is part of APBS.
 *
 * APBS is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * APBS 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 for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with APBS; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
 *
 * Linking APBS statically or dynamically with other modules is making a
 * combined work based on APBS. Thus, the terms and conditions of the GNU
 * General Public License cover the whole combination.
 * 
 * SPECIAL GPL EXCEPTION
 * In addition, as a special exception, the copyright holders of APBS
 * give you permission to combine the APBS program with free software
 * programs and libraries that are released under the GNU LGPL or with
 * code included in releases of ISIM, Ion Simulator Interface, PMV, PyMOL
 * SMOL, VMD, and Vision. Such combined software may be linked with APBS and 
 * redistributed together in original or modified form as mere aggregation
 * without requirement that the entire work be under the scope of the GNU 
 * General Public License. This special exception permission is also extended
 * to any software listed in the SPECIAL GPL EXCEPTION clauses by the PMG,
 * FEtk, MC, or MALOC libraries.
 * 
 * Note that people who make modified versions of APBS are not obligated
 * to grant this special exception for their modified versions; it is
 * their choice whether to do so. The GNU General Public License gives
 * permission to release a modified version without this exception; this
 * exception also makes it possible to release a modified version which
 * carries forward this exception.
 *
 * 

Function Documentation

VPRIVATE void bcCalc Vpmg thee  ) 
 

Fill boundary condition arrays.

Author:
Nathan Baker

Here is the call graph for this function:

VPRIVATE void bcfl1 double  size,
double *  apos,
double  charge,
double  xkappa,
double  pre1,
double *  gxcf,
double *  gycf,
double *  gzcf,
double *  xf,
double *  yf,
double *  zf,
int  nx,
int  ny,
int  nz
 

Increment all boundary points by pre1*(charge/d)*(exp(-xkappa*(d-size))/(1+xkappa*size) to add the effect of the Debye-Huckel potential due to a single charge.

Author:
Nathan Baker
Parameters:
apos  Size of the ion
charge  Position of the ion
xkappa  Charge of the ion
pre1  Exponential screening factor
gxcf  Unit- and dielectric-dependent prefactor
gycf  Set to x-boundary values
gzcf  Set to y-boundary values
xf  Set to z-boundary values
yf  Boundary point x-coordinates
zf  Boundary point y-coordinates
nx  Boundary point z-coordinates
ny  Number of grid points in x-direction
nz  Number of grid points in y-direction Number of grid points in y-direction

VPRIVATE double bcfl1sp double  size,
double *  apos,
double  charge,
double  xkappa,
double  pre1,
double *  pos
 

Calculate pre1*(charge/d)*(exp(-xkappa*(d-size))/(1+xkappa*size) due to a specific ion at a specific point.

Author:
Nathan Baker
Returns:
Value of above function in arbitrary units (dependent on pre-factor)
Parameters:
apos  Atom size
charge  Atom position
xkappa  Atom charge
pre1  Exponential screening factor
pos  Unit- and dielectric-dependent prefactor Function evaluation position

VPRIVATE void bcfl2 double  size,
double *  apos,
double  charge,
double *  dipole,
double *  quad,
double  xkappa,
double  eps_p,
double  eps_w,
double  T,
double *  gxcf,
double *  gycf,
double *  gzcf,
double *  xf,
double *  yf,
double *  zf,
int  nx,
int  ny,
int  nz
 

Increment all boundary points to include the Debye-Huckel potential due to a single multipole site. (truncated at quadrupole).

Author:
Michael Schnieders
Parameters:
apos  Size of the ion
charge  Position of the ion
dipole  Charge of the ion
quad  Dipole of the ion
xkappa  Traceless Quadrupole of the ion
eps_p  Exponential screening factor
eps_w  Solute dielectric
T  Solvent dielectric
gxcf  Temperature
gycf  Set to x-boundary values
gzcf  Set to y-boundary values
xf  Set to z-boundary values
yf  Boundary point x-coordinates
zf  Boundary point y-coordinates
nx  Boundary point z-coordinates
ny  Number of grid points in x-direction
nz  Number of grid points in y-direction Number of grid points in y-direction

Here is the call graph for this function:

VPRIVATE double bspline2 double  x  ) 
 

Evaluate a cubic B-spline.

Author:
Nathan Baker
Returns:
Cubic B-spline value
Parameters:
x  Position

VPRIVATE double bspline4 double  x  ) 
 

Evaluate a 5th Order B-Spline (4th order polynomial).

Author:
: Michael Schnieders
Returns:
5th Order B-Spline
Parameters:
x  Position

VPUBLIC double d2bspline4 double  x  ) 
 

Evaluate the 2nd derivative of a 5th Order B-Spline.

Author:
: Michael Schnieders
Returns:
2nd derivative of a 5th Order B-Spline
Parameters:
x  Position

VPUBLIC double d3bspline4 double  x  ) 
 

Evaluate the 3rd derivative of a 5th Order B-Spline.

Author:
: Michael Schnieders
Returns:
3rd derivative of a 5th Order B-Spline
Parameters:
x  Position

VPRIVATE double dbspline2 double  x  ) 
 

Evaluate a cubic B-spline derivative.

Author:
Nathan Baker
Returns:
Cubic B-spline derivative
Parameters:
x  Position

VPUBLIC double dbspline4 double  x  ) 
 

Evaluate a 5th Order B-Spline derivative (4th order polynomial).

Author:
: Michael Schnieders
Returns:
5th Order B-Spline derivative
Parameters:
x  Position

VPRIVATE void extEnergy Vpmg thee,
Vpmg pmgOLD,
PBEparm_calcEnergy  extFlag,
double  partMin[3],
double  partMax[3],
int  bflags[6]
 

For focusing, set external energy data members in new Vpmg object based on energy calculations on old Vpmg object from regions outside the indicated partition.

Author:
Nathan Baker, Todd Dolinsky
Parameters:
pmgOLD  Newly created PMG manager
extFlag  Old PMG manager, source of energies
partMin  Energy calculation flag
partMax  Partition lower corner
bflags  Partition upper corner Which boundaries to include the calculation

Here is the call graph for this function:

VPRIVATE Vrc_Codes fillcoCharge Vpmg thee  ) 
 

Top-level driver to fill source term charge array.

Returns:
Success/failure status
Author:
Nathan Baker

Here is the call graph for this function:

VPRIVATE Vrc_Codes fillcoChargeMap Vpmg thee  ) 
 

Fill source term charge array from a pre-calculated map.

Returns:
Success/failure status
Author:
Nathan Baker

Here is the call graph for this function:

VPRIVATE void fillcoChargeSpline1 Vpmg thee  ) 
 

Fill source term charge array from linear interpolation.

Author:
Nathan Baker

Here is the call graph for this function:

VPRIVATE void fillcoChargeSpline2 Vpmg thee  ) 
 

Fill source term charge array from cubic spline interpolation.

Author:
Nathan Baker

Here is the call graph for this function:

VPRIVATE void fillcoCoef Vpmg thee  ) 
 

Top-level driver to fill all operator coefficient arrays.

Author:
Nathan Baker

Here is the call graph for this function:

VPRIVATE void fillcoCoefMap Vpmg thee  ) 
 

Fill operator coefficient arrays from pre-calculated maps.

Author:
Nathan Baker

Here is the call graph for this function:

VPRIVATE void fillcoCoefMol Vpmg thee  ) 
 

Fill operator coefficient arrays from a molecular surface calculation.

Author:
Nathan Baker

Here is the call graph for this function:

VPRIVATE void fillcoCoefMolDiel Vpmg thee  ) 
 

Fill differential operator coefficient arrays from a molecular surface calculation.

Author:
Nathan Baker

Here is the call graph for this function:

VPRIVATE void fillcoCoefMolDielNoSmooth Vpmg thee  ) 
 

Fill differential operator coefficient arrays from a molecular surface calculation without smoothing.

Author:
Nathan Baker

Here is the call graph for this function:

VPRIVATE void fillcoCoefMolDielSmooth Vpmg thee  ) 
 

Fill differential operator coefficient arrays from a molecular surface calculation with smoothing.

Molecular surface, dielectric smoothing following an implementation of Bruccoleri, et al. J Comput Chem 18 268-276 (1997).

This algorithm uses a 9 point harmonic smoothing technique - the point in question and all grid points 1/sqrt(2) grid spacings away.

Note:
This uses thee->a1cf, thee->a2cf, thee->a3cf as temporary storage.
Author:
Todd Dolinsky

Here is the call graph for this function:

VPRIVATE void fillcoCoefMolIon Vpmg thee  ) 
 

Fill ion (nonlinear) operator coefficient array from a molecular surface calculation.

Author:
Nathan Baker

Here is the call graph for this function:

VPRIVATE void fillcoCoefSpline Vpmg thee  ) 
 

Fill operator coefficient arrays from a spline-based surface calculation.

Author:
Nathan Baker

Here is the call graph for this function:

VPRIVATE void fillcoCoefSpline3 Vpmg thee  ) 
 

Fill operator coefficient arrays from a 5th order polynomial based surface calculation.

Author:
Michael Schnieders

Here is the call graph for this function:

VPRIVATE void fillcoCoefSpline4 Vpmg thee  ) 
 

Fill operator coefficient arrays from a 7th order polynomial based surface calculation.

Author:
Michael Schnieders

Here is the call graph for this function:

VPUBLIC void fillcoPermanentMultipole Vpmg thee  ) 
 

Fill source term charge array for the use of permanent multipoles.

Author:
Michael Schnieders

Here is the call graph for this function:

VPRIVATE void focusFillBound Vpmg thee,
Vpmg pmg
 

For focusing, fill in the boundaries of the new mesh based on the potential values in the old mesh.

Author:
Nathan Baker
Parameters:
pmgOLD  New PMG object (the one just created) Old PMG object

Here is the call graph for this function:

VPRIVATE void markSphere double  rtot,
double *  tpos,
int  nx,
int  ny,
int  nz,
double  hx,
double  hy,
double  hzed,
double  xmin,
double  ymin,
double  zmin,
double *  array,
double  markVal
 

Mark the grid points inside a sphere with a particular value. This marks by resetting the the grid points inside the sphere to the specified value.

Author:
Nathan Baker
Parameters:
tpos  Sphere radius
nx  Sphere position
ny  Number of grid points
nz  Number of grid points
hx  Number of grid points
hy  Grid spacing
hzed  Grid spacing
xmin  Grid spacing
ymin  Grid lower corner
zmin  Grid lower corner
array  Grid lower corner
markVal  Grid values Value to mark with

VPRIVATE void multipolebc double  r,
double  kappa,
double  eps_p,
double  eps_w,
double  rad,
double  tsr[3]
 

This routine serves bcfl2. It returns (in tsr) the contraction independent portion of the Debye-Huckel potential tensor for a spherical ion with a central charge, dipole and quadrupole. See the code for an in depth description.

Author:
Michael Schnieders
Parameters:
kappa  Distance to the boundary
eps_p  Exponential screening factor
eps_w  Solute dielectric
rad  Solvent dielectric
tsr  Radius of the sphere Contraction-independent portion of each tensor

VPRIVATE void qfForceSpline1 Vpmg thee,
double *  force,
int  atomID
 

Charge-field force due to a linear spline charge function.

Author:
Nathan Baker
Parameters:
atomID  Set to force Valist atom ID

Here is the call graph for this function:

VPRIVATE void qfForceSpline2 Vpmg thee,
double *  force,
int  atomID
 

Charge-field force due to a cubic spline charge function.

Author:
Nathan Baker
Parameters:
atomID  Set to force Valist atom ID

Here is the call graph for this function:

VPRIVATE void qfForceSpline4 Vpmg thee,
double *  force,
int  atomID
 

Charge-field force due to a quintic spline charge function.

Author:
Michael Schnieders
Parameters:
atomID  Set to force Valist atom ID

Here is the call graph for this function:

VPRIVATE double VFCHI4 int  i,
double  f
 

Return 2.5 plus difference of i - f.

Author:
Michael Schnieders
Returns:
(2.5+((double)(i)-(f)))

VPRIVATE double Vpmg_polarizEnergy Vpmg thee,
int  extFlag
 

Determines energy from polarizeable charge and interaction with fixed charges according to Rocchia et al.

Author:
Nathan Baker
Returns:
Energy in kT
Parameters:
extFlag  If 1, add external energy contributions to result

Here is the call graph for this function:

VPRIVATE double Vpmg_qfEnergyPoint Vpmg thee,
int  extFlag
 

Calculates charge-potential energy using summation over delta function positions (i.e. something like an Linf norm).

Author:
Nathan Baker
Returns:
Energy in kT
Parameters:
extFlag  If 1, add external energy contributions to result

Here is the call graph for this function:

VPRIVATE double Vpmg_qfEnergyVolume Vpmg thee,
int  extFlag
 

Calculates charge-potential energy as integral over a volume.

Author:
Nathan Baker
Returns:
Energy in kT
Parameters:
extFlag  If 1, add external energy contributions to result

Here is the call graph for this function:

VPUBLIC double Vpmg_qmEnergySMPBE Vpmg thee,
int  extFlag
 

Vpmg_qmEnergy for SMPBE.

Author:
Vincent Chu

Here is the call graph for this function:

VPRIVATE void Vpmg_splineSelect int  srfm,
Vacc acc,
double *  gpos,
double  win,
double  infrad,
Vatom atom,
double *  force
 

Selects a spline based surface method from either VSM_SPLINE, VSM_SPLINE5 or VSM_SPLINE7.

Author:
David Gohara
Parameters:
acc  Surface method, currently VSM_SPLINE, VSM_SPLINE5, or VSM_SPLINE7
gpos  Accessibility object
win  Position array -> array[3]
infrad  Spline window
atom  Inflation radius
force  Atom object Force array -> array[3]

Here is the call graph for this function:

VPRIVATE void zlapSolve Vpmg thee,
double **  solution,
double **  source,
double **  work1
 

Calculate the solution to Poisson's equation with a simple Laplacian operator and zero-valued Dirichlet boundary conditions. Store the solution in thee->u.

Author:
Nathan Baker
Note:
Vpmg_fillco must be called first
Parameters:
source  Solution term vector
work1  Source term vector Work vector


Generated on Thu Jul 12 11:50:15 2007 for APBS by doxygen 1.3.4