28 BeadList &list3,
bool do_exclusions) {
50 for (
auto &iter : list1) {
55 for (
auto &iter : list2) {
60 for (
auto &iter : list3) {
65 for (
auto &iter : list1) {
88 for (
auto &bead : list1) {
93 for (
auto &bead : list2) {
98 for (
auto &cell :
grid_) {
99 cell.beads3_ = cell.beads2_;
103 for (
auto &bead : list1) {
115 const Topology &top = list.getTopology();
120 for (
auto &iter : list) {
124 for (
auto &cell :
grid_) {
125 cell.beads2_ = cell.beads1_;
126 cell.beads3_ = cell.beads1_;
131 for (
auto &bead : list) {
166 Index a1, a2, b1, b2, c1, c2;
197 for (
Index aa = a + a1; aa <= a + a2; ++aa) {
198 for (
Index bb = b + b1; bb <= b + b2; ++bb) {
199 for (
Index cc = c + c1; cc <= c + c2; ++cc) {
239 Eigen::Vector3d u = bead->
getPos();
243 for (vector<cell_t *>::iterator iterc2 = cell.
neighbours_.begin();
245 for (iter2 = (*(*iterc2)).beads2_.begin();
246 iter2 != (*(*iterc2)).beads2_.end(); ++iter2) {
248 if (bead == *iter2) {
255 for (iter3 = (*neighbour_).beads3_.begin();
256 iter3 != (*neighbour_).beads3_.end(); ++iter3) {
259 if (bead == *iter3) {
262 if (*iter2 == *iter3) {
266 Eigen::Vector3d v = (*iter2)->getPos();
267 Eigen::Vector3d z = (*iter3)->getPos();
272 double d12 = r12.norm();
273 double d13 = r13.norm();
274 double d23 = r23.norm();
virtual const Eigen::Vector3d & getPos() const
const Topology & getTopology() const
typename std::vector< Bead * >::iterator iterator
void push_back(Bead *bead)
bool IsExcluded(Bead *bead1, Bead *bead2) const
std::vector< cell_t > grid_
cell_t & getCell(const Eigen::Vector3d &r)
void InitializeGrid(const Eigen::Matrix3d &box)
void TestBead(const Topology &top, cell_t &cell, Bead *bead)
void Generate(BeadList &list1, BeadList &list2, BeadList &list3, bool do_exclusions=true) override
bool do_exclusions_
take into account exclusions from topolgoy
triple_creator_t triple_creator_
the current bead pair creator function
std::unique_ptr< Functor > match_function_
double cutoff_
cutoff (at the moment use only one cutoff value)
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
void AddTriple(BeadTriple *t)
BeadTriple * FindTriple(Bead *e1, Bead *e2, Bead *e3)
base class for all analysis tools
std::vector< cell_t * > neighbours_