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

Comparing:
branches/development/src/parallel/ForceMatrixDecomposition.cpp (file contents), Revision 1761 by gezelter, Fri Jun 22 20:01:37 2012 UTC vs.
trunk/src/parallel/ForceMatrixDecomposition.cpp (file contents), Revision 1796 by gezelter, Mon Sep 10 18:38:44 2012 UTC

# Line 310 | Line 310 | namespace OpenMD {
310      
311      RealType tol = 1e-6;
312      largestRcut_ = 0.0;
313    RealType rc;
313      int atid;
314      set<AtomType*> atypes = info_->getSimulatedAtomTypes();
315      
# Line 395 | Line 394 | namespace OpenMD {
394        }
395        
396        bool gTypeFound = false;
397 <      for (int gt = 0; gt < gTypeCutoffs.size(); gt++) {
397 >      for (unsigned int gt = 0; gt < gTypeCutoffs.size(); gt++) {
398          if (abs(groupCutoff[cg1] - gTypeCutoffs[gt]) < tol) {
399            groupToGtype[cg1] = gt;
400            gTypeFound = true;
# Line 420 | Line 419 | namespace OpenMD {
419      
420      RealType tradRcut = groupMax;
421  
422 <    for (int i = 0; i < gTypeCutoffs.size();  i++) {
423 <      for (int j = 0; j < gTypeCutoffs.size();  j++) {      
422 >    for (unsigned int i = 0; i < gTypeCutoffs.size();  i++) {
423 >      for (unsigned int j = 0; j < gTypeCutoffs.size();  j++) {      
424          RealType thisRcut;
425          switch(cutoffPolicy_) {
426          case TRADITIONAL:
# Line 477 | Line 476 | namespace OpenMD {
476    }
477  
478    int ForceMatrixDecomposition::getTopologicalDistance(int atom1, int atom2) {
479 <    for (int j = 0; j < toposForAtom[atom1].size(); j++) {
479 >    for (unsigned int j = 0; j < toposForAtom[atom1].size(); j++) {
480        if (toposForAtom[atom1][j] == atom2)
481          return topoDist[atom1][j];
482      }
# Line 1043 | Line 1042 | namespace OpenMD {
1042     * the parallel decomposition.
1043     */
1044    bool ForceMatrixDecomposition::skipAtomPair(int atom1, int atom2, int cg1, int cg2) {
1045 <    int unique_id_1, unique_id_2, group1, group2;
1045 >    int unique_id_1, unique_id_2;
1046          
1047   #ifdef IS_MPI
1048      // in MPI, we have to look up the unique IDs for each atom
1049      unique_id_1 = AtomRowToGlobal[atom1];
1050      unique_id_2 = AtomColToGlobal[atom2];
1051 <    group1 = cgRowToGlobal[cg1];
1052 <    group2 = cgColToGlobal[cg2];
1051 >    // group1 = cgRowToGlobal[cg1];
1052 >    // group2 = cgColToGlobal[cg2];
1053   #else
1054      unique_id_1 = AtomLocalToGlobal[atom1];
1055      unique_id_2 = AtomLocalToGlobal[atom2];
1056 <    group1 = cgLocalToGlobal[cg1];
1057 <    group2 = cgLocalToGlobal[cg2];
1056 >    int group1 = cgLocalToGlobal[cg1];
1057 >    int group2 = cgLocalToGlobal[cg2];
1058   #endif  
1059  
1060      if (unique_id_1 == unique_id_2) return true;
# Line 1296 | Line 1295 | namespace OpenMD {
1295   #endif
1296  
1297      RealType rList_ = (largestRcut_ + skinThickness_);
1299    RealType rl2 = rList_ * rList_;
1298      Snapshot* snap_ = sman_->getCurrentSnapshot();
1299      Mat3x3d Hmat = snap_->getHmat();
1300      Vector3d Hx = Hmat.getColumn(0);
# Line 1340 | Line 1338 | namespace OpenMD {
1338          for (int j = 0; j < 3; j++) {
1339            scaled[j] -= roundMe(scaled[j]);
1340            scaled[j] += 0.5;
1341 +          // Handle the special case when an object is exactly on the
1342 +          // boundary (a scaled coordinate of 1.0 is the same as
1343 +          // scaled coordinate of 0.0)
1344 +          if (scaled[j] >= 1.0) scaled[j] -= 1.0;
1345          }
1346          
1347          // find xyz-indices of cell that cutoffGroup is in.
# Line 1364 | Line 1366 | namespace OpenMD {
1366          for (int j = 0; j < 3; j++) {
1367            scaled[j] -= roundMe(scaled[j]);
1368            scaled[j] += 0.5;
1369 +          // Handle the special case when an object is exactly on the
1370 +          // boundary (a scaled coordinate of 1.0 is the same as
1371 +          // scaled coordinate of 0.0)
1372 +          if (scaled[j] >= 1.0) scaled[j] -= 1.0;
1373          }
1374          
1375          // find xyz-indices of cell that cutoffGroup is in.
# Line 1390 | Line 1396 | namespace OpenMD {
1396          for (int j = 0; j < 3; j++) {
1397            scaled[j] -= roundMe(scaled[j]);
1398            scaled[j] += 0.5;
1399 +          // Handle the special case when an object is exactly on the
1400 +          // boundary (a scaled coordinate of 1.0 is the same as
1401 +          // scaled coordinate of 0.0)
1402 +          if (scaled[j] >= 1.0) scaled[j] -= 1.0;
1403          }
1404          
1405          // find xyz-indices of cell that cutoffGroup is in.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines