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

Comparing trunk/src/integrators/RNEMD.cpp (file contents):
Revision 1333 by gezelter, Thu Apr 2 18:11:59 2009 UTC vs.
Revision 1334 by gezelter, Thu Apr 2 19:55:37 2009 UTC

# Line 62 | Line 62 | namespace oopse {
62  
63   namespace oopse {
64    
65 <  RNEMD::RNEMD(SimInfo* info) : info_(info), evaluator_(info), seleMan_(info) {
65 >  RNEMD::RNEMD(SimInfo* info) : info_(info), evaluator_(info), seleMan_(info), usePeriodicBoundaryConditions_(info->getSimParams()->getUsePeriodicBoundaryConditions()) {
66      
67      int seedValue;
68      Globals * simParams = info->getSimParams();
# Line 143 | Line 143 | namespace oopse {
143  
144        Vector3d pos = sd->getPos();
145  
146      std::cerr << "idx = " << idx << "pos = " << pos << "\n";
146        // wrap the stuntdouble's position back into the box:
147  
148        if (usePeriodicBoundaryConditions_)
149          currentSnap_->wrapVector(pos);
151      std::cerr << "new pos.z = " << pos.z() << "\n";
150  
151        // which bin is this stuntdouble in?
152 +      // wrapped positions are in the range [-0.5*hmat(2,2), +0.5*hmat(2,2)]
153  
154 <      int binNo = int(nBins_ * (pos.z()) / hmat(2,2));
154 >      int binNo = midBin + int(nBins_ * (pos.z()) / hmat(2,2));
155  
156 <      std::cerr << "bin = " << binNo << "\n";
156 >      std::cerr << "pos.z() = " << pos.z() << " bin = " << binNo << "\n";
157  
158        // if we're in bin 0 or the middleBin
159        if (binNo == 0 || binNo == midBin) {
# Line 207 | Line 206 | namespace oopse {
206          if (binNo == midBin)
207            midSlice.push_back( make_tuple3(value, idx, sd));              
208        }
210
211      // find smallest value in endSlice:
212      std::sort(endSlice.begin(), endSlice.end());    
213      RealType min_val = endSlice[0].first;
214      int min_idx = endSlice[0].second;
215      StuntDouble* min_sd = endSlice[0].third;
216
217      std::cerr << "smallest value = " << min_val << " idx = " << min_idx << "\n";
218
219      // find largest value in midSlice:
220      std::sort(midSlice.rbegin(), midSlice.rend());
221      RealType max_val = midSlice[0].first;
222      int max_idx = midSlice[0].second;
223      StuntDouble* max_sd = midSlice[0].third;
224
225      std::cerr << "largest value = " << max_val << " idx = " << max_idx << "\n";
226
209      }
210 <  }  
211 < }
210 >    
211 >    // find smallest value in endSlice:
212 >    std::sort(endSlice.begin(), endSlice.end());    
213 >    RealType min_val = endSlice[0].first;
214 >    int min_idx = endSlice[0].second;
215 >    StuntDouble* min_sd = endSlice[0].third;
216 >    
217 >    std::cerr << "smallest value = " << min_val << " idx = " << min_idx << "\n";
218 >    
219 >    // find largest value in midSlice:
220 >    std::sort(midSlice.rbegin(), midSlice.rend());
221 >    RealType max_val = midSlice[0].first;
222 >    int max_idx = midSlice[0].second;
223 >    StuntDouble* max_sd = midSlice[0].third;
224 >    
225 >    std::cerr << "largest value = " << max_val << " idx = " << max_idx << "\n";
226 >    
227 >  }
228 > }  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines