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)) {