| 67 |
|
// neighbor list routines |
| 68 |
|
vector<pair<int, int> > buildNeighborList(); |
| 69 |
|
// neighbor list routines based on Rapaport |
| 70 |
< |
vector<vector<int> > buildLayerBasedNeighborList(); |
| 70 |
> |
vector<vector<CutoffGroup *> > buildLayerBasedNeighborList(); |
| 71 |
|
|
| 72 |
|
// group bookkeeping |
| 73 |
|
groupCutoffs getGroupCutoffs(int cg1, int cg2); |
| 82 |
|
|
| 83 |
|
// spatial data |
| 84 |
|
Vector3d getIntergroupVector(int cg1, int cg2); |
| 85 |
+ |
Vector3d getIntergroupVector(CutoffGroup *cg1, CutoffGroup *cg2); |
| 86 |
|
Vector3d getInteratomicVector(int atom1, int atom2); |
| 87 |
|
|
| 88 |
|
// atom bookkeeping |
| 96 |
|
|
| 97 |
|
// filling interaction blocks with pointers |
| 98 |
|
void fillInteractionData(InteractionData &idat, int atom1, int atom2); |
| 99 |
+ |
void fillInteractionDataOMP(InteractionDataPrv &idat, int atom1, int atom2); |
| 100 |
|
void unpackInteractionData(InteractionData &idat, int atom1, int atom2); |
| 101 |
|
|
| 102 |
+ |
void unpackInteractionDataOMP(InteractionDataPrv &idat, int atom1, int atom2); |
| 103 |
+ |
|
| 104 |
+ |
// memory reordering |
| 105 |
+ |
void reorderGroupCutoffs(vector<int> &order); |
| 106 |
+ |
void reorderPosition(vector<int> &order); |
| 107 |
+ |
void reorderGroupList(vector<int> &order); |
| 108 |
+ |
void reorderMemory(vector<vector<CutoffGroup *> > &H_c_l); |
| 109 |
+ |
|
| 110 |
|
private: |
| 111 |
|
void createGtypeCutoffMap(); |
| 112 |
|
|
| 117 |
|
vector<RealType> groupCutoff; |
| 118 |
|
vector<int> groupToGtype; |
| 119 |
|
|
| 120 |
+ |
/* XXX */ |
| 121 |
+ |
int neighborListReorderFreq; |
| 122 |
+ |
int reorderFreqCounter; |
| 123 |
+ |
|
| 124 |
|
#ifdef IS_MPI |
| 125 |
|
DataStorage atomRowData; |
| 126 |
|
DataStorage atomColData; |