34 std::vector<std::unique_ptr<Region> >& regions) {
35 std::vector<double> energies = std::vector<double>(regions.size(), 0.0);
36 for (std::unique_ptr<Region>& reg : regions) {
37 Index id = reg->getId();
38 if (
id == this->
getId()) {
48 <<
" " << this->
getId() <<
" and " << reg->identify() <<
" "
49 << reg->getId() << std::flush;
50 if (reg->identify() == QMdummy.
identify()) {
53 }
else if (reg->identify() == Staticdummy.
identify()) {
56 }
else if (reg->identify() == Polardummy.
identify()) {
59 }
else if (reg->identify() == Ewalddummy.
identify()) {
63 throw std::runtime_error(
64 "Interaction of regions with types:" + this->
identify() +
" and " +
65 reg->identify() +
" not implemented");
The periodic Ewald background, as a Region.
std::string identify() const override
std::string identify() const override
std::string identify() const override
std::vector< double > ApplyInfluenceOfOtherRegions(std::vector< std::unique_ptr< Region > > ®ions)
virtual double charge() const =0
void AddResults(tools::Property &prop) const
virtual double InteractwithQMRegion(const QMRegion ®ion)=0
virtual Index size() const =0
virtual void AppendResult(tools::Property &prop) const =0
virtual double InteractwithStaticRegion(const StaticRegion ®ion)=0
virtual double InteractwithPolarRegion(const PolarRegion ®ion)=0
virtual double InteractwithEwaldRegion(const EwaldRegion ®ion)=0
virtual std::string identify() const =0
std::string identify() const override
Timestamp returns the current time as a string Example: cout << TimeStamp().
#define XTP_LOG(level, log)
Charge transport classes.
Provides a means for comparing floating point numbers.