occ
Loading...
Searching...
No Matches
occ::dft::HirshfeldPartition Class Reference

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.
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ HirshfeldPartition()

occ::dft::HirshfeldPartition::HirshfeldPartition ( const occ::qm::AOBasis basis,
int  max_multipole_order = 0,
int  charge = 0 
)

Constructor for Hirshfeld charge analysis.

Parameters
basisBasis set for the molecule
max_multipole_orderMaximum order of multipoles to compute (0-4)
chargeTotal molecular charge

Member Function Documentation

◆ atom_volumes()

const Vec & occ::dft::HirshfeldPartition::atom_volumes ( ) const
inline

Get the volumes of each atom in the molecule.

Returns
const Vec& Reference to the atomic volumes

◆ calculate()

Vec occ::dft::HirshfeldPartition::calculate ( const occ::qm::MolecularOrbitals mo)

Calculate Hirshfeld charges for a given set of molecular orbitals.

Parameters
moMolecular orbitals containing the density matrix
Returns
Vec Vector of Hirshfeld charges for each atom

◆ calculate_multipoles()

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.

Parameters
moMolecular orbitals containing the density matrix
Returns
std::vector<occ::core::Multipole<4>> Vector of Hirshfeld multipoles for each atom

◆ charges()

const Vec & occ::dft::HirshfeldPartition::charges ( ) const
inline

Get the last calculated Hirshfeld charges.

Returns
const Vec& Reference to the Hirshfeld charges

◆ free_atom_volumes()

const Vec & occ::dft::HirshfeldPartition::free_atom_volumes ( ) const
inline

Get the volumes of each free atom.

Returns
const Vec& Reference to the free atom volumes

◆ multipoles()

const std::vector< occ::core::Multipole< 4 > > & occ::dft::HirshfeldPartition::multipoles ( ) const
inline

Get the last calculated Hirshfeld multipoles.

Returns
const std::vector<occ::core::Multipole<4>>& Reference to the Hirshfeld multipoles

The documentation for this class was generated from the following file: