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. | |
void | dumpDensities (const char *filenamePattern) const |
Dump fluid densities 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) | |
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) 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) 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 ScalarFieldArray &A_shape, ScalarField &A_nCavity, ScalarFieldTilde &A_rhoExplicitTilde, IonicGradient *forces) 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 | |
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 |
ScalarFieldTilde | A_rhoNonES |
atomic positions per species in the relevant coordinate system (depending on embedding option) | |
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) | |
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) | |
Linear solvation models: shared electrostatics implementation.