vpmg-private.h File Reference

Class Vpmg private method declaration. More...

#include "apbscfg.h"
#include "apbs/vpmg.h"
Include dependency graph for vpmg-private.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

VPRIVATE double bspline2 (double x)
 Evaluate a cubic B-spline.
VPRIVATE double dbspline2 (double x)
 Evaluate a cubic B-spline derivative.
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).
VPRIVATE double dbspline4 (double x)
 Evaluate a 5th Order B-Spline derivative (4th order polynomial).
VPRIVATE double d2bspline4 (double x)
 Evaluate the 2nd derivative of a 5th Order B-Spline.
VPRIVATE double d3bspline4 (double x)
 Evaluate the 3rd derivative of a 5th Order B-Spline.
VPRIVATE double Vpmg_polarizEnergy (Vpmg *thee, int extFlag)
 Determines energy from polarizeable charge and interaction with fixed charges according to Rocchia et al.
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).
VPRIVATE double Vpmg_qfEnergyVolume (Vpmg *thee, int extFlag)
 Calculates charge-potential energy as integral over a volume.
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 *pmg)
 For focusing, fill in the boundaries of the new mesh based on the potential values in the old mesh.
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 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 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 bcCalc (Vpmg *thee)
 Fill boundary condition arrays.
VPRIVATE void fillcoCoef (Vpmg *thee)
 Top-level driver to fill all operator coefficient arrays.
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 fillcoCoefSpline3 (Vpmg *thee)
 Fill operator coefficient arrays from a 5th order polynomial based surface calculation.
VPRIVATE void fillcoCoefSpline4 (Vpmg *thee)
 Fill operator coefficient arrays from a 7th order polynomial based surface calculation.
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 void fillcoChargeSpline2 (Vpmg *thee)
 Fill source term charge array from cubic spline interpolation.
VPRIVATE void fillcoPermanentMultipole (Vpmg *thee)
 Fill source term charge array for the use of permanent multipoles.
VPRIVATE void fillcoInducedDipole (Vpmg *thee)
 Fill source term charge array for use of induced dipoles.
VPRIVATE void fillcoNLInducedDipole (Vpmg *thee)
 Fill source term charge array for non-local induced dipoles.
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 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 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.
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 double Vpmg_qmEnergySMPBE (Vpmg *thee, int extFlag)
 Vpmg_qmEnergy for SMPBE.

Detailed Description

Class Vpmg private method declaration.

Author:
Nathan Baker
Version:
Id
vpmg-private.h 1350 2009-02-12 00:38:48Z yhuang01
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-2009, Washington University in St. Louis.
 * Portions Copyright (c) 2002-2009.  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.
 *
 * 

Function Documentation

VPRIVATE void bcCalc ( Vpmg thee  ) 
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

References multipolebc(), Vunit_ec, Vunit_eps0, and Vunit_kb.

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

Referenced by fillcoChargeSpline2(), and qfForceSpline2().

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

Referenced by fillcoPermanentMultipole(), and qfForceSpline4().

VPRIVATE 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

Referenced by fillcoPermanentMultipole().

VPRIVATE 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

Referenced by qfForceSpline2().

VPRIVATE 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

Referenced by fillcoPermanentMultipole(), and qfForceSpline4().

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

References sVpbe::alist, sVpmg::extDiEnergy, sVpmg::extQfEnergy, sVpmg::extQmEnergy, sVpmgp::hx, sVpmgp::hy, sVpmgp::hzed, sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVatom::partID, sVpmg::pbe, sVpmg::pmgp, sVatom::position, sVpmg::pvec, Valist_getAtom(), Valist_getNumberAtoms(), VAPBS_BACK, VAPBS_DOWN, VAPBS_FRONT, VAPBS_LEFT, VAPBS_RIGHT, VAPBS_UP, Vpmg_dielEnergy(), Vpmg_qfEnergy(), Vpmg_qmEnergy(), Vpmg_setPart(), Vpmg_unsetPart(), sVpmgp::xcent, sVpmgp::ycent, and sVpmgp::zcent.

Referenced by energyMG(), and Vpmg_ctor2().

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

References sVpmg::chargeMeth, sVpmg::chargeSrc, fillcoChargeMap(), fillcoChargeSpline1(), fillcoChargeSpline2(), fillcoInducedDipole(), fillcoNLInducedDipole(), fillcoPermanentMultipole(), sVpmg::useChargeMap, VCM_BSPL2, VCM_BSPL4, VCM_CHARGE, VCM_INDUCED, VCM_NLINDUCED, VCM_PERMANENT, VCM_TRIL, VRC_FAILURE, and VRC_SUCCESS.

Referenced by Vpmg_fillco().

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

References sVpmg::charge, sVpmg::chargeMap, sVpmgp::hx, sVpmgp::hy, sVpmgp::hzed, sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVpmg::pbe, sVpmg::pmgp, Vgrid_value(), Vpbe_getZmagic(), VRC_FAILURE, VRC_SUCCESS, sVpmg::xf, sVpmg::yf, and sVpmg::zf.

Referenced by fillcoCharge().

Here is the call graph for this function:

VPRIVATE void fillcoChargeSpline1 ( Vpmg thee  ) 
VPRIVATE void fillcoChargeSpline2 ( Vpmg thee  ) 
VPRIVATE void fillcoCoef ( Vpmg thee  ) 

Top-level driver to fill all operator coefficient arrays.

Author:
Nathan Baker

References fillcoCoefMap(), fillcoCoefMol(), fillcoCoefSpline(), fillcoCoefSpline3(), fillcoCoefSpline4(), sVpmg::surfMeth, sVpmg::useDielXMap, sVpmg::useDielYMap, sVpmg::useDielZMap, sVpmg::useKappaMap, VSM_MOL, VSM_MOLSMOOTH, VSM_SPLINE, VSM_SPLINE3, and VSM_SPLINE4.

Referenced by Vpmg_fillco().

Here is the call graph for this function:

VPRIVATE void fillcoCoefMap ( Vpmg thee  ) 
VPRIVATE void fillcoCoefMol ( Vpmg thee  ) 

Fill operator coefficient arrays from a molecular surface calculation.

Author:
Nathan Baker

References fillcoCoefMap(), fillcoCoefMolDiel(), fillcoCoefMolIon(), sVpmg::useDielXMap, sVpmg::useDielYMap, sVpmg::useDielZMap, and sVpmg::useKappaMap.

Referenced by fillcoCoef().

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

References fillcoCoefMolDielNoSmooth(), fillcoCoefMolDielSmooth(), sVpmg::surfMeth, and VSM_MOLSMOOTH.

Referenced by fillcoCoefMol().

Here is the call graph for this function:

VPRIVATE void fillcoCoefMolDielNoSmooth ( Vpmg thee  ) 
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

References sVpmg::a1cf, sVpmg::a2cf, sVpmg::a3cf, sVpmg::epsx, sVpmg::epsy, sVpmg::epsz, sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVpmg::pbe, sVpmg::pmgp, and Vpbe_getSolventDiel().

Referenced by fillcoCoefMolDiel().

Here is the call graph for this function:

VPRIVATE void fillcoCoefMolIon ( Vpmg thee  ) 
VPRIVATE void fillcoCoefSpline ( Vpmg thee  ) 
VPRIVATE void fillcoCoefSpline3 ( Vpmg thee  ) 
VPRIVATE void fillcoCoefSpline4 ( Vpmg thee  ) 
VPRIVATE void fillcoInducedDipole ( Vpmg thee  ) 

Fill source term charge array for use of induced dipoles.

Author:
Michael Schnieders

Referenced by fillcoCharge().

VPRIVATE void fillcoNLInducedDipole ( Vpmg thee  ) 

Fill source term charge array for non-local induced dipoles.

Author:
Michael Schnieders

Referenced by fillcoCharge().

VPRIVATE void fillcoPermanentMultipole ( Vpmg thee  ) 
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:
pmg New PMG object (the one just created) Old PMG object

References sVpmg::gxcf, sVpmg::gycf, sVpmg::gzcf, sVpmgp::hx, sVpmgp::hy, sVpmgp::hzed, sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVpmg::pbe, sVpmg::pmgp, SINH_MIN, sVpmg::u, Vpbe_getSoluteCenter(), Vpbe_getSoluteCharge(), Vpbe_getSoluteRadius(), Vpbe_getSolventDiel(), Vpbe_getTemperature(), Vpbe_getXkappa(), VPMGSMALL, Vunit_ec, Vunit_eps0, Vunit_kb, sVpmgp::xcent, sVpmgp::ycent, and sVpmgp::zcent.

Referenced by Vpmg_ctor2().

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

Referenced by fillcoCoefMolDielNoSmooth(), and fillcoCoefMolIon().

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

Referenced by bcfl2().

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

References sVpbe::alist, sVpmgp::bcfl, BCFL_FOCUS, sVpmgp::hx, sVpmgp::hy, sVpmgp::hzed, sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVatom::partID, sVpmg::pbe, sVpmg::pmgp, sVpmg::u, Valist_getAtom(), Vatom_getCharge(), Vatom_getPosition(), VPMGSMALL, sVpmgp::xmax, sVpmgp::xmin, sVpmgp::ymax, sVpmgp::ymin, sVpmgp::zmax, and sVpmgp::zmin.

Referenced by Vpmg_qfForce().

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

References sVpbe::alist, sVpmgp::bcfl, BCFL_FOCUS, bspline2(), dbspline2(), sVpmgp::hx, sVpmgp::hy, sVpmgp::hzed, sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVatom::partID, sVpmg::pbe, sVpmg::pmgp, sVpmg::u, Valist_getAtom(), Vatom_getCharge(), Vatom_getPosition(), sVpmgp::xlen, sVpmgp::xmax, sVpmgp::xmin, sVpmgp::ylen, sVpmgp::ymax, sVpmgp::ymin, sVpmgp::zlen, sVpmgp::zmax, and sVpmgp::zmin.

Referenced by Vpmg_qfForce().

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

References sVpbe::alist, bspline4(), dbspline4(), sVpmg::filled, sVpmgp::hx, sVpmgp::hy, sVpmgp::hzed, sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVpmg::pbe, sVpmg::pmgp, sVpmg::u, Valist_getAtom(), Vatom_getCharge(), Vatom_getPosition(), VFCHI4(), sVpmgp::xlen, sVpmgp::xmax, sVpmgp::xmin, sVpmgp::ylen, sVpmgp::ymax, sVpmgp::ymin, sVpmgp::zlen, sVpmgp::zmax, and sVpmgp::zmin.

Referenced by Vpmg_qfForce().

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)))

Referenced by fillcoPermanentMultipole(), and qfForceSpline4().

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

References sVpbe::alist, sVpmg::charge, sVpmgp::hx, sVpmgp::hy, sVpmgp::hzed, sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVpmg::pbe, sVpmg::pmgp, sVpmg::u, Valist_getAtom(), Valist_getNumberAtoms(), Vatom_getCharge(), Vatom_getPosition(), Vgrid_ctor(), Vgrid_curvature(), Vpbe_getSoluteDiel(), Vpbe_getSolventDiel(), Vpbe_getTemperature(), Vunit_ec, Vunit_eps0, Vunit_kb, sVpmgp::xmin, and sVpmgp::ymin.

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

References sVpbe::alist, sVpmgp::bcfl, BCFL_FOCUS, sVpmg::extQfEnergy, sVpmgp::hx, sVpmgp::hy, sVpmgp::hzed, sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVatom::partID, sVpmg::pbe, sVpmg::pmgp, sVpmg::pvec, sVpmg::u, Valist_getAtom(), Valist_getNumberAtoms(), Vatom_getCharge(), Vatom_getPosition(), sVpmgp::xmax, sVpmgp::xmin, sVpmgp::ymax, sVpmgp::ymin, sVpmgp::zmax, and sVpmgp::zmin.

Referenced by Vpmg_qfEnergy().

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

References sVpmg::charge, sVpmg::extQfEnergy, sVpmg::filled, sVpmgp::hx, sVpmgp::hy, sVpmgp::hzed, sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVpmg::pbe, sVpmg::pmgp, sVpmg::pvec, sVpmg::u, and Vpbe_getZmagic().

Referenced by Vpmg_qfEnergy().

Here is the call graph for this function:

VPRIVATE double Vpmg_qmEnergySMPBE ( Vpmg thee,
int  extFlag 
)
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]

References Vacc_splineAccGradAtomNorm(), Vacc_splineAccGradAtomNorm3(), Vacc_splineAccGradAtomNorm4(), VSM_SPLINE, VSM_SPLINE3, and VSM_SPLINE4.

Referenced by Vpmg_dbForce(), and Vpmg_ibForce().

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

References sVpmgp::hx, sVpmgp::hy, sVpmgp::hzed, sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVpmg::pmgp, sVpmg::u, sVpmgp::xlen, sVpmgp::ylen, and sVpmgp::zlen.

Referenced by Vpmg_solveLaplace().


Generated by  doxygen 1.6.2