ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-3.0/src/io/EAMAtomTypesSectionParser.cpp
(Generate patch)

Comparing trunk/OOPSE-3.0/src/io/EAMAtomTypesSectionParser.cpp (file contents):
Revision 1930 by gezelter, Wed Jan 12 22:41:40 2005 UTC vs.
Revision 2109 by tim, Thu Mar 10 20:28:17 2005 UTC

# Line 62 | Line 62 | void EAMAtomTypesSectionParser::parseLine(ForceField&
62              atomType->setEAM();                            
63              parseEAMParamFile(ff, atomType, potentialParamFile, atomType->getIdent());                                                    
64          } else {
65 <
65 >            sprintf(painCave.errMsg, "EAMAtomTypesSectionParser Error: Can not find AtomType [%s]\n",
66 >                atomTypeName.c_str());
67 >            painCave.isFatal = 1;
68 >            simError();  
69          }
70          
71      } else {
72 <      
72 >        sprintf(painCave.errMsg, "EAMAtomTypesSectionParser Error: Not enough tokens at line %d\n",
73 >                lineNo);
74 >        painCave.isFatal = 1;
75 >        simError();    
76      }
77              
72
78   }
79  
80   void EAMAtomTypesSectionParser::parseEAMParamFile(ForceField& ff, AtomType* atomType,
# Line 98 | Line 103 | void EAMAtomTypesSectionParser::parseEAMParamFile(Forc
103              latticeConstant = tokenizer1.nextTokenAsDouble();
104              lattice = tokenizer1.nextToken();
105          }else {
106 <            std::cerr << "Not enought tokens" << std::endl;
106 >            sprintf(painCave.errMsg, "EAMAtomTypesSectionParser Error: Not enough tokens\n");
107 >            painCave.isFatal = 1;
108 >            simError();  
109          }
103    } else {
104
110      }
111      
112      // The third line is nrho, drho, nr, dr and rcut
# Line 118 | Line 123 | void EAMAtomTypesSectionParser::parseEAMParamFile(Forc
123              eamParam.dr = tokenizer2.nextTokenAsDouble();
124              eamParam.rcut = tokenizer2.nextTokenAsDouble();
125          }else {
121            std::cerr << "Not enought tokens" << std::endl;
122        }
123    } else {
126  
127 <    }
127 >            sprintf(painCave.errMsg, "EAMAtomTypesSectionParser Error: Not enough tokens\n");
128 >            painCave.isFatal = 1;
129 >            simError();            
130  
131 +        }
132 +    }
133 +    
134      parseEAMArray(*ppfStream, eamParam.Frhovals, eamParam.nrho);    
135      parseEAMArray(*ppfStream, eamParam.rvals, eamParam.nr);
136      parseEAMArray(*ppfStream, eamParam.rhovals, eamParam.nr);
137      
138      atomType->addProperty(new EAMParamGenericData("EAM", eamParam));
139 +
140 +    delete ppfStream;
141   }
142  
143   void EAMAtomTypesSectionParser::parseEAMArray(std::istream& input,
# Line 144 | Line 153 | void EAMAtomTypesSectionParser::parseEAMArray(std::ist
153      const int bufferSize = 65535;
154      char buffer[bufferSize];
155      std::string line;
147    int readLines = num/dataPerLine;
156      int lineCount = 0;
157  
158      while(lineCount < nlinesToRead && input.getline(buffer, bufferSize) ){
# Line 155 | Line 163 | void EAMAtomTypesSectionParser::parseEAMArray(std::ist
163                  array.push_back(tokenizer.nextTokenAsDouble());
164              }
165          } else {
166 <
166 >            sprintf(painCave.errMsg, "EAMAtomTypesSectionParser Error: Not enough tokens\n");
167 >            painCave.isFatal = 1;
168 >            simError();  
169          }
170          ++lineCount;
171      }
172  
173      if (lineCount < nlinesToRead) {
174 <        
174 >        sprintf(painCave.errMsg, "EAMAtomTypesSectionParser Error: Not enough lines to read\n");
175 >        painCave.isFatal = 1;
176 >        simError();          
177      }
178      
179   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines