occ
Loading...
Searching...
No Matches
occ::xtb::NullSolvationModel Class Referencefinal

No-op solvation model — preserves gas-phase numbers. More...

#include <solvation_interface.h>

Inheritance diagram for occ::xtb::NullSolvationModel:
[legend]
Collaboration diagram for occ::xtb::NullSolvationModel:
[legend]

Public Member Functions

void initialize (const Mat3N &, const IVec &atomic_numbers) override
 
void update (const Vec &) override
 
const Vec & atom_potential () const override
 
double energy () const override
 
std::string name () const override
 
virtual void update (const Vec &atomic_charges)=0
 
virtual void update (const Vec &atomic_charges, const Mat3N &, const Mat &)
 Update from the atomic charges together with the CAMM atomic dipoles (3 × N) and traceless quadrupoles (6 × N, CammMoments::qp layout), so the anisotropic part of the density polarises the continuum too.
 
- Public Member Functions inherited from occ::xtb::XtbSolvationModel
virtual ~XtbSolvationModel ()=default
 
virtual void set_multipole_damping (const Vec &, double, double)
 Hand the model the solute's own short-range damping radii for the atom→cavity dipole and quadrupole kernels, so a multipolar reaction field treats the CAMM moments the way the rest of the method does.
 
virtual const Mat3N & dipole_potential () const
 Conjugates of the atomic dipoles and quadrupoles at the last update: ∂E_solv/∂μ (3 × N) and ∂E_solv/∂Θ (6 × N, same layout as the input).
 
virtual const Mat & quadrupole_potential () const
 
virtual const Vec & damping_radius_gradient () const
 ∂E_solv/∂R_co per atom, for damping radii that depend on the geometry.
 
virtual std::optional< SolvationSurfaces > surfaces () const
 Optional per-element decomposition of the latest solvation contribution.
 
virtual Mat3N gradient () const
 Analytical gradient of the solvation energy with respect to atomic positions (Hartree/Bohr, 3 × N_atoms).
 

Detailed Description

No-op solvation model — preserves gas-phase numbers.

Used as the Phase 7A correctness gate and as a sentinel for "solvation off" in code paths that already hold a model pointer.

Member Function Documentation

◆ atom_potential()

const Vec & occ::xtb::NullSolvationModel::atom_potential ( ) const
inlineoverridevirtual

◆ energy()

double occ::xtb::NullSolvationModel::energy ( ) const
inlineoverridevirtual

◆ initialize()

void occ::xtb::NullSolvationModel::initialize ( const Mat3N &  ,
const IVec &  atomic_numbers 
)
inlineoverridevirtual

◆ name()

std::string occ::xtb::NullSolvationModel::name ( ) const
inlineoverridevirtual

◆ update() [1/3]

void occ::xtb::NullSolvationModel::update ( const Vec &  )
inlineoverridevirtual

◆ update() [2/3]

virtual void occ::xtb::XtbSolvationModel::update ( const Vec &  atomic_charges)
virtual

◆ update() [3/3]

virtual void occ::xtb::XtbSolvationModel::update ( const Vec &  atomic_charges,
const Mat3N &  ,
const Mat &   
)
inlinevirtual

Update from the atomic charges together with the CAMM atomic dipoles (3 × N) and traceless quadrupoles (6 × N, CammMoments::qp layout), so the anisotropic part of the density polarises the continuum too.

The default drops them, which leaves charge-only models unchanged.

Reimplemented from occ::xtb::XtbSolvationModel.


The documentation for this class was generated from the following file: