21#ifndef VOTCA_XTP_AOPOTENTIAL_H
22#define VOTCA_XTP_AOPOTENTIAL_H
39 const Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>&
Matrix()
const {
44 Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>
Fill(
47 Eigen::Block<Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>>& matrix,
77 const std::vector<std::unique_ptr<StaticSite>>& externalsites,
81 void FillBlock(Eigen::Block<Eigen::MatrixXd>& matrix,
83 const AOShell& shell_col)
const override;
95 void setSites(
const std::vector<const StaticSite*>& sites,
106 const std::vector<Eigen::Vector3d>& kpoints);
109 void FillBlock(Eigen::Block<Eigen::MatrixXcd>& matrix,
111 const AOShell& shell_col)
const override;
Container to hold Basisfunctions for all atoms.
void FillPotential(const AOBasis &aobasis, const ECPAOBasis &ecp)
void FillBlock(Eigen::Block< Eigen::MatrixXd > &, const AOShell &, const AOShell &) const final
void setSites(const std::vector< const StaticSite * > &sites, Moments moments=Moments::All)
void FillBlock(Eigen::Block< Eigen::MatrixXd > &matrix, const AOShell &shell_row, const AOShell &shell_col) const override
void FillPotential(const AOBasis &aobasis, const QMMolecule &atoms)
@ Permanent
permanent moments only (charge, dipole, quadrupole)
@ All
permanent moments plus induced dipoles
@ Induced
induced dipoles only; sites without one are skipped
std::vector< SiteData > sites_
void FillPotential(const AOBasis &aobasis, const std::vector< Eigen::Vector3d > &kpoints)
void FillBlock(Eigen::Block< Eigen::MatrixXcd > &matrix, const AOShell &shell_row, const AOShell &shell_col) const override
void setkVector(const Eigen::Vector3d &k)
const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > & Matrix() const
virtual void FillBlock(Eigen::Block< Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > > &matrix, const AOShell &shell_row, const AOShell &shell_col) const =0
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > Fill(const AOBasis &aobasis) const
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > aopotential_
Container to hold ECPs for all atoms.
Provides a means for comparing floating point numbers.
Eigen::Matrix3d quadrupole