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 1569 by gezelter, Thu May 26 13:55:04 2011 UTC vs.
Revision 1570 by gezelter, Thu May 26 21:56:04 2011 UTC

# Line 427 | Line 427 | namespace OpenMD {
427        if (iLoop == PREPAIR_LOOP) {
428          if (info_->requiresPrepair()) {            
429            fDecomp_->collectIntermediateData();
430 <          atomListLocal = fDecomp_->getAtomList();
431 <          for (vector<int>::iterator ia = atomListLocal.begin();
432 <               ia != atomListLocal.end(); ++ia) {              
433 <            atom1 = (*ia);            
430 >
431 >          for (int atom1 = 0; atom1 < info_->getNAtoms(); atom1++) {
432              sdat = fDecomp_->fillSelfData(atom1);
433              interactionMan_->doPreForce(sdat);
434            }
435 +
436            fDecomp_->distributeIntermediateData();        
437          }
438        }
# Line 442 | Line 441 | namespace OpenMD {
441      
442      fDecomp_->collectData();
443      
444 <    if (info_->requiresSkipCorrection() || info_->requiresSelfCorrection()) {
445 <      atomListLocal = fDecomp_->getAtomList();
446 <      for (vector<int>::iterator ia = atomListLocal.begin();
448 <           ia != atomListLocal.end(); ++ia) {              
449 <        atom1 = (*ia);    
444 >    if ( info_->requiresSkipCorrection() ) {
445 >      
446 >      for (int atom1 = 0; atom1 < fDecomp_->getNAtomsInRow(); atom1++) {
447  
448 <        if (info_->requiresSkipCorrection()) {
449 <          vector<int> skipList = fDecomp_->getSkipsForAtom(atom1);
450 <          for (vector<int>::iterator jb = skipList.begin();
451 <               jb != skipList.end(); ++jb) {              
452 <            atom2 = (*jb);
453 <            idat = fDecomp_->fillSkipData(atom1, atom2);
454 <            interactionMan_->doSkipCorrection(idat);
455 <          }
448 >        vector<int> skipList = fDecomp_->getSkipsForRowAtom( atom1 );
449 >        
450 >        for (vector<int>::iterator jb = skipList.begin();
451 >             jb != skipList.end(); ++jb) {        
452 >    
453 >          atom2 = (*jb);
454 >          idat = fDecomp_->fillSkipData(atom1, atom2);
455 >          interactionMan_->doSkipCorrection(idat);
456 >
457          }
460          
461        if (info_->requiresSelfCorrection()) {
462          sdat = fDecomp_->fillSelfData(atom1);
463          interactionMan_->doSelfCorrection(sdat);
464        }
458        }
459      }
460 +    
461 +    if (info_->requiresSelfCorrection()) {
462  
463 +      for (int atom1 = 0; atom1 < info_->getNAtoms(); atom1++) {          
464 +        sdat = fDecomp_->fillSelfData(atom1);
465 +        interactionMan_->doSelfCorrection(sdat);
466 +      }
467 +
468 +    }
469 +
470      // dangerous to iterate over enums, but we'll live on the edge:
471      for (int i = NO_FAMILY; i != N_INTERACTION_FAMILIES; ++i){
472        lrPot += longRangePotential[i]; //Quick hack

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines