51 std::pair<Eigen::Vector3d, Eigen::Vector3d> extension =
53 Eigen::Array3d min = extension.first.array();
54 Eigen::Array3d max = extension.second.array();
56 Eigen::Array<votca::Index, 3, 1> steps = (doublesteps.ceil()).cast<
Index>();
59 Eigen::Array3d padding =
61 Eigen::Array3d minpos = min - padding;
62 for (
Index i = 0; i <= steps.x(); i++) {
64 for (
Index j = 0; j <= steps.y(); j++) {
66 for (
Index k = 0; k <= steps.z(); k++) {
68 bool is_valid =
false;
69 Eigen::Vector3d gridpos(x, y, z);
70 for (
const QMAtom& atom : Atomlist) {
71 const Eigen::Vector3d& atompos = atom.getPos();
72 double distance2 = (gridpos - atompos).squaredNorm();
75 if (distance2 < (atomcutoff * atomcutoff)) {