21#ifndef VOTCA_XTP_EWALDREALSPACEINTERACTOR_H
22#define VOTCA_XTP_EWALDREALSPACEINTERACTOR_H
101 template <
class T, enum Estatic CE>
104 const Eigen::Vector3d& source_shift = Eigen::Vector3d::Zero())
const;
131 template <
class T, enum Estatic CE>
134 const Eigen::Vector3d& source_shift = Eigen::Vector3d::Zero())
const;
152 template <enum Estatic CE>
155 const Eigen::Vector3d& source_shift = Eigen::Vector3d::Zero())
const;
160 template <enum Estatic CE>
163 const Eigen::Vector3d& source_shift = Eigen::Vector3d::Zero())
const;
171 template <
class S1,
class S2>
173 const S1& site1,
const S2& site2,
174 const Eigen::Vector3d& source_shift = Eigen::Vector3d::Zero())
const;
187 template <
class S1,
class S2>
189 const S1& site1,
const S2& site2,
190 const Eigen::Vector3d& source_shift = Eigen::Vector3d::Zero())
const;
253 const Eigen::Vector3d& source_shift = Eigen::Vector3d::Zero(),
254 bool damp =
true)
const;
265 const Eigen::Vector3d& source_shift = Eigen::Vector3d::Zero())
const;
BFunctions ComputeB(double r) const
EwaldRealSpaceInteractor(double alpha, double thole_a=0.39)
double CalcInducedSourceEnergy(const PolarSite &site1, const PolarSite &site2, const Eigen::Vector3d &source_shift=Eigen::Vector3d::Zero(), bool damp=true) const
double CalcStaticEnergy(const S1 &site1, const S2 &site2, const Eigen::Vector3d &source_shift=Eigen::Vector3d::Zero()) const
BFunctions ComputeErfB(double r) const
TholeFactors ComputeThole(double r, const PolarSite &site1, const PolarSite &site2) const
static constexpr double kCoincidenceTol
void ApplyErfInducedFieldCorrection(const PolarSite &site1, PolarSite &site2, const Eigen::Vector3d &source_shift=Eigen::Vector3d::Zero()) const
double CalcInducedEnergy(const PolarSite &site1, const PolarSite &site2) const
double ApplyInducedField(const PolarSite &site1, PolarSite &site2, const Eigen::Vector3d &source_shift=Eigen::Vector3d::Zero()) const
double CalcErfInducedSourceEnergy(const PolarSite &site1, const PolarSite &site2, const Eigen::Vector3d &source_shift=Eigen::Vector3d::Zero()) const
double CalcErfStaticEnergy(const S1 &site1, const S2 &site2, const Eigen::Vector3d &source_shift=Eigen::Vector3d::Zero()) const
double ApplyStaticField(const T &site1, PolarSite &site2, const Eigen::Vector3d &source_shift=Eigen::Vector3d::Zero()) const
void ApplyErfStaticFieldCorrection(const T &site1, PolarSite &site2, const Eigen::Vector3d &source_shift=Eigen::Vector3d::Zero()) const
Class to represent Atom/Site in electrostatic+polarization.
Provides a means for comparing floating point numbers.