occ
Loading...
Searching...
No Matches
occ::cg Namespace Reference

Namespaces

namespace  components
 

Classes

struct  ContributionPair
 
struct  CornerMorphology
 A symmetry-unique corner type of the particle shape. More...
 
struct  CrystalGrowthResult
 
struct  DimerResult
 
struct  DimerSolventTerm
 
struct  EdgeMorphology
 A symmetry-unique edge type of the particle shape. More...
 
struct  EnergyTotal
 
struct  FacetMorphology
 A facet of the (Wulff or user) particle shape. More...
 
class  InteractionMapper
 
struct  MoleculeResult
 
struct  MorphologyResult
 Particle size/shape-dependent (surface + edge + corner) energies. More...
 
struct  NeighborAtoms
 
struct  NeighborContribution
 
struct  ParticleSample
 Broken-bond excess energy of a finite particle at one size, decomposed by inclusion-exclusion so e_excess == e_surface + e_edge + e_corner exactly. More...
 
class  SMDCalculator
 
struct  SMDSettings
 
struct  SMDSolventSurfaces
 
class  SolvationContribution
 
struct  SolventSurface
 
class  SolventSurfacePartitioner
 

Typedefs

using Crystal = occ::crystal::Crystal
 
using CrystalDimers = occ::crystal::CrystalDimers
 
using DimerMappingTable = occ::crystal::DimerMappingTable
 
using DimerIndex = occ::crystal::DimerIndex
 
using DimerIndexHash = occ::crystal::DimerIndexHash
 
using Molecule = occ::core::Molecule
 
using Dimer = occ::core::Dimer
 
using PairEnergies = std::vector< occ::interaction::CEEnergyComponents >
 
using CGEnergyComponents = ankerl::unordered_dense::map< std::string, double >
 
using CGEnergies = std::vector< CGEnergyComponents >
 
using DimerResults = std::vector< DimerResult >
 

Enumerations

enum class  PartitionScheme { NearestAtom , NearestAtomDnorm , ElectronDensity }
 

Functions

 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE (SolventSurface, positions, energies, areas)
 
 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE (SMDSolventSurfaces, coulomb, cds, electronic_energies, total_solvation_energy, electronic_contribution, gas_phase_contribution, free_energy_correction)
 
void exchange_matching_forward_reverse_pairs (const crystal::CrystalDimers::MoleculeNeighbors &neighbors, std::vector< SolvationContribution > &energy_contribution)
 
SMDSolventSurfaces from_scrf_surfaces (const occ::scrf::SolvationSurfaces &scrf_surfaces)
 Adapter from the unified occ::scrf::SolvationSurfaces per-element bundle (produced by both the xTB and HF/DFT pipelines after Phase 3) to the cg shape consumed by SolventSurfacePartitioner and the JSON writers.
 
SMDSolventSurfaces from_xtb_surfaces (const occ::xtb::SolvationSurfaces &xtb_surfaces)
 Backwards-compatible alias.
 
void to_json (nlohmann::json &, const MorphologyResult &)
 

Typedef Documentation

◆ CGEnergies

using occ::cg::CGEnergies = typedef std::vector<CGEnergyComponents>

◆ CGEnergyComponents

using occ::cg::CGEnergyComponents = typedef ankerl::unordered_dense::map<std::string, double>

◆ Crystal

◆ CrystalDimers

◆ Dimer

◆ DimerIndex

◆ DimerIndexHash

◆ DimerMappingTable

◆ DimerResults

using occ::cg::DimerResults = typedef std::vector<DimerResult>

◆ Molecule

◆ PairEnergies

Enumeration Type Documentation

◆ PartitionScheme

enum class occ::cg::PartitionScheme
strong
Enumerator
NearestAtom 
NearestAtomDnorm 
ElectronDensity 

Function Documentation

◆ exchange_matching_forward_reverse_pairs()

void occ::cg::exchange_matching_forward_reverse_pairs ( const crystal::CrystalDimers::MoleculeNeighbors neighbors,
std::vector< SolvationContribution > &  energy_contribution 
)

◆ from_scrf_surfaces()

SMDSolventSurfaces occ::cg::from_scrf_surfaces ( const occ::scrf::SolvationSurfaces scrf_surfaces)

Adapter from the unified occ::scrf::SolvationSurfaces per-element bundle (produced by both the xTB and HF/DFT pipelines after Phase 3) to the cg shape consumed by SolventSurfacePartitioner and the JSON writers.

Behaviour: • scrf::SolvationSurface.energies carries the full per-element ES contribution ½ σ_i · φ_total_i — identical algebraically to the legacy nuc_i + elec_i + pol_i per-element decomposition — so it flows straight into coulomb.energies and electronic_energies stays zero. The cg partitioner sums coulomb.energies(i) + electronic_energies(i) per element anyway, see distance_partition.cpp:108. • CPCM-X has no CDS branch (scrf_surfaces.cds == std::nullopt); the returned cds surface comes out empty. • total_solvation_energy is set to scrf_surfaces.total_energy(); the remaining DFT-flavoured fields (electronic_contribution, gas_phase_contribution, free_energy_correction) stay at their default zero — the DFT caller fills them in via SMDCalculator::calculate_free_energy_components.

◆ from_xtb_surfaces()

SMDSolventSurfaces occ::cg::from_xtb_surfaces ( const occ::xtb::SolvationSurfaces xtb_surfaces)
inline

Backwards-compatible alias.

occ::xtb::SolvationSurfaces is a type alias for occ::scrf::SolvationSurfaces (Phase 2), so this just forwards.

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE() [1/2]

occ::cg::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE ( SMDSolventSurfaces  ,
coulomb  ,
cds  ,
electronic_energies  ,
total_solvation_energy  ,
electronic_contribution  ,
gas_phase_contribution  ,
free_energy_correction   
)

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE() [2/2]

occ::cg::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE ( SolventSurface  ,
positions  ,
energies  ,
areas   
)

◆ to_json()

void occ::cg::to_json ( nlohmann::json &  ,
const MorphologyResult  
)