occ
Loading...
Searching...
No Matches
occ::solvent::ContinuumSolvationModel Class Reference

SMD-style continuum solvation model used by the HF/DFT pipeline. More...

#include <solvation_correction.h>

Public Member Functions

 ContinuumSolvationModel (const std::vector< occ::core::Atom > &, const std::string &solvent="water", double charge=0.0, bool draco=false)
 
void set_solvent (const std::string &)
 
const std::string & solvent () const
 
const Mat3N & nuclear_positions () const
 
const Mat3N & surface_positions_coulomb () const
 
const Mat3N & surface_positions_cds () const
 
const Vec & surface_areas_coulomb () const
 
const Vec & surface_areas_cds () const
 
const Vec & nuclear_charges () const
 
size_t num_surface_points () const
 
void set_surface_potential (const Vec &)
 
const Vec & apparent_surface_charge ()
 
double surface_polarization_energy ()
 
double surface_charge () const
 
double smd_cds_energy () const
 
double charge () const
 
void set_charge (double charge)
 
Vec surface_cds_energy_elements () const
 
Vec surface_polarization_energy_elements () const
 
occ::scrf::SolvationSurfaces solvation_surfaces () const
 Per-element decomposition of the latest SCF in the unified occ::scrf::SolvationSurfaces shape (the same one consumed by cg).
 
const occ::scrf::ReactionFieldEngineengine () const
 Access the underlying SCRF engine — exposes the pre-factored A matrix, surfaces, and direct ASC/V_atom accessors.
 
void write_surface_file (const std::string &filename)
 
std::string name () const
 

Detailed Description

SMD-style continuum solvation model used by the HF/DFT pipeline.

Phase 2: this class is now a thin adapter over occ::scrf::ReactionFieldEngine. The public API is preserved so callers (drivers, SolvationCorrectedProcedure<Proc>, the cg solvation pipeline) do not need to change; the engine pre-factors the COSMO A matrix once and re-uses it across SCF iterations.

Constructor & Destructor Documentation

◆ ContinuumSolvationModel()

occ::solvent::ContinuumSolvationModel::ContinuumSolvationModel ( const std::vector< occ::core::Atom > &  ,
const std::string &  solvent = "water",
double  charge = 0.0,
bool  draco = false 
)

Member Function Documentation

◆ apparent_surface_charge()

const Vec & occ::solvent::ContinuumSolvationModel::apparent_surface_charge ( )

◆ charge()

double occ::solvent::ContinuumSolvationModel::charge ( ) const
inline

◆ engine()

const occ::scrf::ReactionFieldEngine & occ::solvent::ContinuumSolvationModel::engine ( ) const
inline

Access the underlying SCRF engine — exposes the pre-factored A matrix, surfaces, and direct ASC/V_atom accessors.

Phase 2 onwards.

◆ name()

std::string occ::solvent::ContinuumSolvationModel::name ( ) const
inline

◆ nuclear_charges()

const Vec & occ::solvent::ContinuumSolvationModel::nuclear_charges ( ) const
inline

◆ nuclear_positions()

const Mat3N & occ::solvent::ContinuumSolvationModel::nuclear_positions ( ) const
inline

◆ num_surface_points()

size_t occ::solvent::ContinuumSolvationModel::num_surface_points ( ) const
inline

◆ set_charge()

void occ::solvent::ContinuumSolvationModel::set_charge ( double  charge)
inline

◆ set_solvent()

void occ::solvent::ContinuumSolvationModel::set_solvent ( const std::string &  )

◆ set_surface_potential()

void occ::solvent::ContinuumSolvationModel::set_surface_potential ( const Vec &  )

◆ smd_cds_energy()

double occ::solvent::ContinuumSolvationModel::smd_cds_energy ( ) const
inline

◆ solvation_surfaces()

occ::scrf::SolvationSurfaces occ::solvent::ContinuumSolvationModel::solvation_surfaces ( ) const
inline

Per-element decomposition of the latest SCF in the unified occ::scrf::SolvationSurfaces shape (the same one consumed by cg).

The coulomb branch energies are ½ σ_i · φ_total_i per element, which is algebraically identical to nuc_i + elec_i + pol_i from the per- element decomposition above. Verify: nuc_i + elec_i + pol_i = σ_i·φ_nuc_i + σ_i·φ_elec_i − ½ σ_i·φ_total_i = σ_i·φ_total_i − ½ σ_i·φ_total_i = ½ σ_i·φ_total_i.

◆ solvent()

const std::string & occ::solvent::ContinuumSolvationModel::solvent ( ) const
inline

◆ surface_areas_cds()

const Vec & occ::solvent::ContinuumSolvationModel::surface_areas_cds ( ) const
inline

◆ surface_areas_coulomb()

const Vec & occ::solvent::ContinuumSolvationModel::surface_areas_coulomb ( ) const
inline

◆ surface_cds_energy_elements()

Vec occ::solvent::ContinuumSolvationModel::surface_cds_energy_elements ( ) const
inline

◆ surface_charge()

double occ::solvent::ContinuumSolvationModel::surface_charge ( ) const
inline

◆ surface_polarization_energy()

double occ::solvent::ContinuumSolvationModel::surface_polarization_energy ( )

◆ surface_polarization_energy_elements()

Vec occ::solvent::ContinuumSolvationModel::surface_polarization_energy_elements ( ) const

◆ surface_positions_cds()

const Mat3N & occ::solvent::ContinuumSolvationModel::surface_positions_cds ( ) const
inline

◆ surface_positions_coulomb()

const Mat3N & occ::solvent::ContinuumSolvationModel::surface_positions_coulomb ( ) const
inline

◆ write_surface_file()

void occ::solvent::ContinuumSolvationModel::write_surface_file ( const std::string &  filename)

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