ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/applications/staticProps/P2OrderParameter.cpp
(Generate patch)

Comparing trunk/src/applications/staticProps/P2OrderParameter.cpp (file contents):
Revision 1542 by gezelter, Thu Mar 3 20:32:49 2011 UTC vs.
Revision 1543 by gezelter, Tue Mar 15 20:55:16 2011 UTC

# Line 61 | Line 61 | namespace OpenMD {
61      if (!evaluator1_.isDynamic()) {
62        seleMan1_.setSelectionSet(evaluator1_.evaluate());
63      }
64    
64    }
65  
66    P2OrderParameter::P2OrderParameter(SimInfo* info, const string& filename,
# Line 122 | Line 121 | namespace OpenMD {
121      SimInfo::MoleculeIterator mi;
122      Molecule::RigidBodyIterator rbIter;
123      StuntDouble* sd;
124 <    int i;
126 <
124 >    int i, ii;
125    
126      DumpReader reader(info_, dumpFilename_);    
127      int nFrames = reader.getNFrames();
# Line 131 | Line 129 | namespace OpenMD {
129      for (int i = 0; i < nFrames; i += step_) {
130        reader.readFrame(i);
131        currentSnapshot_ = info_->getSnapshotManager()->getCurrentSnapshot();
132 <
132 >      
133        for (mol = info_->beginMolecule(mi); mol != NULL;
134             mol = info_->nextMolecule(mi)) {
135          //change the positions of atoms which belong to the rigidbodies
# Line 148 | Line 146 | namespace OpenMD {
146          if  (evaluator1_.isDynamic())
147            seleMan1_.setSelectionSet(evaluator1_.evaluate());
148          
149 <        for (sd = seleMan1_.beginSelected(i); sd != NULL;
150 <             sd = seleMan1_.nextSelected(i)) {
149 >        for (sd = seleMan1_.beginSelected(ii); sd != NULL;
150 >             sd = seleMan1_.nextSelected(ii)) {
151            if (sd->isDirectional()) {
152              Vector3d vec = sd->getA().getColumn(2);
153              vec.normalize();
# Line 173 | Line 171 | namespace OpenMD {
171          orderTensor /= sdPairs_.size();
172        }
173        
174 +
175        orderTensor -= (RealType)(1.0/3.0) * Mat3x3d::identity();  
176        
177        Vector3d eigenvalues;
178        Mat3x3d eigenvectors;    
179 +
180        Mat3x3d::diagonalize(orderTensor, eigenvalues, eigenvectors);
181        
182        int which;
# Line 196 | Line 196 | namespace OpenMD {
196        }  
197  
198        RealType angle = 0.0;
199
199        
200        if (doVect_) {
201 <        for (sd = seleMan1_.beginSelected(i); sd != NULL;
202 <             sd = seleMan1_.nextSelected(i)) {
201 >        for (sd = seleMan1_.beginSelected(ii); sd != NULL;
202 >             sd = seleMan1_.nextSelected(ii)) {
203            if (sd->isDirectional()) {
204              Vector3d vec = sd->getA().getColumn(2);
205              vec.normalize();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines