21#ifndef VOTCA_XTP_EWALDSHAPECORRECTION_H
22#define VOTCA_XTP_EWALDSHAPECORRECTION_H
79 template <enum Estatic CE>
135 const std::vector<std::pair<const PolarSite*, Eigen::Vector3d>>&
137 const std::vector<const PolarSite*>& background_exclusions,
158 const std::vector<std::pair<const PolarSite*, Eigen::Vector3d>>&
160 const std::vector<const PolarSite*>& background_exclusions,
171 Eigen::Vector3d
q1 = Eigen::Vector3d::Zero();
172 Eigen::Matrix3d
q2 = Eigen::Matrix3d::Zero();
176 const Eigen::Vector3d& pos);
182 const std::vector<const PolarSite*>& exclusions)
const;
187 const std::vector<const PolarSite*>& exclusions)
const;
EwaldShapeCorrection(double volume, const EwaldRegistry ®istry, EwaldShape shape)
double CalcStaticEnergyBetween(const std::vector< std::pair< const PolarSite *, Eigen::Vector3d > > &foreground, const std::vector< const PolarSite * > &background_exclusions, EwaldChargeState source_state) const
Moments BackgroundMoments(EwaldChargeState source_state, const std::vector< const PolarSite * > &exclusions) const
static void Accumulate(Moments &m, const PolarSite &site, const Eigen::Vector3d &pos)
const EwaldRegistry & registry_
Moments BackgroundInducedMoments(EwaldChargeState source_state, const std::vector< const PolarSite * > &exclusions) const
double CalcInducedSourceEnergyBetween(const std::vector< std::pair< const PolarSite *, Eigen::Vector3d > > &foreground, const std::vector< const PolarSite * > &background_exclusions, EwaldChargeState source_state) const
void AddFieldAt(PolarSite &target, EwaldChargeState source_state) const
Eigen::Vector3d TotalDipoleMoment(EwaldChargeState source_state) const
Class to represent Atom/Site in electrostatic+polarization.
Provides a means for comparing floating point numbers.