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

Comparing branches/development/src/brains/SimCreator.cpp (file contents):
Revision 1601 by gezelter, Thu Aug 4 20:04:35 2011 UTC vs.
Revision 1665 by gezelter, Tue Nov 22 20:38:56 2011 UTC

# Line 36 | Line 36
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).          
39 < * [4]  Vardeman & Gezelter, in progress (2009).                        
39 > * [4]  Kuang & Gezelter,  J. Chem. Phys. 133, 164101 (2010).
40 > * [5]  Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011).
41   */
42  
43   /**
# Line 76 | Line 77
77   #include "antlr/NoViableAltException.hpp"
78  
79   #ifdef IS_MPI
80 + #include "mpi.h"
81   #include "math/ParallelRandNumGen.hpp"
82   #endif
83  
84   namespace OpenMD {
85    
86 <  Globals* SimCreator::parseFile(std::istream& rawMetaDataStream, const std::string& filename, int startOfMetaDataBlock ){
86 >  Globals* SimCreator::parseFile(std::istream& rawMetaDataStream, const std::string& filename, int mdFileVersion, int startOfMetaDataBlock ){
87      Globals* simParams = NULL;
88      try {
89  
# Line 92 | Line 94 | namespace OpenMD {
94        const int masterNode = 0;
95        int commStatus;
96        if (worldRank == masterNode) {
97 < #endif
98 <                
97 >        commStatus = MPI_Bcast(&mdFileVersion, 1, MPI_INT, masterNode, MPI_COMM_WORLD);
98 > #endif                
99          SimplePreprocessor preprocessor;
100          preprocessor.preprocess(rawMetaDataStream, filename, startOfMetaDataBlock, ppStream);
101                  
# Line 106 | Line 108 | namespace OpenMD {
108              
109                  
110        } else {
111 +
112 +        commStatus = MPI_Bcast(&mdFileVersion, 1, MPI_INT, masterNode, MPI_COMM_WORLD);
113 +
114          //get stream size
115          commStatus = MPI_Bcast(&streamSize, 1, MPI_LONG, masterNode, MPI_COMM_WORLD);  
116  
# Line 229 | Line 234 | namespace OpenMD {
234        simError();
235      }
236  
237 +    simParams->setMDfileVersion(mdFileVersion);
238      return simParams;
239    }
240    
# Line 243 | Line 249 | namespace OpenMD {
249      int metaDataBlockEnd = -1;
250      int i;
251      int mdOffset;
252 +    int mdFileVersion;
253  
254   #ifdef IS_MPI            
255      const int masterNode = 0;
# Line 276 | Line 283 | namespace OpenMD {
283          painCave.isFatal = 1;
284          simError();
285        }
286 +      
287 +      // found the correct opening string, now try to get the file
288 +      // format version number.
289 +
290 +      StringTokenizer tokenizer(line, "=<> \t\n\r");
291 +      std::string fileType = tokenizer.nextToken();
292 +      toUpper(fileType);
293  
294 +      mdFileVersion = 0;
295 +
296 +      if (fileType == "OPENMD") {
297 +        while (tokenizer.hasMoreTokens()) {
298 +          std::string token(tokenizer.nextToken());
299 +          toUpper(token);
300 +          if (token == "VERSION") {
301 +            mdFileVersion = tokenizer.nextTokenAsInt();
302 +            break;
303 +          }
304 +        }
305 +      }
306 +            
307        //scan through the input stream and find MetaData tag        
308        while(mdFile_.getline(buffer, bufferSize)) {
309          ++lineNo;
# Line 332 | Line 359 | namespace OpenMD {
359      std::stringstream rawMetaDataStream(mdRawData);
360  
361      //parse meta-data file
362 <    Globals* simParams = parseFile(rawMetaDataStream, mdFileName, metaDataBlockStart+1);
362 >    Globals* simParams = parseFile(rawMetaDataStream, mdFileName, mdFileVersion,
363 >                                   metaDataBlockStart + 1);
364      
365      //create the force field
366      ForceField * ff = ForceFieldFactory::getInstance()->createForceField(simParams->getForceField());

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines