21#ifndef VOTCA_XTP_EWALDREGION_H
22#define VOTCA_XTP_EWALDREGION_H
81 std::string
identify()
const override {
return "ewaldregion"; }
89 void Evaluate(std::vector<std::unique_ptr<Region>>& regions)
override;
96 double charge()
const override;
98 double Etotal()
const override;
152 double ApplyFieldTo(std::vector<PolarSegment>& foreground)
const;
172 const std::vector<std::pair<Index, Eigen::Vector3d>>& foreground);
194 Eigen::VectorXd
PotentialAt(
const std::vector<Eigen::Vector3d>& points)
const;
215 void BuildSums(
const std::vector<PolarSegment>& fallback)
const;
220 const std::vector<PolarSegment>& foreground)
const;
224 mutable std::unique_ptr<EwaldShapeCorrection>
shape_;
std::string identify() const override
double Etotal() const override
bool Converged() const override
void Initialize(const tools::Property &prop) override
void CheckForegroundIsSubset(const std::vector< PolarSegment > &foreground) const
Eigen::VectorXd PotentialAt(const std::vector< Eigen::Vector3d > &points) const
void Evaluate(std::vector< std::unique_ptr< Region > > ®ions) override
std::vector< std::pair< Index, Eigen::Vector3d > > built_foreground_
void WritePDB(csg::PDBWriter &writer) const override
std::unique_ptr< EwaldShapeCorrection > shape_
double charge() const override
double InteractwithQMRegion(const QMRegion &) override
std::unique_ptr< EwaldReciprocalSpaceSum > recip_sum_
std::unique_ptr< EwaldRealSpaceSum > real_sum_
std::vector< std::pair< Index, Eigen::Vector3d > > registered_foreground_
void RegisterForeground(const std::vector< std::pair< Index, Eigen::Vector3d > > &foreground)
std::unique_ptr< EwaldRealSpaceInteractor > interactor_
std::string checkpoint_file_
const EwaldRegistry & Registry() const
EwaldRegion(Index id, Logger &log)
Index size() const override
void AppendResult(tools::Property &prop) const override
double ApplyFieldTo(std::vector< PolarSegment > &foreground) const
~EwaldRegion() override=default
double InteractwithPolarRegion(const PolarRegion &) override
const EwaldParameters & Parameters() const
std::vector< std::pair< Index, Eigen::Vector3d > > foreground_copies_
void BuildSums(const std::vector< PolarSegment > &fallback) const
double InteractwithStaticRegion(const StaticRegion &) override
void ReadFromCpt(CheckpointReader &r) override
double InteractwithEwaldRegion(const EwaldRegion &) override
void WriteToCpt(CheckpointWriter &w) const override
Logger is used for thread-safe output of messages.
Region(Index id, Logger &log)
Provides a means for comparing floating point numbers.
The Ewald convergence parameters a background was converged with.