34#ifndef VOTCA_XTP_HIRSHFELDPARTITION_H
35#define VOTCA_XTP_HIRSHFELDPARTITION_H
63 const QMMolecule& mol,
const std::string& basisset_name,
64 const std::map<std::string, Eigen::MatrixXd>& reference_densities);
74 const Eigen::MatrixXd& reference_density,
75 const Eigen::Vector3d& point);
83 const AOBasis& atom_basis,
const Eigen::MatrixXd& reference_density,
84 const Eigen::Vector3d& point);
89 static double EvaluateWeight(
const std::vector<AtomicReference>& atoms,
90 Index target_atom_index,
91 const Eigen::Vector3d& point);
102 const std::vector<AtomicReference>& atoms,
Index target_atom_index,
103 Index differentiate_atom_index,
const Eigen::Vector3d& point);
115 const std::vector<AtomicReference>& atoms,
Index target_atom_index,
116 const Eigen::Vector3d& point);
129 const std::vector<AtomicReference>& atoms,
Index target_atom_index,
130 const Eigen::MatrixXd& density_matrix,
const QMMolecule& mol,
143 const std::vector<AtomicReference>& atoms,
Index target_atom_index,
144 const Eigen::MatrixXd& density_matrix,
const AOBasis& full_dftbasis,
153 const std::vector<AtomicReference>& atoms,
Index target_atom_index,
154 const Eigen::MatrixXd& density_matrix,
const AOBasis& full_dftbasis,
163 const std::vector<AtomicReference>& atoms,
Index target_atom_index,
164 const Eigen::MatrixXd& density_matrix,
const QMMolecule& mol,
175 const std::vector<AtomicReference>& atoms,
Index target_atom_index,
Container to hold Basisfunctions for all atoms.
static std::vector< AtomicReference > BuildAtomicReferences(const QMMolecule &mol, const std::string &basisset_name, const std::map< std::string, Eigen::MatrixXd > &reference_densities)
static double EvaluateWeight(const std::vector< AtomicReference > &atoms, Index target_atom_index, const Eigen::Vector3d &point)
static double EvaluateAtomicDensity(const AOBasis &atom_basis, const Eigen::MatrixXd &reference_density, const Eigen::Vector3d &point)
static Eigen::MatrixXd WeightFunctionDerivativeContribution(const std::vector< AtomicReference > &atoms, Index target_atom_index, const Eigen::MatrixXd &density_matrix, const AOBasis &full_dftbasis, const Vxc_Grid &grid)
static Eigen::Vector3d EvaluatePointWeightGradient(const std::vector< AtomicReference > &atoms, Index target_atom_index, const Eigen::Vector3d &point)
static Eigen::Vector3d EvaluateWeightGradient(const std::vector< AtomicReference > &atoms, Index target_atom_index, Index differentiate_atom_index, const Eigen::Vector3d &point)
static Eigen::MatrixXd GridWeightDerivativeContribution(const std::vector< AtomicReference > &atoms, Index target_atom_index, const Eigen::MatrixXd &density_matrix, const QMMolecule &mol, const Vxc_Grid &grid)
static Eigen::Vector3d EvaluateAtomicDensityGradient(const AOBasis &atom_basis, const Eigen::MatrixXd &reference_density, const Eigen::Vector3d &point)
static Eigen::MatrixXd BuildWeightMatrix(const std::vector< AtomicReference > &atoms, Index target_atom_index, const AOBasis &full_dftbasis, const Vxc_Grid &grid)
static Eigen::MatrixXd PulayAndTranslationContribution(const std::vector< AtomicReference > &atoms, Index target_atom_index, const Eigen::MatrixXd &density_matrix, const AOBasis &full_dftbasis, const Vxc_Grid &grid)
static Eigen::MatrixXd ComputeCDFTForceContribution(const std::vector< AtomicReference > &atoms, Index target_atom_index, const Eigen::MatrixXd &density_matrix, const QMMolecule &mol, const AOBasis &full_dftbasis, const Vxc_Grid &grid)
Provides a means for comparing floating point numbers.
Eigen::MatrixXd weight_matrix
double spin_alpha_coefficient
double spin_beta_coefficient