ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/parallel/ForceMatrixDecomposition.cpp
(Generate patch)

Comparing trunk/src/parallel/ForceMatrixDecomposition.cpp (file contents):
Revision 1896 by gezelter, Tue Jul 2 20:02:31 2013 UTC vs.
Revision 1930 by gezelter, Mon Aug 19 13:51:04 2013 UTC

# Line 99 | Line 99 | namespace OpenMD {
99      nGroups_ = info_->getNLocalCutoffGroups();
100      // gather the information for atomtype IDs (atids):
101      idents = info_->getIdentArray();
102 +    regions = info_->getRegions();
103      AtomLocalToGlobal = info_->getGlobalAtomIndices();
104      cgLocalToGlobal = info_->getGlobalGroupIndices();
105      vector<int> globalGroupMembership = info_->getGlobalGroupMembership();
# Line 163 | Line 164 | namespace OpenMD {
164      
165      AtomPlanIntRow->gather(idents, identsRow);
166      AtomPlanIntColumn->gather(idents, identsCol);
167 +
168 +    regionsRow.resize(nAtomsInRow_);
169 +    regionsCol.resize(nAtomsInCol_);
170 +    
171 +    AtomPlanIntRow->gather(regions, regionsRow);
172 +    AtomPlanIntColumn->gather(regions, regionsCol);
173      
174      // allocate memory for the parallel objects
175      atypesRow.resize(nAtomsInRow_);
# Line 1168 | Line 1175 | namespace OpenMD {
1175      idat.excluded = excludeAtomPair(atom1, atom2);
1176    
1177   #ifdef IS_MPI
1178 <    idat.atypes = make_pair( atypesRow[atom1], atypesCol[atom2]);
1178 >    //idat.atypes = make_pair( atypesRow[atom1], atypesCol[atom2]);
1179      idat.atid1 = identsRow[atom1];
1180      idat.atid2 = identsCol[atom2];
1181 <    //idat.atypes = make_pair( ff_->getAtomType(identsRow[atom1]),
1182 <    //                         ff_->getAtomType(identsCol[atom2]) );
1183 <    
1181 >
1182 >    if (regionsRow[atom1] >= 0 && regionsCol[atom2] >= 0)
1183 >      idat.sameRegion = (regionsRow[atom1] == regionsCol[atom2]);
1184 >      
1185      if (storageLayout_ & DataStorage::dslAmat) {
1186        idat.A1 = &(atomRowData.aMat[atom1]);
1187        idat.A2 = &(atomColData.aMat[atom2]);
# Line 1226 | Line 1234 | namespace OpenMD {
1234  
1235   #else
1236      
1237 <    idat.atypes = make_pair( atypesLocal[atom1], atypesLocal[atom2]);
1237 >    //idat.atypes = make_pair( atypesLocal[atom1], atypesLocal[atom2]);
1238      idat.atid1 = idents[atom1];
1239      idat.atid2 = idents[atom2];
1240  
1241 +    if (regions[atom1] >= 0 && regions[atom2] >= 0)
1242 +      idat.sameRegion = (regions[atom1] == regions[atom2]);
1243 +
1244      if (storageLayout_ & DataStorage::dslAmat) {
1245        idat.A1 = &(snap_->atomData.aMat[atom1]);
1246        idat.A2 = &(snap_->atomData.aMat[atom2]);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines