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

Comparing trunk/src/io/DumpReader.cpp (file contents):
Revision 1796 by gezelter, Mon Sep 10 18:38:44 2012 UTC vs.
Revision 1897 by gezelter, Wed Jul 3 20:21:00 2013 UTC

# Line 35 | Line 35
35   *                                                                      
36   * [1]  Meineke, et al., J. Comp. Chem. 26, 252-271 (2005).            
37   * [2]  Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006).          
38 < * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008).          
38 > * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008).          
39   * [4]  Kuang & Gezelter,  J. Chem. Phys. 133, 164101 (2010).
40   * [5]  Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011).
41   */
# Line 128 | Line 128 | namespace OpenMD {
128    }
129    
130    void DumpReader::scanFile(void) {
131 <    int lineNo = 0;
131 >
132      std::streampos prevPos;
133      std::streampos  currPos;
134      
# Line 142 | Line 142 | namespace OpenMD {
142        bool foundOpenSnapshotTag = false;
143        bool foundClosedSnapshotTag = false;
144  
145 +      int lineNo = 0;
146        while(inFile_->getline(buffer, bufferSize)) {
147          ++lineNo;
148          
# Line 227 | Line 228 | namespace OpenMD {
228        needVel_ = false;
229      }
230      
231 <    if (storageLayout & DataStorage::dslAmat || storageLayout & DataStorage::dslElectroFrame) {
231 >    if (storageLayout & DataStorage::dslAmat ||
232 >        storageLayout & DataStorage::dslDipole ||
233 >        storageLayout & DataStorage::dslQuadrupole) {
234        needQuaternion_ = true;
235      } else {
236        needQuaternion_ = false;
# Line 525 | Line 528 | namespace OpenMD {
528  
529      StringTokenizer tokenizer(line);
530      int nTokens;
531 <    
531 >        
532      nTokens = tokenizer.countTokens();
533      
534      if (nTokens < 2) {  
# Line 557 | Line 560 | namespace OpenMD {
560      if (i >> siteIndex) {
561        // chew up this token and parse as an int:
562        siteIndex = tokenizer.nextTokenAsInt();
563 <      RigidBody* rb = static_cast<RigidBody*>(sd);
564 <      sd = rb->getAtoms()[siteIndex];
563 >
564 >      if (sd->isRigidBody()) {
565 >        RigidBody* rb = static_cast<RigidBody*>(sd);
566 >        sd = rb->getAtoms()[siteIndex];
567 >      }
568      }
569  
570      /**
# Line 645 | Line 651 | namespace OpenMD {
651  
652    void  DumpReader::readSiteData(std::istream& inputStream) {
653  
648    inputStream.getline(buffer, bufferSize);
654      std::string line(buffer);
650    
651    if (line.find("<SiteData>") == std::string::npos) {
652      // site data isn't required for a simulation, so skip
653      return;
654    }
655  
656 +    // We already found the starting <SiteData> tag or we wouldn't be
657 +    // here, so just start parsing until we get to the ending
658 +    // </SiteData> tag:
659 +    
660      while(inputStream.getline(buffer, bufferSize)) {
661        line = buffer;
662        

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines