74 for (
Index i = 0; i <
grid_.getBoxesSize(); ++i) {
84 throw std::runtime_error(
85 "Ewald_Potential::IntegrateEwald: box " + std::to_string(i) +
86 " has " + std::to_string(box.
size()) +
" grid points but " +
87 std::to_string(pot.size()) +
88 " potential values. The grid the potential was evaluated on is "
89 "not the grid being integrated over.");
93#pragma omp parallel for schedule(guided) reduction(+ : vewald)
94 for (
Index i = 0; i <
grid_.getBoxesSize(); ++i) {
99 double Eewald_box = 0.0;
101 Eigen::MatrixXd Vewald_here =
103 const std::vector<Eigen::Vector3d>& points = box.
getGridPoints();
112 const double weight = weights[p] * pot[p];
121 if (std::abs(weight) < 1.e-20) {
125 Eewald_box += weight;
126 Vewald_here.noalias() += weight * ao.
values * ao.
values.transpose();
129 vewald.
energy() += Eewald_box;