30 const Eigen::Array3d& padding,
33 std::pair<Eigen::Vector3d, Eigen::Vector3d> extension =
35 Eigen::Array3d min = extension.first.array();
36 Eigen::Array3d max = extension.second.array();
37 Eigen::Array3d doublesteps = (max - min + 2 * padding) / stepsizes + 1.0;
38 Eigen::Array<votca::Index, 3, 1> steps = (doublesteps.ceil()).cast<
Index>();
41 Eigen::Array3d padding_sym =
42 (doublesteps - steps.cast<
double>()) * stepsizes * 0.5 + padding;
43 GridSetup(steps, padding_sym, atoms, basis);
47 const Eigen::Array3d& padding,
50 std::pair<Eigen::Vector3d, Eigen::Vector3d> extension =
52 Eigen::Array3d min = extension.first.array();
53 Eigen::Array3d max = extension.second.array();
55 stepsizes_ = (max - min + 2 * padding) / (steps - 1).cast<
double>();
57 const Index gridboxsize = 500;
60 for (
Index i = 0; i < steps.x(); i++) {
62 for (
Index j = 0; j < steps.y(); j++) {
64 for (
Index k = 0; k < steps.z(); k++) {
68 point.
grid_pos = Eigen::Vector3d(x, y, z);
70 if (gridbox.
size() == gridboxsize) {
77 if (gridbox.
size() > 0) {
80#pragma omp parallel for