# | Line 35 | Line 35 | |
---|---|---|
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 | */ | |
# | Line 63 | Line 63 | namespace OpenMD { | |
63 | void distributeData(); | |
64 | void collectIntermediateData(); | |
65 | void distributeIntermediateData(); | |
66 | + | void collectSelfData(); |
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); |
92 | < | bool skipAtomPair(int atom1, int atom2); |
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); | |
# | Line 109 | Line 110 | namespace OpenMD { | |
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 | ||
# | Line 142 | Line 144 | namespace OpenMD { | |
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 | ||
# | Line 169 | Line 177 | namespace OpenMD { | |
177 | ||
178 | vector<RealType> massFactorsRow; | |
179 | vector<RealType> massFactorsCol; | |
180 | + | |
181 | + | vector<int> regionRow; |
182 | + | vector<int> regionCol; |
183 | #endif | |
184 | ||
185 | }; |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |