| 479 |
|
for (unsigned int j = 0; j < toposForAtom[atom1].size(); j++) { |
| 480 |
|
if (toposForAtom[atom1][j] == atom2) |
| 481 |
|
return topoDist[atom1][j]; |
| 482 |
< |
} |
| 482 |
> |
} |
| 483 |
|
return 0; |
| 484 |
|
} |
| 485 |
|
|
| 939 |
|
|
| 940 |
|
|
| 941 |
|
|
| 942 |
< |
int ForceMatrixDecomposition::getNAtomsInRow() { |
| 942 |
> |
int& ForceMatrixDecomposition::getNAtomsInRow() { |
| 943 |
|
#ifdef IS_MPI |
| 944 |
|
return nAtomsInRow_; |
| 945 |
|
#else |
| 950 |
|
/** |
| 951 |
|
* returns the list of atoms belonging to this group. |
| 952 |
|
*/ |
| 953 |
< |
vector<int> ForceMatrixDecomposition::getAtomsInGroupRow(int cg1){ |
| 953 |
> |
vector<int>& ForceMatrixDecomposition::getAtomsInGroupRow(int cg1){ |
| 954 |
|
#ifdef IS_MPI |
| 955 |
|
return groupListRow_[cg1]; |
| 956 |
|
#else |
| 958 |
|
#endif |
| 959 |
|
} |
| 960 |
|
|
| 961 |
< |
vector<int> ForceMatrixDecomposition::getAtomsInGroupColumn(int cg2){ |
| 961 |
> |
vector<int>& ForceMatrixDecomposition::getAtomsInGroupColumn(int cg2){ |
| 962 |
|
#ifdef IS_MPI |
| 963 |
|
return groupListCol_[cg2]; |
| 964 |
|
#else |
| 981 |
|
return d; |
| 982 |
|
} |
| 983 |
|
|
| 984 |
< |
Vector3d ForceMatrixDecomposition::getGroupVelocityColumn(int cg2){ |
| 984 |
> |
Vector3d& ForceMatrixDecomposition::getGroupVelocityColumn(int cg2){ |
| 985 |
|
#ifdef IS_MPI |
| 986 |
|
return cgColData.velocity[cg2]; |
| 987 |
|
#else |
| 989 |
|
#endif |
| 990 |
|
} |
| 991 |
|
|
| 992 |
< |
Vector3d ForceMatrixDecomposition::getAtomVelocityColumn(int atom2){ |
| 992 |
> |
Vector3d& ForceMatrixDecomposition::getAtomVelocityColumn(int atom2){ |
| 993 |
|
#ifdef IS_MPI |
| 994 |
|
return atomColData.velocity[atom2]; |
| 995 |
|
#else |
| 1027 |
|
return d; |
| 1028 |
|
} |
| 1029 |
|
|
| 1030 |
< |
RealType ForceMatrixDecomposition::getMassFactorRow(int atom1) { |
| 1030 |
> |
RealType& ForceMatrixDecomposition::getMassFactorRow(int atom1) { |
| 1031 |
|
#ifdef IS_MPI |
| 1032 |
|
return massFactorsRow[atom1]; |
| 1033 |
|
#else |
| 1035 |
|
#endif |
| 1036 |
|
} |
| 1037 |
|
|
| 1038 |
< |
RealType ForceMatrixDecomposition::getMassFactorColumn(int atom2) { |
| 1038 |
> |
RealType& ForceMatrixDecomposition::getMassFactorColumn(int atom2) { |
| 1039 |
|
#ifdef IS_MPI |
| 1040 |
|
return massFactorsCol[atom2]; |
| 1041 |
|
#else |
| 1058 |
|
return d; |
| 1059 |
|
} |
| 1060 |
|
|
| 1061 |
< |
vector<int> ForceMatrixDecomposition::getExcludesForAtom(int atom1) { |
| 1061 |
> |
vector<int>& ForceMatrixDecomposition::getExcludesForAtom(int atom1) { |
| 1062 |
|
return excludesForAtom[atom1]; |
| 1063 |
|
} |
| 1064 |
|
|
| 1149 |
|
|
| 1150 |
|
#ifdef IS_MPI |
| 1151 |
|
idat.atypes = make_pair( atypesRow[atom1], atypesCol[atom2]); |
| 1152 |
+ |
idat.atid1 = identsRow[atom1]; |
| 1153 |
+ |
idat.atid2 = identsCol[atom2]; |
| 1154 |
|
//idat.atypes = make_pair( ff_->getAtomType(identsRow[atom1]), |
| 1155 |
|
// ff_->getAtomType(identsCol[atom2]) ); |
| 1156 |
|
|
| 1207 |
|
#else |
| 1208 |
|
|
| 1209 |
|
idat.atypes = make_pair( atypesLocal[atom1], atypesLocal[atom2]); |
| 1210 |
+ |
idat.atid1 = idents[atom1]; |
| 1211 |
+ |
idat.atid2 = idents[atom2]; |
| 1212 |
|
|
| 1213 |
|
if (storageLayout_ & DataStorage::dslAmat) { |
| 1214 |
|
idat.A1 = &(snap_->atomData.aMat[atom1]); |
| 1320 |
|
* first element of pair is row-indexed CutoffGroup |
| 1321 |
|
* second element of pair is column-indexed CutoffGroup |
| 1322 |
|
*/ |
| 1323 |
< |
vector<pair<int, int> > ForceMatrixDecomposition::buildNeighborList() { |
| 1324 |
< |
|
| 1325 |
< |
vector<pair<int, int> > neighborList; |
| 1323 |
> |
void ForceMatrixDecomposition::buildNeighborList(vector<pair<int,int> >& neighborList) { |
| 1324 |
> |
|
| 1325 |
> |
neighborList.clear(); |
| 1326 |
|
groupCutoffs cuts; |
| 1327 |
|
bool doAllPairs = false; |
| 1328 |
|
|
| 1587 |
|
saved_CG_positions_.clear(); |
| 1588 |
|
for (int i = 0; i < nGroups_; i++) |
| 1589 |
|
saved_CG_positions_.push_back(snap_->cgData.position[i]); |
| 1586 |
– |
|
| 1587 |
– |
return neighborList; |
| 1590 |
|
} |
| 1591 |
|
} //end namespace OpenMD |