Changeset 9bb977


Ignore:
Timestamp:
May 18, 2016, 10:04:49 PM (9 years ago)
Author:
Frederik Heber <heber@…>
Branches:
CombiningParticlePotentialParsing
Children:
928f65
Parents:
8dcfb9
git-author:
Frederik Heber <heber@…> (03/10/16 11:58:53)
git-committer:
Frederik Heber <heber@…> (05/18/16 22:04:49)
Message:

ParsePotentialsAction now uses TremoloPotentialFileParser.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Actions/PotentialAction/ParsePotentialsAction.cpp

    r8dcfb9 r9bb977  
    4747#include "CodePatterns/Log.hpp"
    4848
    49 #include "Potentials/EmpiricalPotential.hpp"
    50 #include "Potentials/Exceptions.hpp"
    51 #include "Potentials/PotentialFactory.hpp"
    52 #include "Potentials/PotentialRegistry.hpp"
    53 #include "Potentials/RegistryDeserializer.hpp"
     49#include "Potentials/TremoloPotentialFileParser.hpp"
    5450
    5551using namespace MoleCuilder;
     
    6561    std::ifstream returnstream(params.potential_file.get().string().c_str());
    6662    if (returnstream.good()) {
    67       std::string linestring;
    68       std::string token;
    69       while (returnstream.good()) {
    70         getline(returnstream, linestring);
    71         const std::string comment("#");
    72         if (linestring.find(comment) != std::string::npos) {
    73           LOG(4, "DEBUG: Skippeing comment line:"+linestring);
    74           continue;
    75         }
    76         const std::string whitespace(" \t");
    77         const size_t strBegin = linestring.find_first_not_of(whitespace);
    78         const size_t curlyopenpos = linestring.find("{");
    79         const size_t curlyclosedpos = linestring.find("}");
    80         if (curlyopenpos != std::string::npos) {
    81           // begin of new type section
    82           token = linestring.substr(strBegin, curlyopenpos);
    83           const size_t tokenEnd = token.find_first_of(whitespace);
    84           token = token.substr(0, tokenEnd);
    85           LOG(1, "INFO: Token is " << token);
    86           const type_name_map_t::right_const_iterator tokeniter = TypeNameMap.right.find(token);
    87           ASSERT( tokeniter != TypeNameMap.right.end(),
    88               "PotentialParsePotentialsAction::performCall() - could not find type to "
    89               +toString(token)+".");
    90           const tokentype_t tokentype = tokeniter->second;
    91           // get either particles {} or potentials {}
    92           switch (tokentype) {
    93             case particles:
    94             {
    95               if (!parseItems<Particle>(
    96                     returnstream,
    97                     ParticleFactory::getInstance(),
    98                     ParticleRegistry::getInstance(),
    99                     std::string("particle")))
    100                 return Action::failure;
    101               break;
    102             }
    103             case bonds:
    104             case angles:
    105             case torsions:
    106             case impropers:
    107             case nonbonded_2body_potentials:
    108             {
    109               if (!parseItems<EmpiricalPotential>(
    110                   returnstream,
    111                   PotentialFactory::getInstance(),
    112                   PotentialRegistry::getInstance(),
    113                   std::string("potential")))
    114                 return Action::failure;
    115               break;
    116             }
    117             default:
    118               ASSERT( 0,
    119                   "PotentialParsePotentialsAction::performCall() - token type "
    120                   +toString(tokentype)+" is unknown.");
    121           }
    122         } else if (curlyclosedpos != std::string::npos) {
    123           // section end encountered, just read next line
    124         } else {
    125           ELOG(0, "Parser confused, neither curly open nor curly closed on line "
    126               << linestring);
    127           return Action::failure;
    128         }
    129       }
     63      if (!TremoloPotentialFileParser::parsePotentials(returnstream))
     64        return Action::failure;
    13065    } else {
    13166      STATUS("Failed to parse from "+params.potential_file.get().string()+".");
Note: See TracChangeset for help on using the changeset viewer.