occ
Loading...
Searching...
No Matches
cosmo_kernel.h File Reference
#include <Eigen/LU>
#include <array>
#include <occ/core/linear_algebra.h>
Include dependency graph for cosmo_kernel.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  occ::scrf::detail::MultipoleKernel
 Geometric factors of the atom-centred multipole expansion evaluated at a displacement d = r_cavity − R_atom: More...
 
struct  occ::scrf::detail::MultipoleDamping
 Short-range damping of the dipole and quadrupole kernels, f_n(d) = 1/(1 + 6·(rco/d)^kdmp_n), applied to t1 with n = 3 and to t2 with n = 5. More...
 
struct  occ::scrf::detail::CosmoResponse
 Pre-solved CPCM/COSMO response operator on a cavity, driven by atom- centred point-charge sources. More...
 

Namespaces

namespace  occ
 
namespace  occ::scrf
 
namespace  occ::scrf::detail
 Self-consistent reaction-field (SCRF) primitives shared between the HF/DFT-side occ::solvent::COSMO driver and the xTB-side CPCM-X / SMD implicit-solvation models.
 

Functions

Mat occ::scrf::detail::build_cosmo_A (const Mat3N &cavity_points, const Vec &cavity_areas)
 Build the dense COSMO A matrix on a discretised cavity: A(i, j) = 1/|r_i − r_j|, off-diagonal A(i, i) = 1.07·√(4π/S_i) ≈ 3.793051240937804 / √S_i cavity_points is 3 × ncav (Bohr), cavity_areas is ncav (Bohr²).
 
Mat occ::scrf::detail::build_atom_cavity_coulomb (const Mat3N &cavity_points, const Mat3N &atom_positions)
 Build the atom↔cavity Coulomb operator B(i, a) = 1/|r_i − R_a|.
 
MultipoleKernel occ::scrf::detail::multipole_kernel (const Vec3 &d, MultipoleDamping damping={})
 
Vec3 occ::scrf::detail::multipole_kernel_gradient (const Vec3 &d, double q, const Vec3 &mu, const double *theta, MultipoleDamping damping={})
 ∂φ/∂d for one atom's moments, the gradient counterpart of multipole_kernel.
 
CosmoResponse occ::scrf::detail::build_cosmo_response (const Mat3N &atom_positions_bohr, const Mat3N &cavity_points, const Vec &cavity_areas, double epsilon, double x)
 Build the pre-solved response.
 
Mat3N occ::scrf::detail::cosmo_gradient_frozen (const Mat3N &atom_positions_bohr, const Mat3N &cavity_points, const Vec &cavity_areas, const IVec &cavity_atom_index, const Vec &atom_charges, const Vec &sigma, double f_epsilon, const Vec &atom_radii_bohr=Vec(), double smoothing_width_bohr=0.0, const Mat3N &atom_dipoles=Mat3N(), const Mat &atom_quadrupoles=Mat(), const Vec &damping_rco_bohr=Vec(), double kdmp3=3.0, double kdmp5=4.0)
 Frozen-cavity analytical gradient of the polarisation energy with respect to atomic positions: