APBS  1.4.1
vpmg.c File Reference

Class Vpmg methods. More...

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

Go to the source code of this file.

Functions

VPUBLIC unsigned long int Vpmg_memChk (Vpmg *thee)
 Return the memory used by this structure (and its contents) in bytes. More...
 
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. More...
 
VPUBLIC VpmgVpmg_ctor (Vpmgp *pmgp, Vpbe *pbe, int focusFlag, Vpmg *pmgOLD, MGparm *mgparm, PBEparm_calcEnergy energyFlag)
 Constructor for the Vpmg class (allocates new memory) More...
 
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) More...
 
VPUBLIC int Vpmg_solve (Vpmg *thee)
 Solve the PBE using PMG. More...
 
VPUBLIC void Vpmg_dtor (Vpmg **thee)
 Object destructor. More...
 
VPUBLIC void Vpmg_dtor2 (Vpmg *thee)
 FORTRAN stub object destructor. More...
 
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. More...
 
VPUBLIC void Vpmg_unsetPart (Vpmg *thee)
 Remove partition restrictions. More...
 
VPUBLIC int Vpmg_fillArray (Vpmg *thee, double *vec, Vdata_Type type, double parm, Vhal_PBEType pbetype, PBEparm *pbeparm)
 Fill the specified array with accessibility values. More...
 
VPRIVATE double Vpmg_polarizEnergy (Vpmg *thee, int extFlag)
 Determines energy from polarizeable charge and interaction with fixed charges according to Rocchia et al. More...
 
VPUBLIC double Vpmg_energy (Vpmg *thee, int extFlag)
 Get the total electrostatic energy. More...
 
VPUBLIC double Vpmg_dielEnergy (Vpmg *thee, int extFlag)
 Get the "polarization" contribution to the electrostatic energy. More...
 
VPUBLIC double Vpmg_dielGradNorm (Vpmg *thee)
 Get the integral of the gradient of the dielectric function. More...
 
VPUBLIC double Vpmg_qmEnergy (Vpmg *thee, int extFlag)
 Get the "mobile charge" contribution to the electrostatic energy. More...
 
VPRIVATE double Vpmg_qmEnergyNONLIN (Vpmg *thee, int extFlag)
 
VPUBLIC double Vpmg_qmEnergySMPBE (Vpmg *thee, int extFlag)
 Vpmg_qmEnergy for SMPBE. More...
 
VPUBLIC double Vpmg_qfEnergy (Vpmg *thee, int extFlag)
 Get the "fixed charge" contribution to the electrostatic energy. More...
 
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) More...
 
VPUBLIC double Vpmg_qfAtomEnergy (Vpmg *thee, Vatom *atom)
 Get the per-atom "fixed charge" contribution to the electrostatic energy. More...
 
VPRIVATE double Vpmg_qfEnergyVolume (Vpmg *thee, int extFlag)
 Calculates charge-potential energy as integral over a volume. More...
 
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. More...
 
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. More...
 
VPRIVATE void bcCalcOrig (Vpmg *thee)
 
VPRIVATE int gridPointIsValid (int i, int j, int k, int nx, int ny, int nz)
 
VPRIVATE void packAtoms (double *ax, double *ay, double *az, double *charge, double *size, Vpmg *thee)
 
VPRIVATE void packUnpack (int nx, int ny, int nz, int ngrid, double *gx, double *gy, double *gz, double *value, Vpmg *thee, int pack)
 
VPRIVATE void bcflnew (Vpmg *thee)
 
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. More...
 
VPRIVATE void bcfl_sdh (Vpmg *thee)
 
VPRIVATE void bcfl_mdh (Vpmg *thee)
 
VPRIVATE void bcfl_mem (double zmem, double L, double eps_m, double eps_w, double V, double xkappa, double *gxcf, double *gycf, double *gzcf, double *xf, double *yf, double *zf, int nx, int ny, int nz)
 
VPRIVATE void bcfl_map (Vpmg *thee)
 
VPRIVATE void bcCalc (Vpmg *thee)
 Fill boundary condition arrays. More...
 
VPRIVATE void fillcoCoefMap (Vpmg *thee)
 Fill operator coefficient arrays from pre-calculated maps. More...
 
VPRIVATE void fillcoCoefMol (Vpmg *thee)
 Fill operator coefficient arrays from a molecular surface calculation. More...
 
VPRIVATE void fillcoCoefMolIon (Vpmg *thee)
 Fill ion (nonlinear) operator coefficient array from a molecular surface calculation. More...
 
VPRIVATE void fillcoCoefMolDiel (Vpmg *thee)
 Fill differential operator coefficient arrays from a molecular surface calculation. More...
 
VPRIVATE void fillcoCoefMolDielNoSmooth (Vpmg *thee)
 Fill differential operator coefficient arrays from a molecular surface calculation without smoothing. More...
 
VPRIVATE void fillcoCoefMolDielSmooth (Vpmg *thee)
 Fill differential operator coefficient arrays from a molecular surface calculation with smoothing. More...
 
VPRIVATE void fillcoCoefSpline (Vpmg *thee)
 Fill operator coefficient arrays from a spline-based surface calculation. More...
 
VPRIVATE void fillcoCoef (Vpmg *thee)
 Top-level driver to fill all operator coefficient arrays. More...
 
VPRIVATE Vrc_Codes fillcoCharge (Vpmg *thee)
 Top-level driver to fill source term charge array. More...
 
VPRIVATE Vrc_Codes fillcoChargeMap (Vpmg *thee)
 Fill source term charge array from a pre-calculated map. More...
 
VPRIVATE void fillcoChargeSpline1 (Vpmg *thee)
 Fill source term charge array from linear interpolation. More...
 
VPRIVATE double bspline2 (double x)
 Evaluate a cubic B-spline. More...
 
VPRIVATE double dbspline2 (double x)
 Evaluate a cubic B-spline derivative. More...
 
VPRIVATE void fillcoChargeSpline2 (Vpmg *thee)
 Fill source term charge array from cubic spline interpolation. More...
 
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 usePotMap, Vgrid *potMap, int useChargeMap, Vgrid *chargeMap)
 Fill the coefficient arrays prior to solving the equation. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
VPRIVATE void qfForceSpline1 (Vpmg *thee, double *force, int atomID)
 Charge-field force due to a linear spline charge function. More...
 
VPRIVATE void qfForceSpline2 (Vpmg *thee, double *force, int atomID)
 Charge-field force due to a cubic spline charge function. More...
 
VPRIVATE void qfForceSpline4 (Vpmg *thee, double *force, int atomID)
 Charge-field force due to a quintic spline charge function. More...
 
VPRIVATE void markFrac (double rtot, double *tpos, int nx, int ny, int nz, double hx, double hy, double hzed, double xmin, double ymin, double zmin, double *xarray, double *yarray, double *zarray)
 
VPRIVATE void markSphere (double rtot, double *tpos, int nx, int ny, int nz, double hx, double hy, double hz, 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. More...
 
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. More...
 
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. More...
 
VPRIVATE double VFCHI4 (int i, double f)
 Return 2.5 plus difference of i - f. More...
 
VPRIVATE double bspline4 (double x)
 Evaluate a 5th Order B-Spline (4th order polynomial) More...
 
VPUBLIC double dbspline4 (double x)
 Evaluate a 5th Order B-Spline derivative (4th order polynomial) More...
 
VPUBLIC double d2bspline4 (double x)
 Evaluate the 2nd derivative of a 5th Order B-Spline. More...
 
VPUBLIC double d3bspline4 (double x)
 Evaluate the 3rd derivative of a 5th Order B-Spline. More...
 
VPUBLIC void fillcoPermanentMultipole (Vpmg *thee)
 Fill source term charge array for the use of permanent multipoles. More...
 
VPRIVATE void fillcoCoefSpline4 (Vpmg *thee)
 Fill operator coefficient arrays from a 7th order polynomial based surface calculation. More...
 
VPUBLIC void fillcoPermanentInduced (Vpmg *thee)
 
VPRIVATE void fillcoCoefSpline3 (Vpmg *thee)
 Fill operator coefficient arrays from a 5th order polynomial based surface calculation. More...
 
VPRIVATE void bcolcomp (int *iparm, double *rparm, int *iwork, double *rwork, double *values, int *rowind, int *colptr, int *flag)
 Build a column-compressed matrix in Harwell-Boeing format. More...
 
VPRIVATE void bcolcomp2 (int *iparm, double *rparm, int *nx, int *ny, int *nz, int *iz, int *ipc, double *rpc, double *ac, double *cc, double *values, int *rowind, int *colptr, int *flag)
 Build a column-compressed matrix in Harwell-Boeing format. More...
 
VPRIVATE void bcolcomp3 (int *nx, int *ny, int *nz, int *ipc, double *rpc, double *ac, double *cc, double *values, int *rowind, int *colptr, int *flag)
 Build a column-compressed matrix in Harwell-Boeing format. More...
 
VPRIVATE void bcolcomp4 (int *nx, int *ny, int *nz, int *ipc, double *rpc, double *oC, double *cc, double *oE, double *oN, double *uC, double *values, int *rowind, int *colptr, int *flag)
 Build a column-compressed matrix in Harwell-Boeing format. More...
 
VPRIVATE void pcolcomp (int *nrow, int *ncol, int *nnzero, double *values, int *rowind, int *colptr, char *path, char *title, char *mxtype)
 Print a column-compressed matrix in Harwell-Boeing format. More...
 

Detailed Description

Class Vpmg methods.

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 Washington University in St. Louis 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.
*
* 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 vpmg.c.

Function Documentation

VPRIVATE void bcCalc ( Vpmg thee)

Fill boundary condition arrays.

Author
Nathan Baker

Definition at line 4372 of file vpmg.c.

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
aposSize of the ion
chargePosition of the ion
xkappaCharge of the ion
pre1Exponential screening factor
gxcfUnit- and dielectric-dependent prefactor
gycfSet to x-boundary values
gzcfSet to y-boundary values
xfSet to z-boundary values
yfBoundary point x-coordinates
zfBoundary point y-coordinates
nxBoundary point z-coordinates
nyNumber of grid points in x-direction
nzNumber of grid points in y-direction Number of grid points in y-direction

Definition at line 2569 of file vpmg.c.

VPRIVATE double bspline2 ( double  x)

Evaluate a cubic B-spline.

Author
Nathan Baker
Returns
Cubic B-spline value
Parameters
xPosition

Definition at line 5486 of file vpmg.c.

VPRIVATE double bspline4 ( double  x)

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

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

Definition at line 7126 of file vpmg.c.

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
xPosition

Definition at line 7192 of file vpmg.c.

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
xPosition

Definition at line 7219 of file vpmg.c.

VPRIVATE double dbspline2 ( double  x)

Evaluate a cubic B-spline derivative.

Author
Nathan Baker
Returns
Cubic B-spline derivative
Parameters
xPosition

Definition at line 5502 of file vpmg.c.

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
xPosition

Definition at line 7160 of file vpmg.c.

VPRIVATE Vrc_Codes fillcoCharge ( Vpmg thee)

Top-level driver to fill source term charge array.

Returns
Success/failure status
Author
Nathan Baker

Definition at line 5277 of file vpmg.c.

VPRIVATE Vrc_Codes fillcoChargeMap ( Vpmg thee)

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

Returns
Success/failure status
Author
Nathan Baker

Definition at line 5333 of file vpmg.c.

VPRIVATE void fillcoChargeSpline1 ( Vpmg thee)

Fill source term charge array from linear interpolation.

Author
Nathan Baker

Definition at line 5381 of file vpmg.c.

VPRIVATE void fillcoChargeSpline2 ( Vpmg thee)

Fill source term charge array from cubic spline interpolation.

Author
Nathan Baker

Definition at line 5518 of file vpmg.c.

VPRIVATE void fillcoCoef ( Vpmg thee)

Top-level driver to fill all operator coefficient arrays.

Author
Nathan Baker

Definition at line 5237 of file vpmg.c.

VPRIVATE void fillcoCoefMap ( Vpmg thee)

Fill operator coefficient arrays from pre-calculated maps.

Author
Nathan Baker

Definition at line 4479 of file vpmg.c.

VPRIVATE void fillcoCoefMol ( Vpmg thee)

Fill operator coefficient arrays from a molecular surface calculation.

Author
Nathan Baker

Definition at line 4602 of file vpmg.c.

VPRIVATE void fillcoCoefMolDiel ( Vpmg thee)

Fill differential operator coefficient arrays from a molecular surface calculation.

Author
Nathan Baker

Definition at line 4716 of file vpmg.c.

VPRIVATE void fillcoCoefMolDielNoSmooth ( Vpmg thee)

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

Author
Nathan Baker

Definition at line 4727 of file vpmg.c.

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

Definition at line 4881 of file vpmg.c.

VPRIVATE void fillcoCoefMolIon ( Vpmg thee)

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

Author
Nathan Baker

Definition at line 4618 of file vpmg.c.

VPRIVATE void fillcoCoefSpline ( Vpmg thee)

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

Author
Nathan Baker

Definition at line 5012 of file vpmg.c.

VPRIVATE void fillcoCoefSpline3 ( Vpmg thee)

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

Author
Michael Schnieders

Definition at line 10420 of file vpmg.c.

VPRIVATE void fillcoCoefSpline4 ( Vpmg thee)

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

Author
Michael Schnieders

Definition at line 9929 of file vpmg.c.

VPUBLIC void fillcoPermanentMultipole ( Vpmg thee)

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

Author
Michael Schnieders

Definition at line 7230 of file vpmg.c.

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
tposSphere radius
nxSphere position
nyNumber of grid points
nzNumber of grid points
hxNumber of grid points
hyGrid spacing
hzGrid spacing
xminGrid spacing
yminGrid lower corner
zminGrid lower corner
arrayGrid lower corner
markValGrid values Value to mark with

Definition at line 6839 of file vpmg.c.

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
kappaDistance to the boundary
eps_pExponential screening factor
eps_wSolute dielectric
radSolvent dielectric
tsrRadius of the sphere Contraction-independent portion of each tensor

Definition at line 3482 of file vpmg.c.

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

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

Author
Nathan Baker
Parameters
atomIDSet to force Valist atom ID

Definition at line 6301 of file vpmg.c.

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

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

Author
Nathan Baker
Parameters
atomIDSet to force Valist atom ID

Definition at line 6438 of file vpmg.c.

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

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

Author
Michael Schnieders
Parameters
atomIDSet to force Valist atom ID

Definition at line 6551 of file vpmg.c.

VPRIVATE double VFCHI4 ( int  i,
double  f 
)

Return 2.5 plus difference of i - f.

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

Definition at line 7122 of file vpmg.c.

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
extFlagIf 1, add external energy contributions to result

Definition at line 1153 of file vpmg.c.

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
extFlagIf 1, add external energy contributions to result

Definition at line 1709 of file vpmg.c.

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
extFlagIf 1, add external energy contributions to result

Definition at line 1866 of file vpmg.c.

VPUBLIC double Vpmg_qmEnergySMPBE ( Vpmg thee,
int  extFlag 
)

Vpmg_qmEnergy for SMPBE.

Author
Vincent Chu

Definition at line 1495 of file vpmg.c.

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
accSurface method, currently VSM_SPLINE, VSM_SPLINE5, or VSM_SPLINE7
gposAccessibility object
winPosition array -> array[3]
infradSpline window
atomInflation radius
forceAtom object Force array -> array[3]

Definition at line 1898 of file vpmg.c.

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
sourceSolution term vector
work1Source term vector Work vector

Definition at line 6888 of file vpmg.c.