Class Vpmg private method declaration. More...
#include "apbscfg.h"
#include "apbs/vpmg.h"
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. |
Class Vpmg private method declaration.
* * 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. * *
VPRIVATE void bcCalc | ( | Vpmg * | thee | ) |
Fill boundary condition arrays.
References sVpmgp::bcfl, BCFL_FOCUS, BCFL_MDH, BCFL_MEM, BCFL_SDH, BCFL_UNUSED, BCFL_ZERO, sVpmg::gxcf, sVpmg::gycf, sVpmg::gzcf, sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVpmg::pbe, sVpmg::pmgp, Vpbe_getLmem(), Vpbe_getmembraneDiel(), Vpbe_getmemv(), Vpbe_getSolventDiel(), Vpbe_getXkappa(), Vpbe_getzmem(), sVpmg::xf, sVpmg::yf, and sVpmg::zf.
Referenced by Vpmg_fillco().
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.
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.
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).
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.
VPRIVATE double bspline2 | ( | double | x | ) |
Evaluate a cubic B-spline.
x | Position |
Referenced by fillcoChargeSpline2(), and qfForceSpline2().
VPRIVATE double bspline4 | ( | double | x | ) |
Evaluate a 5th Order B-Spline (4th order polynomial).
x | Position |
Referenced by fillcoPermanentMultipole(), and qfForceSpline4().
VPRIVATE double d2bspline4 | ( | double | x | ) |
Evaluate the 2nd derivative of a 5th Order B-Spline.
x | Position |
Referenced by fillcoPermanentMultipole().
VPRIVATE double d3bspline4 | ( | double | x | ) |
Evaluate the 3rd derivative of a 5th Order B-Spline.
x | Position |
VPRIVATE double dbspline2 | ( | double | x | ) |
Evaluate a cubic B-spline derivative.
x | Position |
Referenced by qfForceSpline2().
VPRIVATE double dbspline4 | ( | double | x | ) |
Evaluate a 5th Order B-Spline derivative (4th order polynomial).
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.
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().
VPRIVATE Vrc_Codes fillcoCharge | ( | Vpmg * | thee | ) |
Top-level driver to fill source term charge array.
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().
VPRIVATE Vrc_Codes fillcoChargeMap | ( | Vpmg * | thee | ) |
Fill source term charge array from a pre-calculated map.
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().
VPRIVATE void fillcoChargeSpline1 | ( | Vpmg * | thee | ) |
Fill source term charge array from linear interpolation.
References sVpbe::alist, sVpmgp::bcfl, BCFL_FOCUS, sVpmg::charge, sVpmgp::hx, sVpmgp::hy, sVpmgp::hzed, sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVpmg::pbe, sVpmg::pmgp, Valist_getAtom(), Valist_getNumberAtoms(), Vatom_getCharge(), Vatom_getPosition(), Vpbe_getZmagic(), sVpmgp::xcent, sVpmgp::xlen, sVpmgp::ycent, sVpmgp::ylen, sVpmgp::zcent, and sVpmgp::zlen.
Referenced by fillcoCharge().
VPRIVATE void fillcoChargeSpline2 | ( | Vpmg * | thee | ) |
Fill source term charge array from cubic spline interpolation.
References sVpbe::alist, sVpmgp::bcfl, BCFL_FOCUS, bspline2(), sVpmg::charge, sVpmgp::hx, sVpmgp::hy, sVpmgp::hzed, sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVpmg::pbe, sVpmg::pmgp, Valist_getAtom(), Valist_getNumberAtoms(), Vatom_getCharge(), Vatom_getPosition(), Vpbe_getZmagic(), sVpmgp::xcent, sVpmgp::xlen, sVpmgp::ycent, sVpmgp::ylen, sVpmgp::zcent, and sVpmgp::zlen.
Referenced by fillcoCharge().
VPRIVATE void fillcoCoef | ( | Vpmg * | thee | ) |
Top-level driver to fill all operator coefficient arrays.
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().
VPRIVATE void fillcoCoefMap | ( | Vpmg * | thee | ) |
Fill operator coefficient arrays from pre-calculated maps.
References sVpmg::dielXMap, sVpmg::dielYMap, sVpmg::dielZMap, sVpmg::epsx, sVpmg::epsy, sVpmg::epsz, sVpmgp::hx, sVpmgp::hy, sVpmgp::hzed, sVpmg::kappa, sVpmg::kappaMap, sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVpmg::pbe, sVpmg::pmgp, sVpmg::useDielXMap, sVpmg::useDielYMap, sVpmg::useDielZMap, sVpmg::useKappaMap, Vgrid_value(), Vpbe_getBulkIonicStrength(), VPMGSMALL, sVpmg::xf, sVpmg::yf, and sVpmg::zf.
Referenced by fillcoCoef(), and fillcoCoefMol().
VPRIVATE void fillcoCoefMol | ( | Vpmg * | thee | ) |
Fill operator coefficient arrays from a molecular surface calculation.
References fillcoCoefMap(), fillcoCoefMolDiel(), fillcoCoefMolIon(), sVpmg::useDielXMap, sVpmg::useDielYMap, sVpmg::useDielZMap, and sVpmg::useKappaMap.
Referenced by fillcoCoef().
VPRIVATE void fillcoCoefMolDiel | ( | Vpmg * | thee | ) |
Fill differential operator coefficient arrays from a molecular surface calculation.
References fillcoCoefMolDielNoSmooth(), fillcoCoefMolDielSmooth(), sVpmg::surfMeth, and VSM_MOLSMOOTH.
Referenced by fillcoCoefMol().
VPRIVATE void fillcoCoefMolDielNoSmooth | ( | Vpmg * | thee | ) |
Fill differential operator coefficient arrays from a molecular surface calculation without smoothing.
References sVpbe::acc, sVpbe::alist, sVpmgp::bcfl, BCFL_FOCUS, sVpmg::epsx, sVpmg::epsy, sVpmg::epsz, sVpmgp::hx, sVpmgp::hy, sVpmgp::hzed, markSphere(), sVaccSurf::npts, sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVpmg::pbe, sVpmg::pmgp, Vacc_atomSASA(), Vacc_atomSASPoints(), Vacc_SASA(), Valist_getAtom(), Valist_getNumberAtoms(), Vatom_getPosition(), Vatom_getRadius(), Vpbe_getSoluteDiel(), Vpbe_getSolventDiel(), Vpbe_getSolventRadius(), sVpmgp::xcent, sVpmgp::xlen, sVaccSurf::xpts, sVpmgp::ycent, sVpmgp::ylen, sVaccSurf::ypts, sVpmgp::zcent, sVpmgp::zlen, and sVaccSurf::zpts.
Referenced by fillcoCoefMolDiel().
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.
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().
VPRIVATE void fillcoCoefMolIon | ( | Vpmg * | thee | ) |
Fill ion (nonlinear) operator coefficient array from a molecular surface calculation.
References sVpbe::acc, sVpbe::alist, sVpmgp::bcfl, BCFL_FOCUS, sVpmgp::hx, sVpmgp::hy, sVpmgp::hzed, sVpmg::kappa, markSphere(), sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVpmg::pbe, sVpmg::pmgp, sVpmg::surfMeth, Valist_getAtom(), Valist_getNumberAtoms(), Vatom_getPosition(), Vatom_getRadius(), Vpbe_getBulkIonicStrength(), Vpbe_getMaxIonRadius(), VPMGSMALL, sVpmgp::xcent, sVpmgp::xlen, sVpmgp::ycent, sVpmgp::ylen, sVpmgp::zcent, and sVpmgp::zlen.
Referenced by fillcoCoefMol().
VPRIVATE void fillcoCoefSpline | ( | Vpmg * | thee | ) |
Fill operator coefficient arrays from a spline-based surface calculation.
References sVpbe::alist, sVpmgp::bcfl, BCFL_FOCUS, sVpmg::epsx, sVpmg::epsy, sVpmg::epsz, sVpmgp::hx, sVpmgp::hy, sVpmgp::hzed, sVpmg::kappa, sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVpmg::pbe, sVpmg::pmgp, sVpmg::splineWin, Valist_getAtom(), Valist_getNumberAtoms(), Vatom_getPosition(), Vatom_getRadius(), Vpbe_getBulkIonicStrength(), Vpbe_getMaxIonRadius(), Vpbe_getSoluteDiel(), Vpbe_getSolventDiel(), VPMGSMALL, sVpmgp::xcent, sVpmgp::xlen, sVpmgp::ycent, sVpmgp::ylen, sVpmgp::zcent, and sVpmgp::zlen.
Referenced by fillcoCoef().
VPRIVATE void fillcoCoefSpline3 | ( | Vpmg * | thee | ) |
Fill operator coefficient arrays from a 5th order polynomial based surface calculation.
References sVpbe::alist, sVpmgp::bcfl, BCFL_FOCUS, sVpmg::epsx, sVpmg::epsy, sVpmg::epsz, sVpmgp::hx, sVpmgp::hy, sVpmgp::hzed, sVpmg::kappa, sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVpmg::pbe, sVpmg::pmgp, sVpmg::splineWin, Valist_getAtom(), Valist_getNumberAtoms(), Vatom_getPosition(), Vatom_getRadius(), Vpbe_getBulkIonicStrength(), Vpbe_getMaxIonRadius(), Vpbe_getSoluteDiel(), Vpbe_getSolventDiel(), VPMGSMALL, sVpmgp::xcent, sVpmgp::xlen, sVpmgp::ycent, sVpmgp::ylen, sVpmgp::zcent, and sVpmgp::zlen.
Referenced by fillcoCoef().
VPRIVATE void fillcoCoefSpline4 | ( | Vpmg * | thee | ) |
Fill operator coefficient arrays from a 7th order polynomial based surface calculation.
References sVpbe::alist, sVpmgp::bcfl, BCFL_FOCUS, sVpmg::epsx, sVpmg::epsy, sVpmg::epsz, sVpmgp::hx, sVpmgp::hy, sVpmgp::hzed, sVpmg::kappa, sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVpmg::pbe, sVpmg::pmgp, sVpmg::splineWin, Valist_getAtom(), Valist_getNumberAtoms(), Vatom_getPosition(), Vatom_getRadius(), Vpbe_getBulkIonicStrength(), Vpbe_getMaxIonRadius(), Vpbe_getSoluteDiel(), Vpbe_getSolventDiel(), VPMGSMALL, sVpmgp::xcent, sVpmgp::xlen, sVpmgp::ycent, sVpmgp::ylen, sVpmgp::zcent, and sVpmgp::zlen.
Referenced by fillcoCoef().
VPRIVATE void fillcoInducedDipole | ( | Vpmg * | thee | ) |
Fill source term charge array for use of induced dipoles.
Referenced by fillcoCharge().
VPRIVATE void fillcoNLInducedDipole | ( | Vpmg * | thee | ) |
Fill source term charge array for non-local induced dipoles.
Referenced by fillcoCharge().
VPRIVATE void fillcoPermanentMultipole | ( | Vpmg * | thee | ) |
Fill source term charge array for the use of permanent multipoles.
References sVpbe::alist, bspline4(), sVpmg::charge, d2bspline4(), dbspline4(), sVpmgp::hx, sVpmgp::hy, sVpmgp::hzed, sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVpmg::pbe, sVpmg::pmgp, Valist_getAtom(), Valist_getNumberAtoms(), Vatom_getCharge(), Vatom_getPosition(), VFCHI4(), Vpbe_getZmagic(), sVpmgp::xcent, sVpmgp::xlen, sVpmgp::ycent, sVpmgp::ylen, sVpmgp::zcent, and sVpmgp::zlen.
Referenced by fillcoCharge().
For focusing, fill in the boundaries of the new mesh based on the potential values in the old mesh.
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().
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.
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.
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.
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().
VPRIVATE void qfForceSpline2 | ( | Vpmg * | thee, | |
double * | force, | |||
int | atomID | |||
) |
Charge-field force due to a cubic spline charge function.
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().
VPRIVATE void qfForceSpline4 | ( | Vpmg * | thee, | |
double * | force, | |||
int | atomID | |||
) |
Charge-field force due to a quintic spline charge function.
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().
VPRIVATE double VFCHI4 | ( | int | i, | |
double | f | |||
) |
Return 2.5 plus difference of 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.
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.
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).
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().
VPRIVATE double Vpmg_qfEnergyVolume | ( | Vpmg * | thee, | |
int | extFlag | |||
) |
Calculates charge-potential energy as integral over a volume.
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().
VPRIVATE double Vpmg_qmEnergySMPBE | ( | Vpmg * | thee, | |
int | extFlag | |||
) |
Vpmg_qmEnergy for SMPBE.
References sVpmg::extQmEnergy, sVpmg::filled, sVpmgp::hx, sVpmgp::hy, sVpmgp::hzed, sVpmg::kappa, MAXION, sVpmgp::nonlin, sVpmgp::nx, sVpmgp::ny, sVpmgp::nz, sVpmg::pbe, sVpmg::pmgp, sVpmg::pvec, sVpbe::smsize, sVpbe::smvolume, sVpmg::u, Vcap_exp(), Vpbe_getBulkIonicStrength(), Vpbe_getIons(), and Vpbe_getZkappa2().
Referenced by Vpmg_qmEnergy().
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.
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().
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.
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().