53#ifndef VOTCA_XTP_HIRSHFELDPARTITION_H
54#define VOTCA_XTP_HIRSHFELDPARTITION_H
91 const QMMolecule& mol,
const std::string& basisset_name,
92 const std::map<std::string, Eigen::MatrixXd>& reference_densities);
112 const Eigen::MatrixXd& reference_density,
113 const Eigen::Vector3d& point);
131 const AOBasis& atom_basis,
const Eigen::MatrixXd& reference_density,
132 const Eigen::Vector3d& point);
144 static double EvaluateWeight(
const std::vector<AtomicReference>& atoms,
145 Index target_atom_index,
146 const Eigen::Vector3d& point);
165 const std::vector<AtomicReference>& atoms,
Index target_atom_index,
166 Index differentiate_atom_index,
const Eigen::Vector3d& point);
194 const std::vector<AtomicReference>& atoms,
Index target_atom_index,
195 const Eigen::Vector3d& point);
227 const std::vector<AtomicReference>& atoms,
Index target_atom_index,
228 const Eigen::MatrixXd& density_matrix,
const QMMolecule& mol,
252 const std::vector<AtomicReference>& atoms,
Index target_atom_index,
253 const Eigen::MatrixXd& density_matrix,
const AOBasis& full_dftbasis,
269 const std::vector<AtomicReference>& atoms,
Index target_atom_index,
270 const Eigen::MatrixXd& density_matrix,
const AOBasis& full_dftbasis,
288 const std::vector<AtomicReference>& atoms,
Index target_atom_index,
289 const Eigen::MatrixXd& density_matrix,
const QMMolecule& mol,
311 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