ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/brains/ForceManager.cpp
(Generate patch)

Comparing branches/development/src/brains/ForceManager.cpp (file contents):
Revision 1618 by gezelter, Mon Sep 12 17:09:26 2011 UTC vs.
Revision 1715 by gezelter, Tue May 22 21:55:31 2012 UTC

# Line 36 | Line 36
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).          
39 < * [4]  Vardeman & Gezelter, in progress (2009).                        
39 > * [4]  Kuang & Gezelter,  J. Chem. Phys. 133, 164101 (2010).
40 > * [5]  Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011).
41   */
42  
43   /**
# Line 200 | Line 201 | namespace OpenMD {
201          // electrostaticSummationMethod keyword.
202          
203          if (simParams_->haveElectrostaticSummationMethod()) {
204 <          std::string myMethod = simParams_->getElectrostaticSummationMethod();
204 >          string myMethod = simParams_->getElectrostaticSummationMethod();
205            toUpper(myMethod);
206          
207            if (myMethod == "SHIFTED_POTENTIAL") {
# Line 255 | Line 256 | namespace OpenMD {
256      stringToCutoffPolicy["MAX"] = MAX;
257      stringToCutoffPolicy["TRADITIONAL"] = TRADITIONAL;    
258  
259 <    std::string cutPolicy;
259 >    string cutPolicy;
260      if (forceFieldOptions_.haveCutoffPolicy()){
261        cutPolicy = forceFieldOptions_.getCutoffPolicy();
262      }else if (simParams_->haveCutoffPolicy()) {
# Line 387 | Line 388 | namespace OpenMD {
388        setupCutoffs();
389  
390        info_->prepareTopology();      
391 +
392 +      doParticlePot_ = info_->getSimParams()->getOutputParticlePotential();
393 +  
394      }
395  
396      ForceFieldOptions& fopts = forceField_->getForceFieldOptions();
# Line 501 | Line 505 | namespace OpenMD {
505  
506        for (bond = mol->beginBond(bondIter); bond != NULL;
507             bond = mol->nextBond(bondIter)) {
508 <        bond->calcForce();
508 >        bond->calcForce(doParticlePot_);
509          bondPotential += bond->getPotential();
510        }
511  
# Line 509 | Line 513 | namespace OpenMD {
513             bend = mol->nextBend(bendIter)) {
514          
515          RealType angle;
516 <        bend->calcForce(angle);
516 >        bend->calcForce(angle, doParticlePot_);
517          RealType currBendPot = bend->getPotential();          
518          
519          bendPotential += bend->getPotential();
# Line 534 | Line 538 | namespace OpenMD {
538        for (torsion = mol->beginTorsion(torsionIter); torsion != NULL;
539             torsion = mol->nextTorsion(torsionIter)) {
540          RealType angle;
541 <        torsion->calcForce(angle);
541 >        torsion->calcForce(angle, doParticlePot_);
542          RealType currTorsionPot = torsion->getPotential();
543          torsionPotential += torsion->getPotential();
544          map<Torsion*, TorsionDataSet>::iterator i = torsionDataSets.find(torsion);
# Line 558 | Line 562 | namespace OpenMD {
562             inversion != NULL;
563             inversion = mol->nextInversion(inversionIter)) {
564          RealType angle;
565 <        inversion->calcForce(angle);
565 >        inversion->calcForce(angle, doParticlePot_);
566          RealType currInversionPot = inversion->getPotential();
567          inversionPotential += inversion->getPotential();
568          map<Inversion*, InversionDataSet>::iterator i = inversionDataSets.find(inversion);
# Line 637 | Line 641 | namespace OpenMD {
641      RealType vpair;
642      potVec longRangePotential(0.0);
643      potVec workPot(0.0);
644 +    vector<int>::iterator ia, jb;
645  
646      int loopStart, loopEnd;
647  
# Line 649 | Line 654 | namespace OpenMD {
654      idat.sw = &sw;
655      idat.shiftedPot = (cutoffMethod_ == SHIFTED_POTENTIAL) ? true : false;
656      idat.shiftedForce = (cutoffMethod_ == SHIFTED_FORCE) ? true : false;
657 +    idat.doParticlePot = doParticlePot_;
658 +    sdat.doParticlePot = doParticlePot_;
659      
660      loopEnd = PAIR_LOOP;
661      if (info_->requiresPrepair() ) {
# Line 692 | Line 699 | namespace OpenMD {
699            atomListRow = fDecomp_->getAtomsInGroupRow(cg1);
700            atomListColumn = fDecomp_->getAtomsInGroupColumn(cg2);
701  
702 <          for (vector<int>::iterator ia = atomListRow.begin();
702 >          for (ia = atomListRow.begin();
703                 ia != atomListRow.end(); ++ia) {            
704              atom1 = (*ia);
705              
706 <            for (vector<int>::iterator jb = atomListColumn.begin();
706 >            for (jb = atomListColumn.begin();
707                   jb != atomListColumn.end(); ++jb) {              
708                atom2 = (*jb);
709  
# Line 748 | Line 755 | namespace OpenMD {
755                  tau -= outProduct( *(idat.d), fg);
756                }
757            
758 <              for (vector<int>::iterator ia = atomListRow.begin();
758 >              for (ia = atomListRow.begin();
759                     ia != atomListRow.end(); ++ia) {            
760                  atom1 = (*ia);                
761                  mf = fDecomp_->getMassFactorRow(atom1);
# Line 765 | Line 772 | namespace OpenMD {
772                    }
773                  }
774                }
775 <              for (vector<int>::iterator jb = atomListColumn.begin();
775 >              for (jb = atomListColumn.begin();
776                     jb != atomListColumn.end(); ++jb) {              
777                  atom2 = (*jb);
778                  mf = fDecomp_->getMassFactorColumn(atom2);
# Line 853 | Line 860 | namespace OpenMD {
860      MPI_Allreduce(tmpTau.getArrayPointer(), tau.getArrayPointer(),
861                    9, MPI_REALTYPE, MPI_SUM, MPI_COMM_WORLD);
862   #endif
863 <    curSnapshot->statData.setTau(tau);
863 >    curSnapshot->setTau(tau);
864    }
865  
866   } //end namespace OpenMD

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines