|
occ
|
CPCM-X (xtb-flavoured CPCM) implicit-solvent model. More...
#include <cpcmx.h>
Public Member Functions | |
| CpcmXSolvationModel (CpcmXOptions opts={}) | |
| void | initialize (const Mat3N &positions_bohr, const IVec &atomic_numbers) override |
| void | update (const Vec &atomic_charges) override |
| const Vec & | atom_potential () const override |
| double | energy () const override |
| std::string | name () const override |
| std::optional< SolvationSurfaces > | surfaces () const override |
| Optional per-element decomposition of the latest solvation contribution. | |
| Mat3N | gradient () const override |
| Analytical gradient of the solvation energy with respect to atomic positions (Hartree/Bohr, 3 × N_atoms). | |
| size_t | num_surface_points () const |
| Number of cavity surface elements (post-masking). | |
| const occ::solvent::surface::Surface & | surface () const |
| const Vec & | surface_charges () const |
Surface apparent charge σ at the most recent update(). | |
| double | dielectric () const |
| double | f_epsilon () const |
| const occ::scrf::ReactionFieldEngine & | engine () const |
| Access the underlying engine (for inspection / tests). | |
Public Member Functions inherited from occ::xtb::XtbSolvationModel | |
| virtual | ~XtbSolvationModel ()=default |
CPCM-X (xtb-flavoured CPCM) implicit-solvent model.
Treats each atom as a point charge of magnitude q_atom (the SCC's converged Mulliken charge) producing an electrostatic potential φ_i = Σ_a q_atom_a / |r_i − R_a| at cavity point i. Solves the COSMO linear system A σ = −f(ε) φ for surface charges σ, then folds back the atom-resolved screening potential V_solv_a = Σ_i σ_i / |R_a − r_i|. The variational solvation energy is E_solv = ½ q · V_solv = ½ σ · φ.
Implementation is a thin adapter over occ::scrf::ReactionFieldEngine (Phase 2). Kept as its own class because the SCC interacts with solvation via the XtbSolvationModel virtual contract; the engine itself is just the shared CPCM/COSMO math.
|
explicit |
|
inlineoverridevirtual |
Implements occ::xtb::XtbSolvationModel.
|
inline |
|
inlineoverridevirtual |
Implements occ::xtb::XtbSolvationModel.
|
inline |
Access the underlying engine (for inspection / tests).
|
inline |
|
inlineoverridevirtual |
Analytical gradient of the solvation energy with respect to atomic positions (Hartree/Bohr, 3 × N_atoms).
Frozen-cavity convention — the cavity points move rigidly with their parent atoms and per-element areas are constant. Concrete models override; the default returns an empty matrix so callers can detect "no gradient available" without surprise.
Reimplemented from occ::xtb::XtbSolvationModel.
|
overridevirtual |
Implements occ::xtb::XtbSolvationModel.
|
overridevirtual |
Implements occ::xtb::XtbSolvationModel.
|
inline |
Number of cavity surface elements (post-masking).
May be zero for an empty / pathological input.
|
inline |
|
inline |
|
overridevirtual |
Optional per-element decomposition of the latest solvation contribution.
Concrete models (CPCM-X, SMD) override; the default returns std::nullopt. Reflects the state at the most recent update(q).
Reimplemented from occ::xtb::XtbSolvationModel.
|
overridevirtual |
Implements occ::xtb::XtbSolvationModel.