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

Comparing trunk/OOPSE-4/src/applications/staticProps/RadialDistrFunc.cpp (file contents):
Revision 1995 by tim, Thu Feb 10 22:37:21 2005 UTC vs.
Revision 2035 by tim, Tue Feb 15 19:36:07 2005 UTC

# Line 60 | Line 60 | RadialDistrFunc::        RadialDistrFunc(SimInfo* info
60              seleMan2_.setSelectionSet(evaluator2_.evaluate());
61      }
62  
63 +    if (!evaluator1_.isDynamic() && !evaluator2_.isDynamic()) {
64 +        //if all selections are static,  we can precompute the number of real pairs    
65 +
66 +        int nSelected1 = seleMan1_.getSelectionCount();
67 +        int nSelected2 = seleMan2_.getSelectionCount();
68 +
69 +        BitSet bs = seleMan1_.getSelectionSet();
70 +        bs &= seleMan2_.getSelectionSet();
71 +        int nIntersect = bs.countBits();
72 +
73 +        nRealPairs_ = nSelected1 * nSelected2 - (nIntersect +1) * nIntersect/2;
74 +    }
75 +    
76   }
77  
78   void RadialDistrFunc::process() {
# Line 67 | Line 80 | void RadialDistrFunc::process() {
80      RigidBody* rb;
81      SimInfo::MoleculeIterator mi;
82      Molecule::RigidBodyIterator rbIter;
83 +    
84      preProcess();
85      
86      DumpReader reader(info_, dumpFilename_);    
87      int nFrames = reader.getNFrames();
88 <    nProcessed_ = nFrames / step_ + 1;
88 >    nProcessed_ = nFrames / step_;
89 >
90      for (int i = 0; i < nFrames; i += step_) {
91          reader.readFrame(i);
92          currentSnapshot_ = info_->getSnapshotManager()->getCurrentSnapshot();
# Line 100 | Line 115 | void RadialDistrFunc::process() {
115              StuntDouble* sd2;
116              int k;
117              for (sd2 = seleMan2_.beginSelected(k); sd2 != NULL; sd2 = seleMan2_.nextSelected(k)) {
118 <                collectHistogram(sd1, sd2);
118 >                if (sd1 != sd2) {
119 >                    collectHistogram(sd1, sd2);
120 >                }
121              }            
122          }
123  
# Line 113 | Line 130 | void RadialDistrFunc::process() {
130      writeRdf();
131   }
132  
133 + int RadialDistrFunc::getNRealPairs() {
134 +    if (evaluator1_.isDynamic() || evaluator2_.isDynamic()) {
135 +        //if one of the selection is dynamic,  need to recompute it    
136 +
137 +        int nSelected1 = seleMan1_.getSelectionCount();
138 +        int nSelected2 = seleMan2_.getSelectionCount();
139 +
140 +        BitSet bs = seleMan1_.getSelectionSet();
141 +        bs &= seleMan2_.getSelectionSet();
142 +        int nIntersect = bs.countBits();
143 +
144 +        nRealPairs_ = nSelected1 * nSelected2 - (nIntersect +1) * nIntersect/2;
145 +    }
146 +
147 +    return nRealPairs_;
148   }
149 +
150 + }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines