|
occ
|
SMD ("Solvation Model based on Density") for GFN-xTB. More...
#include <smd_xtb.h>
Public Member Functions | |
| SmdSolvationModel (std::string solvent="water") | |
| 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). | |
| const occ::solvent::SMDSolventParameters & | parameters () const |
| double | dielectric () const |
| const occ::solvent::surface::Surface & | es_surface () const |
| size_t | num_es_surface_points () const |
| const Vec & | surface_charges () const |
Apparent surface charge σ at the latest update(q). Empty until then. | |
| const occ::solvent::surface::Surface & | cds_surface () const |
| size_t | num_cds_surface_points () const |
| const Vec & | cds_energy_elements () const |
| Per-element CDS energy contribution (Hartree). | |
| double | e_es () const |
| double | e_cds () 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 |
SMD ("Solvation Model based on Density") for GFN-xTB.
Two cavities: • Electrostatic (ES) surface with SMD intrinsic Coulomb radii — feeds a classical-COSMO ASC solve (same machinery as CpcmXSolvationModel, just with different radii). • CDS surface with SMD CDS radii — used purely geometrically to evaluate the cavitation–dispersion–solvent rearrangement (CDS) energy E_cds = (Σ_a σ_a(geom)·A_a + γ·A_total) / (1000·E_h→kcal). The CDS piece does not depend on the SCC charges; it is fixed once the geometry is known and just rides along inside energy().
Phase 2: this class is a thin adapter over occ::scrf::ReactionFieldEngine configured with Radii::SmdIntrinsicCoulomb + include_cds = true. The xTB SCC consumes solvation via the XtbSolvationModel virtual contract — keeping the class makes that hookup transparent and gives callers an "SMD-shaped" handle for inspection.
|
explicit |
|
inlineoverridevirtual |
Implements occ::xtb::XtbSolvationModel.
|
inline |
Per-element CDS energy contribution (Hartree).
Length = number of CDS surface points. Stable across update() calls (geometry only).
|
inline |
|
inline |
|
inline |
|
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 |
|
inline |
|
inline |
|
inline |
Apparent surface charge σ at the latest update(q). Empty until then.
|
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.