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.