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, 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/2]

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

◆ update() [2/2]

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: