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 1850 by gezelter, Wed Feb 20 15:39:39 2013 UTC vs.
Revision 1874 by gezelter, Wed May 15 15:09:35 2013 UTC

# Line 67 | Line 67 | namespace OpenMD {
67   using namespace std;
68   namespace OpenMD {
69    
70 <  ForceManager::ForceManager(SimInfo * info) : info_(info) {
70 >  ForceManager::ForceManager(SimInfo * info) : info_(info), switcher_(NULL),
71 >                                               initialized_(false) {
72      forceField_ = info_->getForceField();
73      interactionMan_ = new InteractionManager();
74      fDecomp_ = new ForceMatrixDecomposition(info_, interactionMan_);
75 +    thermo = new Thermo(info_);
76    }
77  
78 +  ForceManager::~ForceManager() {
79 +    perturbations_.clear();
80 +    
81 +    delete switcher_;
82 +    delete interactionMan_;
83 +    delete fDecomp_;
84 +    delete thermo;
85 +  }
86 +  
87    /**
88     * setupCutoffs
89     *
# Line 433 | Line 444 | namespace OpenMD {
444        perturbations_.push_back(eField);
445      }
446  
447 +    usePeriodicBoundaryConditions_ = info_->getSimParams()->getUsePeriodicBoundaryConditions();
448 +    
449      fDecomp_->distributeInitialData();
450 <
451 <    initialized_ = true;
452 <
450 >    
451 >    initialized_ = true;
452 >    
453    }
454 <
454 >  
455    void ForceManager::calcForces() {
456      
457      if (!initialized_) initialize();
458 <
458 >    
459      preCalculation();  
460      shortRangeInteractions();
461      longRangeInteractions();
# Line 681 | Line 694 | namespace OpenMD {
694      RealType rCutSq;
695      bool in_switching_region;
696      RealType sw, dswdr, swderiv;
697 <    vector<int> atomListColumn, atomListRow, atomListLocal;
697 >    vector<int> atomListColumn, atomListRow;
698      InteractionData idat;
699      SelfData sdat;
700      RealType mf;
# Line 726 | Line 739 | namespace OpenMD {
739      
740        if (iLoop == loopStart) {
741          bool update_nlist = fDecomp_->checkNeighborList();
742 <        if (update_nlist)
742 >        if (update_nlist) {
743 >          if (!usePeriodicBoundaryConditions_)
744 >            Mat3x3d bbox = thermo->getBoundingBox();
745            neighborList = fDecomp_->buildNeighborList();
746 <      }            
746 >        }
747 >      }
748  
749        for (vector<pair<int, int> >::iterator it = neighborList.begin();
750               it != neighborList.end(); ++it) {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines