ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-2.0/src/applications/staticProps/RadialDistrFunc.cpp
(Generate patch)

Comparing trunk/OOPSE-2.0/src/applications/staticProps/RadialDistrFunc.cpp (file contents):
Revision 1991 by tim, Wed Feb 9 18:12:47 2005 UTC vs.
Revision 2002 by tim, Sun Feb 13 06:57:48 2005 UTC

# Line 42 | Line 42
42   #include <algorithm>
43  
44   #include "RadialDistrFunc.hpp"
45 <
45 > #include "io/DumpReader.hpp"
46 > #include "primitives/Molecule.hpp"
47   namespace oopse {
48  
49 < RadialDistrFunc::        RadialDistrFunc(SimInfo* info, const std::string& filename, const std::string& sele1, const std::string& sele2, double len)
50 <        : info_(info), currentSnapshot_(NULL), dumpFilename_(filename), len_(len), nbins_(50), step_(1),
51 <          selectionScript1_(sele1), selectionScript2_(sele2), evaluator1_(info), evaluator2_(info){
49 > RadialDistrFunc::        RadialDistrFunc(SimInfo* info, const std::string& filename, const std::string& sele1, const std::string& sele2)
50 >        : info_(info), currentSnapshot_(NULL), dumpFilename_(filename), step_(1),
51 >          selectionScript1_(sele1), selectionScript2_(sele2), evaluator1_(info), evaluator2_(info), seleMan1_(info), seleMan2_(info){
52            
53      evaluator1_.loadScriptString(sele1);
54      evaluator2_.loadScriptString(sele2);
55  
56 <    if (!evaluator1_->isDynamic()) {
57 <            seleMan1_.setSelectionSet(evaluator1_->evaluate());
56 >    if (!evaluator1_.isDynamic()) {
57 >            seleMan1_.setSelectionSet(evaluator1_.evaluate());
58      }
59 <    if (!evaluator2_->isDynamic()) {
60 <            seleMan2_.setSelectionSet(evaluator2_->evaluate());
59 >    if (!evaluator2_.isDynamic()) {
60 >            seleMan2_.setSelectionSet(evaluator2_.evaluate());
61      }
62  
62    delta_ = len_ /nbins_;
63   }
64  
65   void RadialDistrFunc::process() {
66 <
66 >    Molecule* mol;
67 >    RigidBody* rb;
68 >    SimInfo::MoleculeIterator mi;
69 >    Molecule::RigidBodyIterator rbIter;
70 >    
71      preProcess();
72      
73      DumpReader reader(info_, dumpFilename_);    
74 <    int nFrames = reader->getNFrames();
74 >    int nFrames = reader.getNFrames();
75      nProcessed_ = nFrames / step_ + 1;
76      for (int i = 0; i < nFrames; i += step_) {
77 <        reader->readFrame(i);
77 >        reader.readFrame(i);
78          currentSnapshot_ = info_->getSnapshotManager()->getCurrentSnapshot();
79  
80 <        if (evaluator1_->isDynamic()) {
81 <            seleMan1_.setSelectionSet(evaluator1_->evaluate());
80 >        if (evaluator1_.isDynamic()) {
81 >            seleMan1_.setSelectionSet(evaluator1_.evaluate());
82          }
83 <        if (evaluator2_->isDynamic()) {
84 <            seleMan2_.setSelectionSet(evaluator2_->evaluate());
83 >        if (evaluator2_.isDynamic()) {
84 >            seleMan2_.setSelectionSet(evaluator2_.evaluate());
85          }
86  
87 +        for (mol = info_->beginMolecule(mi); mol != NULL; mol = info_->nextMolecule(mi)) {
88 +
89 +            //change the positions of atoms which belong to the rigidbodies
90 +            for (rb = mol->beginRigidBody(rbIter); rb != NULL; rb = mol->nextRigidBody(rbIter)) {
91 +                rb->updateAtoms();
92 +            }
93 +        }
94 +        
95          initalizeHistogram();
96  
97          StuntDouble* sd1;
98          int j;
99 <        for (sd1 = seleMan1_->beginSelected(j); sd1 != NULL; sd1 = seleMan1_->nextSelected(j)) {
99 >        for (sd1 = seleMan1_.beginSelected(j); sd1 != NULL; sd1 = seleMan1_.nextSelected(j)) {
100  
101              StuntDouble* sd2;
102              int k;
103 <            for (sd2 = seleMan2_->beginSelected(k); sd2 != NULL; sd2 = seleMan2_->nextSelected(k)) {
103 >            for (sd2 = seleMan2_.beginSelected(k); sd2 != NULL; sd2 = seleMan2_.nextSelected(k)) {
104                  collectHistogram(sd1, sd2);
105              }            
106          }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines