occ
|
Class implementing Hirshfeld atomic charge analysis. More...
#include <hirshfeld.h>
Public Member Functions | |
HirshfeldPartition (const occ::qm::AOBasis &basis, int max_multipole_order=0, int charge=0) | |
Constructor for Hirshfeld charge analysis. | |
Vec | calculate (const occ::qm::MolecularOrbitals &mo) |
Calculate Hirshfeld charges for a given set of molecular orbitals. | |
std::vector< occ::core::Multipole< 4 > > | calculate_multipoles (const occ::qm::MolecularOrbitals &mo) |
Calculate Hirshfeld multipoles for a given set of molecular orbitals. | |
const Vec & | charges () const |
Get the last calculated Hirshfeld charges. | |
const std::vector< occ::core::Multipole< 4 > > & | multipoles () const |
Get the last calculated Hirshfeld multipoles. | |
const Vec & | atom_volumes () const |
Get the volumes of each atom in the molecule. | |
const Vec & | free_atom_volumes () const |
Get the volumes of each free atom. | |
Class implementing Hirshfeld atomic charge analysis.
Hirshfeld charges are computed by partitioning the molecular electron density at each grid point according to the ratio of the promolecular density (superposition of atomic densities) for each atom to the total promolecular density.
This class can also compute higher-order atomic multipoles (dipoles, quadrupoles, octupoles and hexadecapoles) using the same Hirshfeld partitioning approach.
occ::dft::HirshfeldPartition::HirshfeldPartition | ( | const occ::qm::AOBasis & | basis, |
int | max_multipole_order = 0 , |
||
int | charge = 0 |
||
) |
Constructor for Hirshfeld charge analysis.
basis | Basis set for the molecule |
max_multipole_order | Maximum order of multipoles to compute (0-4) |
charge | Total molecular charge |
|
inline |
Get the volumes of each atom in the molecule.
Vec occ::dft::HirshfeldPartition::calculate | ( | const occ::qm::MolecularOrbitals & | mo | ) |
Calculate Hirshfeld charges for a given set of molecular orbitals.
mo | Molecular orbitals containing the density matrix |
std::vector< occ::core::Multipole< 4 > > occ::dft::HirshfeldPartition::calculate_multipoles | ( | const occ::qm::MolecularOrbitals & | mo | ) |
Calculate Hirshfeld multipoles for a given set of molecular orbitals.
mo | Molecular orbitals containing the density matrix |
|
inline |
Get the last calculated Hirshfeld charges.
|
inline |
Get the volumes of each free atom.
|
inline |
Get the last calculated Hirshfeld multipoles.