diff --git a/src/NeighborList.cpp b/src/NeighborList.cpp index 552c563f80408d24c28cac9ffa3d55f4f5d1a295..08b50e956fa0b37dbcc3831f250dac403348a6dd 100644 --- a/src/NeighborList.cpp +++ b/src/NeighborList.cpp @@ -118,6 +118,30 @@ vector<unsigned> NeighborList::getNeighborsAtomicIndex(unsigned iatom) return neigh; } +vector<pair <unsigned, unsigned> > NeighborList::getClosePairs() +{ + vector<pair <unsigned, unsigned> > pairs; + for(unsigned int i=0;i<getNumberOfAtoms();++i){ + for(unsigned int j=0;j<getNumberOfNeighbors(i);++j){ + unsigned jatom=neighbors_[i][j]; + pairs.push_back(pair <unsigned,unsigned> (i,indexes_[jatom])); + } + } + return pairs; +} + +vector<pair <unsigned, unsigned> > NeighborList::getClosePairsAtomicIndex() +{ + vector<pair <unsigned, unsigned> > pairs; + for(unsigned int i=0;i<getNumberOfAtoms();++i){ + unsigned iatom=list0_[i]; + for(unsigned int j=0;j<getNumberOfNeighbors(i);++j){ + pairs.push_back(pair <unsigned,unsigned> (iatom,neighbors_[i][j])); + } + } + return pairs; +} + unsigned NeighborList::getNumberOfNeighbors(unsigned index) { return neighbors_[index].size(); @@ -125,5 +149,5 @@ unsigned NeighborList::getNumberOfNeighbors(unsigned index) unsigned NeighborList::getNumberOfAtoms() const { - return neighbors_.size(); + return list0_.size(); } diff --git a/src/NeighborList.h b/src/NeighborList.h index 3063f1073793bd281707ba6608bc4f17b850b755..022f08651440508e83a9f8dcb0599f9f73bbd312 100644 --- a/src/NeighborList.h +++ b/src/NeighborList.h @@ -22,6 +22,8 @@ public: void update(); std::vector<unsigned> getNeighbors(unsigned index); std::vector<unsigned> getNeighborsAtomicIndex(unsigned iatom); + std::vector<std::pair <unsigned, unsigned> > getClosePairs(); + std::vector<std::pair <unsigned, unsigned> > getClosePairsAtomicIndex(); unsigned getStride() const; unsigned getNumberOfAtoms() const; unsigned getNumberOfNeighbors(unsigned index);