/* * Project: MoleCuilder * Description: creates and alters molecular systems * Copyright (C) 2016 Frederik Heber. All rights reserved. * * * This file is part of MoleCuilder. * * MoleCuilder is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * MoleCuilder is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with MoleCuilder. If not, see . */ /* * TremoloPotentialTypes.cpp * * Created on: Mar 9, 2016 * Author: heber */ // include config.h #ifdef HAVE_CONFIG_H #include #endif #include "CodePatterns/MemDebug.hpp" #include "TremoloPotentialTypes.hpp" #include // static entities TremoloPotentialTypes::type_name_map_t TremoloPotentialTypes::TypeNameMap = boost::assign::list_of< TremoloPotentialTypes::type_name_map_t::relation > (particles, "particles") (angles, "angles") (bonds, "bonds") (torsions, "torsions") (impropers, "impropers") (nonbonded_2body_potentials, "nonbonded_2body_potentials"); TremoloPotentialTypes::TokenTypeMap_t TremoloPotentialTypes::TokenTypeMap = boost::assign::list_of< TremoloPotentialTypes::TokenTypeMap_t::relation > ( "harmonic_bond", "bonds") ( "harmonic_angle", "angles") ( "constant", "nonbonded_2body_potentials") ( "tersoff", "nonbonded_2body_potentials") ( "lennardjones", "nonbonded_2body_potentials") ( "morse", "bonds") ( "torsion", "torsions") ( "improper", "impropers"); static const std::string emptystring; static const TremoloPotentialTypes::tokentype_t emptytoken = TremoloPotentialTypes::MAX_tokentype; const TremoloPotentialTypes::type_t & TremoloPotentialTypes::getTypeFromTokenName(const token_t &_token) { const TokenTypeMap_t::left_const_iterator tokeniter = TokenTypeMap.left.find(_token); if (tokeniter != TokenTypeMap.left.end()) return tokeniter->second; else return emptystring; } const TremoloPotentialTypes::token_t & TremoloPotentialTypes::getTokenFromType(const type_t &_type) { const TokenTypeMap_t::right_const_iterator typeiter = TokenTypeMap.right.find(_type); if (typeiter != TokenTypeMap.right.end()) return typeiter->second; else return emptystring; } const TremoloPotentialTypes::tokentype_t& TremoloPotentialTypes::getTokenTypeFromType(const type_t &_type) { const type_name_map_t::right_const_iterator typeiter = TypeNameMap.right.find(_type); if (typeiter != TypeNameMap.right.end()) return typeiter->second; else return emptytoken; } const TremoloPotentialTypes::type_t& TremoloPotentialTypes::getTypeFromTokenType(const tokentype_t _tokentype) { const type_name_map_t::left_const_iterator tokeniter = TypeNameMap.left.find(_tokentype); if (tokeniter != TypeNameMap.left.end()) return tokeniter->second; else return emptystring; }