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

Comparing branches/development/src/nonbonded/InteractionManager.cpp (file contents):
Revision 1545 by gezelter, Fri Apr 8 21:25:19 2011 UTC vs.
Revision 1568 by gezelter, Wed May 25 16:20:37 2011 UTC

# Line 40 | Line 40
40   */
41  
42   #include "nonbonded/InteractionManager.hpp"
43 #include "UseTheForce/doForces_interface.h"
43  
44   namespace OpenMD {
45  
# Line 50 | Line 49 | namespace OpenMD {
49  
50    RealType InteractionManager::rCut_ = 0.0;
51    RealType InteractionManager::rSwitch_ = 0.0;
53  RealType InteractionManager::skinThickness_ = 0.0;
54  RealType InteractionManager::listRadius_ = 0.0;
52    CutoffMethod InteractionManager::cutoffMethod_ = SHIFTED_FORCE;
53    SwitchingFunctionType InteractionManager::sft_ = cubic;
54    RealType InteractionManager::vdwScale_[4] = {1.0, 0.0, 0.0, 0.0};
# Line 306 | Line 303 | namespace OpenMD {
303  
304      setupCutoffs();
305      setupSwitching();
309    setupNeighborlists();
306  
307      //int ljsp = cutoffMethod_ == SHIFTED_POTENTIAL ? 1 : 0;
308      //int ljsf = cutoffMethod_ == SHIFTED_FORCE ? 1 : 0;
309      //notifyFortranCutoffs(&rCut_, &rSwitch_, &ljsp, &ljsf);
314    //notifyFortranSkinThickness(&skinThickness_);
310  
311      initialized_ = true;
312    }
# Line 457 | Line 452 | namespace OpenMD {
452  
453      switcher_->setSwitchType(sft_);
454      switcher_->setSwitch(rSwitch_, rCut_);
460  }
461
462  /**
463   * setupNeighborlists
464   *
465   *  If the skinThickness was explicitly set, use that value (but check it)
466   *  If the skinThickness was not explicitly set: use 1.0 angstroms
467   */
468  void InteractionManager::setupNeighborlists() {  
469
470    Globals* simParams_ = info_->getSimParams();    
471  
472    if (simParams_->haveSkinThickness()) {
473      skinThickness_ = simParams_->getSkinThickness();
474    } else {      
475      skinThickness_ = 1.0;
476      sprintf(painCave.errMsg,
477              "InteractionManager::setupNeighborlists: No value was set for the skinThickness.\n"
478              "\tOpenMD will use a default value of %f Angstroms\n"
479              "\tfor this simulation\n", skinThickness_);
480      painCave.severity = OPENMD_INFO;
481      painCave.isFatal = 0;
482      simError();
483    }            
484
485    listRadius_ = rCut_ + skinThickness_;
455    }
456  
488
457    void InteractionManager::doPrePair(InteractionData idat){
458      
459      if (!initialized_) initialize();
460          
461      set<NonBondedInteraction*>::iterator it;
462  
463 <    for (it = interactions_[idat.atypes].begin();
464 <         it != interactions_[idat.atypes].end(); ++it){
463 >    for (it = interactions_[ *(idat.atypes) ].begin();
464 >         it != interactions_[ *(idat.atypes) ].end(); ++it){
465        if ((*it)->getFamily() == METALLIC_FAMILY) {
466          dynamic_cast<MetallicInteraction*>(*it)->calcDensity(idat);
467        }
# Line 524 | Line 492 | namespace OpenMD {
492    
493      set<NonBondedInteraction*>::iterator it;
494  
495 <    for (it = interactions_[idat.atypes].begin();
496 <         it != interactions_[idat.atypes].end(); ++it)
495 >    for (it = interactions_[ *(idat.atypes) ].begin();
496 >         it != interactions_[ *(idat.atypes) ].end(); ++it)
497        (*it)->calcForce(idat);
498      
499      return;    
# Line 537 | Line 505 | namespace OpenMD {
505      
506      set<NonBondedInteraction*>::iterator it;
507  
508 <    for (it = interactions_[idat.atypes].begin();
509 <         it != interactions_[idat.atypes].end(); ++it){
508 >    for (it = interactions_[ *(idat.atypes) ].begin();
509 >         it != interactions_[ *(idat.atypes) ].end(); ++it){
510        if ((*it)->getFamily() == ELECTROSTATIC_FAMILY) {
511          dynamic_cast<ElectrostaticInteraction*>(*it)->calcSkipCorrection(idat);
512        }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines