occ
Loading...
Searching...
No Matches
occ::driver::CGSolvationModel Class Referenceabstract

Produces solvation surfaces for the cg pipeline. More...

#include <cg_solvation_model.h>

Public Member Functions

virtual ~CGSolvationModel ()=default
 
virtual std::string name () const =0
 
virtual bool supports_solvated_wavefunctions () const =0
 Whether the model can supply a wavefunction polarised by the real solvent.
 
virtual double standard_state_shift () const
 Shift, in Hartree, taking the model's solvation free energy onto the same gas standard state as the sublimation free energy it is added to.
 
virtual void validate (const SolventSpec &) const
 Rejects a mixture unless the model handles one.
 
virtual CGSolvationResult compute (const std::string &basename, const std::vector< core::Molecule > &molecules, const std::vector< qm::Wavefunction > &gas_wavefunctions, const SolventSpec &solvent)=0
 

Detailed Description

Produces solvation surfaces for the cg pipeline.

Implementations differ only in how the per-element energies are obtained; everything downstream — partitioning, attribution, the result records — is shared.

Constructor & Destructor Documentation

◆ ~CGSolvationModel()

virtual occ::driver::CGSolvationModel::~CGSolvationModel ( )
virtualdefault

Member Function Documentation

◆ compute()

virtual CGSolvationResult occ::driver::CGSolvationModel::compute ( const std::string &  basename,
const std::vector< core::Molecule > &  molecules,
const std::vector< qm::Wavefunction > &  gas_wavefunctions,
const SolventSpec solvent 
)
pure virtual

◆ name()

virtual std::string occ::driver::CGSolvationModel::name ( ) const
pure virtual

◆ standard_state_shift()

virtual double occ::driver::CGSolvationModel::standard_state_shift ( ) const
inlinevirtual

Shift, in Hartree, taking the model's solvation free energy onto the same gas standard state as the sublimation free energy it is added to.

The convention belongs to the model rather than to cg. Both SMD and openCOSMO-RS report ΔG_solv between a 1 mol/L ideal gas and a 1 mol/L solution — SMD by construction, openCOSMO-RS because its fitted intercept η was regressed onto experimental values on that convention — while cg's sublimation term ends at a 1 atm gas. Both therefore owe the RT ln(24.46) concentration shift. A model on another convention declares its own here rather than inheriting one.

Note this is not the model's own reference-state term: openCOSMO-RS's −RT ln(v_gas/v_liquid) is solute-specific (17.9 kJ/mol for water against 13.5 for cyclohexane) and is part of the fitted model, not a standard-state conversion.

◆ supports_solvated_wavefunctions()

virtual bool occ::driver::CGSolvationModel::supports_solvated_wavefunctions ( ) const
pure virtual

Whether the model can supply a wavefunction polarised by the real solvent.

openCOSMO-RS cannot: its wavefunction is the ε=∞ conductor, so asking for solvated interaction energies is an error rather than a silent degradation.

◆ validate()

virtual void occ::driver::CGSolvationModel::validate ( const SolventSpec ) const
virtual

Rejects a mixture unless the model handles one.


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