45#include "io/InversionTypesSectionParser.hpp"
48#include "types/InversionTypeParser.hpp"
49#include "utils/simError.h"
53 InversionTypesSectionParser::InversionTypesSectionParser(ForceFieldOptions&) {
54 setSectionName(
"InversionTypes");
57 void InversionTypesSectionParser::parseLine(ForceField& ff,
58 const std::string& line,
60 StringTokenizer tokenizer(line);
61 InversionTypeParser itParser;
62 InversionType* inversionType = NULL;
64 int nTokens = tokenizer.countTokens();
68 painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
69 "InversionTypesSectionParser Error: Not enough tokens at line %d\n",
76 std::string at1 = tokenizer.nextToken();
77 std::string at2 = tokenizer.nextToken();
78 std::string at3 = tokenizer.nextToken();
79 std::string at4 = tokenizer.nextToken();
80 std::string remainder = tokenizer.getRemainingString();
83 inversionType = itParser.parseLine(remainder);
84 }
catch (OpenMDException& e) {
85 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
86 "InversionTypesSectionParser Error: %s "
93 if (inversionType != NULL) {
94 ff.addInversionType(at1, at2, at3, at4, inversionType);
This basic Periodic Table class was originally taken from the data.cpp file in OpenBabel.