| 35 |
|
* |
| 36 |
|
* [1] Meineke, et al., J. Comp. Chem. 26, 252-271 (2005). |
| 37 |
|
* [2] Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006). |
| 38 |
< |
* [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008). |
| 38 |
> |
* [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008). |
| 39 |
|
* [4] Kuang & Gezelter, J. Chem. Phys. 133, 164101 (2010). |
| 40 |
|
* [5] Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). |
| 41 |
|
*/ |
| 67 |
|
void collectData(); |
| 68 |
|
|
| 69 |
|
// neighbor list routines |
| 70 |
< |
vector<pair<int, int> > buildNeighborList(); |
| 70 |
> |
void buildNeighborList(vector<pair<int, int> >& neighborList); |
| 71 |
|
|
| 72 |
|
// group bookkeeping |
| 73 |
< |
groupCutoffs getGroupCutoffs(int cg1, int cg2); |
| 74 |
< |
Vector3d getGroupVelocityColumn(int cg2); |
| 73 |
> |
void getGroupCutoffs(int &cg1, int &cg2, RealType &rcut, RealType &rcutsq, RealType &rlistsq); |
| 74 |
> |
Vector3d& getGroupVelocityColumn(int cg2); |
| 75 |
|
|
| 76 |
|
// Group->atom bookkeeping |
| 77 |
< |
vector<int> getAtomsInGroupRow(int cg1); |
| 78 |
< |
vector<int> getAtomsInGroupColumn(int cg2); |
| 77 |
> |
vector<int>& getAtomsInGroupRow(int cg1); |
| 78 |
> |
vector<int>& getAtomsInGroupColumn(int cg2); |
| 79 |
|
Vector3d getAtomToGroupVectorRow(int atom1, int cg1); |
| 80 |
|
Vector3d getAtomToGroupVectorColumn(int atom2, int cg2); |
| 81 |
< |
RealType getMassFactorRow(int atom1); |
| 82 |
< |
RealType getMassFactorColumn(int atom2); |
| 81 |
> |
RealType& getMassFactorRow(int atom1); |
| 82 |
> |
RealType& getMassFactorColumn(int atom2); |
| 83 |
|
|
| 84 |
|
// spatial data |
| 85 |
|
Vector3d getIntergroupVector(int cg1, int cg2); |
| 86 |
|
Vector3d getInteratomicVector(int atom1, int atom2); |
| 87 |
|
|
| 88 |
|
// atom bookkeeping |
| 89 |
< |
int getNAtomsInRow(); |
| 89 |
> |
int& getNAtomsInRow(); |
| 90 |
|
int getTopologicalDistance(int atom1, int atom2); |
| 91 |
< |
vector<int> getExcludesForAtom(int atom1); |
| 91 |
> |
vector<int>& getExcludesForAtom(int atom1); |
| 92 |
|
bool skipAtomPair(int atom1, int atom2, int cg1, int cg2); |
| 93 |
|
bool excludeAtomPair(int atom1, int atom2); |
| 94 |
|
void addForceToAtomRow(int atom1, Vector3d fg); |
| 95 |
|
void addForceToAtomColumn(int atom2, Vector3d fg); |
| 96 |
< |
Vector3d getAtomVelocityColumn(int atom2); |
| 96 |
> |
Vector3d& getAtomVelocityColumn(int atom2); |
| 97 |
|
|
| 98 |
|
// filling interaction blocks with pointers |
| 99 |
|
void fillInteractionData(InteractionData &idat, int atom1, int atom2); |
| 110 |
|
vector<int> groupToGtype; |
| 111 |
|
|
| 112 |
|
#ifdef IS_MPI |
| 113 |
< |
DataStorage atomRowData; DataStorage atomColData; |
| 113 |
> |
DataStorage atomRowData; |
| 114 |
> |
DataStorage atomColData; |
| 115 |
|
DataStorage cgRowData; |
| 116 |
|
DataStorage cgColData; |
| 117 |
|
|
| 144 |
|
vector<potVec> pot_row; |
| 145 |
|
vector<potVec> pot_col; |
| 146 |
|
|
| 147 |
+ |
vector<potVec> expot_row; |
| 148 |
+ |
vector<potVec> expot_col; |
| 149 |
+ |
|
| 150 |
|
vector<int> identsRow; |
| 151 |
|
vector<int> identsCol; |
| 152 |
|
|
| 153 |
+ |
vector<int> regionsRow; |
| 154 |
+ |
vector<int> regionsCol; |
| 155 |
+ |
|
| 156 |
|
vector<AtomType*> atypesRow; |
| 157 |
|
vector<AtomType*> atypesCol; |
| 158 |
|
|
| 177 |
|
|
| 178 |
|
vector<RealType> massFactorsRow; |
| 179 |
|
vector<RealType> massFactorsCol; |
| 180 |
+ |
|
| 181 |
+ |
vector<int> regionRow; |
| 182 |
+ |
vector<int> regionCol; |
| 183 |
|
#endif |
| 184 |
|
|
| 185 |
|
}; |