occ
Loading...
Searching...
No Matches
occ::core::charges Namespace Reference

Classes

struct  EeqEwaldData
 
struct  EeqWithGradient
 EEQ partial charges + their derivative wrt nuclear positions. More...
 

Functions

occ::Vec eem_partial_charges (const occ::IVec &atomic_numbers, const occ::Mat3N &positions, double charge=0.0)
 Determine the atomic partial charges of atoms at provided positions, constraining the net charge.
 
Vec eeq_coordination_numbers (const occ::IVec &atomic_numbers, const occ::Mat3N &positions)
 Determine the atomic coordination numbers of atoms at provided positions, for the EEQ method described in https://dx.doi.org/10.1063/1.5090222.
 
Vec eeq_partial_charges (const occ::IVec &atomic_numbers, const occ::Mat3N &positions, double charge=0.0)
 Determine the atomic partial charges of atoms at provided positions, constraining the net charge, using the EEQ method described in https://dx.doi.org/10.1063/1.5090222.
 
EeqWithGradient eeq_partial_charges_and_gradient (const occ::IVec &atomic_numbers, const occ::Mat3N &positions_angstrom, double charge=0.0)
 
EeqEwaldData build_eeq_ewald_data (const occ::Mat3 &lattice_bohr, double tol=1e-10, double alpha_user=0.0)
 
occ::Vec eeq_coordination_numbers_periodic (const occ::IVec &atomic_numbers, const occ::Mat3N &positions_angstrom, const occ::Mat3 &lattice_angstrom, double cutoff_angstrom=25.0)
 
occ::Vec eeq_partial_charges_periodic (const occ::IVec &atomic_numbers, const occ::Mat3N &positions_angstrom, const occ::Mat3 &lattice_angstrom, double total_charge=0.0, double tol=1e-10)
 

Function Documentation

◆ build_eeq_ewald_data()

EeqEwaldData occ::core::charges::build_eeq_ewald_data ( const occ::Mat3 lattice_bohr,
double  tol = 1e-10,
double  alpha_user = 0.0 
)

◆ eem_partial_charges()

occ::Vec occ::core::charges::eem_partial_charges ( const occ::IVec atomic_numbers,
const occ::Mat3N positions,
double  charge = 0.0 
)

Determine the atomic partial charges of atoms at provided positions, constraining the net charge.

Parameters
atomic_numbersconst IVec& of length N atomic numbers
positionsconst Mat3N& of dimensions (3, N) positions in Angstroms
chargedouble of the system net charge (default 0 i.e. neutral)
Returns
charges Vec representing partial charges at each of the N atomic sites

◆ eeq_coordination_numbers()

Vec occ::core::charges::eeq_coordination_numbers ( const occ::IVec atomic_numbers,
const occ::Mat3N positions 
)

Determine the atomic coordination numbers of atoms at provided positions, for the EEQ method described in https://dx.doi.org/10.1063/1.5090222.

Parameters
atomic_numbersconst IVec& of length N atomic numbers
positionsconst Mat3N& of dimensions (3, N) positions in Angstroms
Returns
cn Vec representing (fractional) coordination numbers for each of the N atoms

◆ eeq_coordination_numbers_periodic()

occ::Vec occ::core::charges::eeq_coordination_numbers_periodic ( const occ::IVec atomic_numbers,
const occ::Mat3N positions_angstrom,
const occ::Mat3 lattice_angstrom,
double  cutoff_angstrom = 25.0 
)

◆ eeq_partial_charges()

Vec occ::core::charges::eeq_partial_charges ( const occ::IVec atomic_numbers,
const occ::Mat3N positions,
double  charge = 0.0 
)

Determine the atomic partial charges of atoms at provided positions, constraining the net charge, using the EEQ method described in https://dx.doi.org/10.1063/1.5090222.

Parameters
atomic_numbersconst IVec& of length N atomic numbers
positionsconst Mat3N& of dimensions (3, N) positions in Angstroms
chargedouble of the system net charge (default 0 i.e. neutral)
Returns
charges Vec representing partial charges at each of the N atomic sites

◆ eeq_partial_charges_and_gradient()

EeqWithGradient occ::core::charges::eeq_partial_charges_and_gradient ( const occ::IVec atomic_numbers,
const occ::Mat3N positions_angstrom,
double  charge = 0.0 
)

◆ eeq_partial_charges_periodic()

occ::Vec occ::core::charges::eeq_partial_charges_periodic ( const occ::IVec atomic_numbers,
const occ::Mat3N positions_angstrom,
const occ::Mat3 lattice_angstrom,
double  total_charge = 0.0,
double  tol = 1e-10 
)