45 for (
auto &iter : list1) {
49 for (
auto &iter : list2) {
61 const Topology &top = list.getTopology();
65 for (
auto &iter : list) {
100 Index a1, a2, b1, b2, c1, c2;
131 for (
Index aa = a + a1; aa <= a + a2; ++aa) {
132 for (
Index bb = b + b1; bb <= b + b2; ++bb) {
133 for (
Index cc = c + c1; cc <= c + c2; ++cc) {
135 if (cell2 == &cell) {
168 return grid_(a, b, c);
181 const Eigen::Vector3d &u = bead->
getPos();
183 for (
auto &bead_ : cell.
beads_) {
185 const Eigen::Vector3d &v = bead_->getPos();
virtual const Eigen::Vector3d & getPos() const
const Topology & getTopology() const
void push_back(Bead *bead)
bool IsExcluded(Bead *bead1, Bead *bead2) const
void TestBead(const Topology &top, cell_t &cell, Bead *bead)
tools::NDimVector< cell_t, 3 > grid_
void TestCell(const Topology &top, cell_t &cell, Bead *bead)
cell_t & getCell(const Eigen::Vector3d &r)
void InitializeGrid(const Eigen::Matrix3d &box)
void Generate(BeadList &list1, BeadList &list2, bool do_exclusions=true) override
Generate the neighbour list based on two bead lists (e.g. bead types)
std::unique_ptr< Functor > match_function_
bool do_exclusions_
take into account exclusions from topolgoy
pair_creator_t pair_creator_
the current bead pair creator function
void AddPair(BeadPair *p)
BeadPair * FindPair(Bead *e1, Bead *e2)
topology of the whole system
const Eigen::Matrix3d & getBox() const
ExclusionList & getExclusions()
Eigen::Vector3d BCShortestConnection(const Eigen::Vector3d &r_i, const Eigen::Vector3d &r_j) const
calculate shortest vector connecting two points
base class for all analysis tools
std::vector< cell_t * > neighbours_