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

Classes

class  XDM
 
struct  XDMAtomList
 

Functions

double becke_hole_br89_analytic (double rho, double Q, double norm)
 
double becke_hole_br89_newton (double rho, double Q, double norm)
 
double becke_hole_br89 (double rho, double Q, double norm, bool analytic=true)
 
std::pair< double, Mat3Nxdm_dispersion_energy (const XDMAtomList &atom_info, const XDM::Parameters &params={})
 
std::tuple< double, Mat3N, Mat3Nxdm_dispersion_interaction_energy (const XDMAtomList &atom_info_a, const XDMAtomList &atom_info_b, const XDM::Parameters &params={})
 
std::pair< double, Mat3Nxdm_dispersion_gradient (const occ::gto::AOBasis &basis, const occ::qm::MolecularOrbitals &mo, int charge, const std::string &functional, const std::optional< XDM::Parameters > &params=std::nullopt)
 Compute the XDM dispersion energy and nuclear gradient for a wavefunction.
 
std::optional< XDM::Parametersget_xdm_parameters (const std::string &functional)
 Get functional-specific XDM damping parameters.
 

Function Documentation

◆ becke_hole_br89()

double occ::xdm::becke_hole_br89 ( double  rho,
double  Q,
double  norm,
bool  analytic = true 
)
inline

◆ becke_hole_br89_analytic()

double occ::xdm::becke_hole_br89_analytic ( double  rho,
double  Q,
double  norm 
)

◆ becke_hole_br89_newton()

double occ::xdm::becke_hole_br89_newton ( double  rho,
double  Q,
double  norm 
)

◆ get_xdm_parameters()

std::optional< XDM::Parameters > occ::xdm::get_xdm_parameters ( const std::string &  functional)

Get functional-specific XDM damping parameters.

Returns XDM damping parameters (a1, a2) for the given functional name. Parameters are based on literature values.

Parameters
functionalName of the functional (case-insensitive)
Returns
XDM::Parameters if found, std::nullopt otherwise

References:

  • Becke & Johnson, J. Chem. Phys. 127, 154108 (2007)
  • Otero-de-la-Roza & Johnson, J. Chem. Phys. 138, 204109 (2013)

◆ xdm_dispersion_energy()

std::pair< double, Mat3N > occ::xdm::xdm_dispersion_energy ( const XDMAtomList atom_info,
const XDM::Parameters params = {} 
)

◆ xdm_dispersion_gradient()

std::pair< double, Mat3N > occ::xdm::xdm_dispersion_gradient ( const occ::gto::AOBasis basis,
const occ::qm::MolecularOrbitals mo,
int  charge,
const std::string &  functional,
const std::optional< XDM::Parameters > &  params = std::nullopt 
)

Compute the XDM dispersion energy and nuclear gradient for a wavefunction.

Self-contained entry point intended to be injected into occ::qm::GradientEvaluator as a dispersion callback, so that occ_qm does not depend on occ_xdm. If params is empty, functional-specific parameters are looked up (falling back to a1=0.7, a2=1.4).

◆ xdm_dispersion_interaction_energy()

std::tuple< double, Mat3N, Mat3N > occ::xdm::xdm_dispersion_interaction_energy ( const XDMAtomList atom_info_a,
const XDMAtomList atom_info_b,
const XDM::Parameters params = {} 
)