Base class for all PCMs. More...
#include <PCM.h>
Public Member Functions | |
| 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) | |
| Any non-electrostatic contributions to A_rhoExplicitTilde (removed from dumped d_fluid / d_tot) 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, matrix3<> *Adiel_RRT=0) const |
| void | getSusceptibility (const std::vector< complex > &omega, std::vector< SusceptibilityTerm > &susceptibility, ScalarFieldTildeArray &sTilde, bool elecOnly) const |
| Get susceptibility for a list of specified (complex) frequencies. | |
| virtual double | bulkPotential () |
| virtual bool | prefersGummel () const =0 |
| Specify whether fluid prefers a gummel loop (true) or is minimized each time (false) | |
| virtual void | loadState (const char *filename)=0 |
| Initialize fluid state from a file. | |
| virtual void | saveState (const char *filename) const =0 |
| Save fluid state to a file. | |
| virtual void | minimizeFluid ()=0 |
| Minimize fluid side (holding explicit electronic system fixed) | |
Protected Member Functions | |
| 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 ScalarFieldArray &A_shape, ScalarField &A_nCavity, ScalarFieldTilde &A_rhoExplicitTilde, IonicGradient *forces, matrix3<> *Adiel_RRT) const |
| void | accumExtraForces (IonicGradient *forces, const ScalarFieldTilde &A_nCavityTilde) const |
| Accumulate extra fluid forces (vdw and full-core forces, when applicable) | |
| ScalarFieldTilde | getFullCore () const |
| get full core correction for PCM variants that need them | |
Protected Member Functions inherited from FluidSolver | |
| virtual void | set_internal (const ScalarFieldTilde &rhoExplicitTilde, const ScalarFieldTilde &nCavityTilde)=0 |
| Fluid-dependent implementation of set() | |
| virtual double | get_Adiel_and_grad_internal (ScalarFieldTilde &Adiel_rhoExplicitTilde, ScalarFieldTilde &Adiel_nCavityTilde, IonicGradient *extraForces, matrix3<> *Adiel_RRT) const =0 |
| Fluid-dependent implementation of get_Adiel_and_grad() | |
| virtual void | getSusceptibility_internal (const std::vector< complex > &omega, std::vector< SusceptibilityTerm > &susceptibility, ScalarFieldArray &sArr, bool elecOnly) const |
| Fluid-dependent implementation of getSusceptibility() | |
Static Protected Member Functions | |
| static ScalarFieldTilde | coulomb (const ScalarFieldTilde &rho) |
| static matrix3 | coulombStress (const ScalarFieldTilde &X, const ScalarFieldTilde &Y) |
Protected Attributes | |
| 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) | |
| ScalarFieldArray | shape |
| Electrostatic cavity shape function. Second component, if any, is separate ionic cavity. | |
| ScalarField | shapeVdw |
| 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) | |
Friends | |
| struct | ChargedDefect |
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 |
| ScalarFieldTilde | A_rhoNonES |
| atomic positions per species in the relevant coordinate system (depending on embedding option) | |
Base class for all PCMs.
|
protected |
Propagate A_shape (+ cached Acavity_shape) and accumulate to gradients w.r.t nCavity and rhoExplicitTilde. Set fluid force contributions (for atom-sphere cavities) and stress contributions if non-null.