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 1583 by gezelter, Thu Jun 16 22:00:08 2011 UTC vs.
Revision 1586 by gezelter, Tue Jun 21 06:34:35 2011 UTC

# Line 59 | Line 59 | namespace OpenMD {
59      nLocal_ = snap_->getNumberOfAtoms();
60  
61      nGroups_ = info_->getNLocalCutoffGroups();
62    cerr << "in dId, nGroups = " << nGroups_ << "\n";
62      // gather the information for atomtype IDs (atids):
63      idents = info_->getIdentArray();
64      AtomLocalToGlobal = info_->getGlobalAtomIndices();
65      cgLocalToGlobal = info_->getGlobalGroupIndices();
66      vector<int> globalGroupMembership = info_->getGlobalGroupMembership();
67 +
68      massFactors = info_->getMassFactors();
69 +
70      PairList excludes = info_->getExcludedInteractions();
71      PairList oneTwo = info_->getOneTwoInteractions();
72      PairList oneThree = info_->getOneThreeInteractions();
# Line 225 | Line 226 | namespace OpenMD {
226    }
227    
228    void ForceMatrixDecomposition::createGtypeCutoffMap() {
229 <
229 >    
230      RealType tol = 1e-6;
231      RealType rc;
232      int atid;
# Line 303 | Line 304 | namespace OpenMD {
304      vector<RealType> groupCutoff(nGroups_, 0.0);
305      groupToGtype.resize(nGroups_);
306  
306    cerr << "nGroups = " << nGroups_ << "\n";
307      for (int cg1 = 0; cg1 < nGroups_; cg1++) {
308  
309        groupCutoff[cg1] = 0.0;
# Line 332 | Line 332 | namespace OpenMD {
332      }
333   #endif
334  
335    cerr << "gTypeCutoffs.size() = " << gTypeCutoffs.size() << "\n";
335      // Now we find the maximum group cutoff value present in the simulation
336  
337      RealType groupMax = *max_element(gTypeCutoffs.begin(), gTypeCutoffs.end());
# Line 453 | Line 452 | namespace OpenMD {
452             atomRowData.functionalDerivative.end(), 0.0);
453        fill(atomColData.functionalDerivative.begin(),
454             atomColData.functionalDerivative.end(), 0.0);
455 +    }
456 +
457 +    if (storageLayout_ & DataStorage::dslSkippedCharge) {      
458 +      fill(atomRowData.skippedCharge.begin(), atomRowData.skippedCharge.end(), 0.0);
459 +      fill(atomColData.skippedCharge.begin(), atomColData.skippedCharge.end(), 0.0);
460      }
461  
462   #else
# Line 474 | Line 478 | namespace OpenMD {
478        fill(snap_->atomData.functionalDerivative.begin(),
479             snap_->atomData.functionalDerivative.end(), 0.0);
480      }
481 +    if (storageLayout_ & DataStorage::dslSkippedCharge) {      
482 +      fill(snap_->atomData.skippedCharge.begin(),
483 +           snap_->atomData.skippedCharge.end(), 0.0);
484 +    }
485   #endif
486      
487    }
# Line 875 | Line 883 | namespace OpenMD {
883      snap_->atomData.force[atom1] += *(idat.f1);
884      snap_->atomData.force[atom2] -= *(idat.f1);
885   #endif
886 <
886 >    
887    }
888  
889  
890    void ForceMatrixDecomposition::fillSkipData(InteractionData &idat,
891                                                int atom1, int atom2) {
884    // Still Missing:: skippedCharge fill must be added to DataStorage
892   #ifdef IS_MPI
893      idat.atypes = make_pair( ff_->getAtomType(identsRow[atom1]),
894                               ff_->getAtomType(identsCol[atom2]) );
# Line 890 | Line 897 | namespace OpenMD {
897        idat.eFrame1 = &(atomRowData.electroFrame[atom1]);
898        idat.eFrame2 = &(atomColData.electroFrame[atom2]);
899      }
900 +
901      if (storageLayout_ & DataStorage::dslTorque) {
902        idat.t1 = &(atomRowData.torque[atom1]);
903        idat.t2 = &(atomColData.torque[atom2]);
904      }
905 +
906 +    if (storageLayout_ & DataStorage::dslSkippedCharge) {
907 +      idat.skippedCharge1 = &(atomRowData.skippedCharge[atom1]);
908 +      idat.skippedCharge2 = &(atomColData.skippedCharge[atom2]);
909 +    }
910   #else
911      idat.atypes = make_pair( ff_->getAtomType(idents[atom1]),
912                               ff_->getAtomType(idents[atom2]) );
# Line 902 | Line 915 | namespace OpenMD {
915        idat.eFrame1 = &(snap_->atomData.electroFrame[atom1]);
916        idat.eFrame2 = &(snap_->atomData.electroFrame[atom2]);
917      }
918 +
919      if (storageLayout_ & DataStorage::dslTorque) {
920        idat.t1 = &(snap_->atomData.torque[atom1]);
921        idat.t2 = &(snap_->atomData.torque[atom2]);
922      }
923 +
924 +    if (storageLayout_ & DataStorage::dslSkippedCharge) {
925 +      idat.skippedCharge1 = &(snap_->atomData.skippedCharge[atom1]);
926 +      idat.skippedCharge2 = &(snap_->atomData.skippedCharge[atom2]);
927 +    }
928   #endif    
929    }
930  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines