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, |
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 |
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, |
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 |
|
} |