Linear solvation models: shared electrostatics implementation. More...
#include <LinearPCM.h>
Public Member Functions | |
| LinearPCM (const Everything &e, const FluidSolverParams &fsp) | |
| Parameters same as createFluidSolver() | |
| bool | prefersGummel () const |
| Specify whether fluid prefers a gummel loop (true) or is minimized each time (false) | |
| ScalarFieldTilde | hessian (const ScalarFieldTilde &) const |
| Implements LinearSolvable::hessian for the dielectric poisson equation. | |
| ScalarFieldTilde | precondition (const ScalarFieldTilde &) const |
| Implements a modified inverse kinetic preconditioner. | |
| void | minimizeFluid () |
| Converge using linear conjugate gradients. | |
| void | loadState (const char *filename) |
| Load state from file. | |
| void | saveState (const char *filename) const |
| Save state to file. | |
Public Member Functions inherited from PCM | |
| PCM (const Everything &e, const FluidSolverParams &fsp) | |
| void | dumpDensities (const char *filenamePattern) const |
| dump cavity shape functions | |
| void | dumpDebug (const char *filenamePattern) const |
| generate fluidDebug text file with common info to all PCMs | |
Public Member Functions inherited from FluidSolver | |
| FluidSolver (const Everything &e, const FluidSolverParams &fsp) | |
| atomic positions per species in the relevant coordinate system (depending on embedding option) More... | |
| double | ionWidthMuCorrection () const |
| correction to electron chemical potential due to finite ion width in fluid interaction | |
| bool | useGummel () const |
| void | set (const ScalarFieldTilde &rhoExplicitTilde, const ScalarFieldTilde &nCavityTilde) |
| double | get_Adiel_and_grad (ScalarFieldTilde *Adiel_rhoExplicitTilde=0, ScalarFieldTilde *Adiel_nCavityTilde=0, IonicGradient *extraForces=0, bool electricOnly=false) const |
| virtual double | bulkPotential () |
Public Member Functions inherited from LinearSolvable< ScalarFieldTilde > | |
| virtual double | sync (double x) const |
| Override to synchronize scalars over MPI processes (if the same minimization is happening in sync over many processes) | |
| int | solve (const ScalarFieldTilde &rhs, const MinimizeParams ¶ms) |
Protected Member Functions | |
| void | set_internal (const ScalarFieldTilde &rhoExplicitTilde, const ScalarFieldTilde &nCavityTilde) |
| Fluid-dependent implementation of set() | |
| double | get_Adiel_and_grad_internal (ScalarFieldTilde &grad_rhoExplicitTilde, ScalarFieldTilde &grad_nCavityTilde, IonicGradient *extraForces, bool electricOnly) const |
| Fluid-dependent implementation of get_Adiel_and_grad() | |
Protected Member Functions inherited from PCM | |
| virtual void | printDebug (FILE *fp) const |
| over-ride to get extra PCM-specific output in fluidDebug text file | |
| void | updateCavity () |
| update shape function(s) from nCavity, and energies dependent upon shape alone | |
| void | propagateCavityGradients (const ScalarField &A_shape, ScalarField &A_nCavity, ScalarFieldTilde &A_rhoExplicitTilde, bool electricOnly) const |
| propagate A_shape (+ cached Acavity_shape) and accumulate to those w.r.t nCavity and rhoExplicitTilde | |
| void | setExtraForces (IonicGradient *forces, const ScalarFieldTilde &A_nCavityTilde) const |
| set extra fluid forces (vdw and full-core forces, when applicable) | |
| ScalarFieldTilde | getFullCore () const |
| get full core correction for PCM variants that need them | |
Friends | |
| class | NonlinearPCM |
Additional Inherited Members | |
Public Attributes inherited from FluidSolver | |
| const Everything & | e |
| const GridInfo & | gInfo |
| const FluidSolverParams & | fsp |
| double | epsBulk |
| double | epsInf |
| bulk dielectric constants of fluid | |
| double | k2factor |
| prefactor to screening term (0 => no ionic screening) | |
|
std::vector< std::vector < vector3<> > > | atpos |
Public Attributes inherited from LinearSolvable< ScalarFieldTilde > | |
| ScalarFieldTilde | state |
| the location of the minimum, obtained by solving hessian * state == rhs | |
Static Protected Member Functions inherited from PCM | |
| static ScalarFieldTilde | coulomb (const ScalarFieldTilde &rho) |
Protected Attributes inherited from PCM | |
| EnergyComponents | Adiel |
| PCM energy components. | |
| ScalarFieldTilde | rhoExplicitTilde |
| Charge density of explicit (electronic) system. | |
| ScalarField | nCavity |
| ScalarField | tauCavity |
| ScalarField | nCavityEx [2] |
| Cavity determining electron density (or product for SaLSA, or KE density for SG14tauVW, and expanded electron densities for the SGA13 variant) | |
| ScalarField | shape |
| ScalarField | shapeVdw |
| Electrostatic cavity shape function (and separate cavitation/dispersion shape function for the SGA13 variant) | |
| std::vector< RadialFunctionG > | Sf |
| spherically-averaged structure factors for each solvent site | |
| std::vector< int > | atomicNumbers |
| atomic number for each solvent site (for dispersion interactions) | |
Linear solvation models: shared electrostatics implementation.