occ
Loading...
Searching...
No Matches
hirshfeld.h File Reference
#include <occ/core/linear_algebra.h>
#include <occ/core/multipole.h>
#include <occ/numint/molecular_grid.h>
#include <occ/qm/mo.h>
#include <occ/gto/shell.h>
#include <occ/slater/slaterbasis.h>
#include <vector>
Include dependency graph for hirshfeld.h:

Classes

class  occ::dft::HirshfeldPartition
 Class implementing Hirshfeld atomic charge analysis. More...

Namespaces

namespace  occ
namespace  occ::dft
 functionality related to Kohn-Sham density functional theory
namespace  occ::dft::impl

Functions

Vec occ::dft::calculate_hirshfeld_charges (const occ::gto::AOBasis &basis, const occ::qm::MolecularOrbitals &mo, int charge=0)
 Calculate Hirshfeld charges for a molecule.
std::vector< occ::core::Multipole< 4 > > occ::dft::calculate_hirshfeld_multipoles (const occ::gto::AOBasis &basis, const occ::qm::MolecularOrbitals &mo, int max_multipole_order=4, int charge=0)
 Calculate Hirshfeld multipoles for a molecule.
void occ::dft::impl::hirshfeld_kernel_restricted (Eigen::Ref< const Mat > r, Eigen::Ref< const Mat > rho, Eigen::Ref< const Vec > weights, Eigen::Ref< const Mat > rho_pro, Eigen::Ref< Vec > hirshfeld_charges, Eigen::Ref< Vec > atom_volumes, double &num_electrons, double &num_electrons_promol)
 Kernel function for calculating Hirshfeld weights with restricted orbitals.
void occ::dft::impl::hirshfeld_kernel_unrestricted (Eigen::Ref< const Mat > r, Eigen::Ref< const Mat > rho, Eigen::Ref< const Vec > weights, Eigen::Ref< const Mat > rho_pro, Eigen::Ref< Vec > hirshfeld_charges, Eigen::Ref< Vec > atom_volumes, double &num_electrons, double &num_electrons_promol)
 Kernel function for calculating Hirshfeld weights with unrestricted orbitals.
void occ::dft::impl::hirshfeld_multipole_kernel_restricted (Eigen::Ref< const Mat > r, const std::vector< Mat3N > &r_vec, Eigen::Ref< const Mat > rho, Eigen::Ref< const Vec > weights, Eigen::Ref< const Mat > rho_pro, std::vector< occ::core::Multipole< 4 > > &multipoles, Eigen::Ref< Vec > atom_volumes, double &num_electrons, double &num_electrons_promol, int max_multipole_order)
 Kernel function for calculating Hirshfeld multipoles with restricted orbitals.
void occ::dft::impl::hirshfeld_multipole_kernel_unrestricted (Eigen::Ref< const Mat > r, const std::vector< Mat3N > &r_vec, Eigen::Ref< const Mat > rho, Eigen::Ref< const Vec > weights, Eigen::Ref< const Mat > rho_pro, std::vector< occ::core::Multipole< 4 > > &multipoles, Eigen::Ref< Vec > atom_volumes, double &num_electrons, double &num_electrons_promol, int max_multipole_order)
 Kernel function for calculating Hirshfeld multipoles with unrestricted orbitals.