1 #ifndef READ_AMBER_PARM_H
2 #define READ_AMBER_PARM_H
7 #include <unordered_map>
38 namespace AmberParm7Reader {
48 using std::unordered_map;
50 using std::make_tuple;
87 typedef unordered_map<string, tuple<bool, vector<FortranData>>>
AmberTopparMap;
265 const vector<FortranFormatSpecifier>& specifiers,
266 vector<FortranData>& destination);
299 vector<string>& destination,
300 const string& section_name);
303 vector<int>& destination,
304 const string& section_name);
307 vector<_REAL>& destination,
308 const string& section_name);
322 std::initializer_list<std::reference_wrapper<vector<string>>> destination,
323 const string& section_name);
326 std::initializer_list<std::reference_wrapper<vector<int>>> destination,
327 const string& section_name);
330 std::initializer_list<std::reference_wrapper<vector<_REAL>>> destination,
331 const string& section_name);
vector< string > RadiusSet
vector< int > UreyBradleyAt2
vector< _REAL > BoxDimensions
vector< int > ImproperAt1
FortranData(const int &x)
vector< string > ResNames
FortranData(const _REAL &x)
vector< string > AtomTree
vector< _REAL > ScnbScaleFactor
vector< int > ImproperAt2
vector< _REAL > Polarizability
unordered_map< string, tuple< bool, vector< FortranData > > > AmberTopparMap
void split_string_by_specifiers(const string &source, const vector< FortranFormatSpecifier > &specifiers, vector< FortranData > &destination)
This function splits a string by a set of fortran format specifiers.
vector< int > AtomNumbers
FortranData(const string &str)
vector< _REAL > ImproperPhases
bool read_amber_parm_stage2(AmberTopparMap &toppar_map, Ambertoppar &toppar_data)
Read an AmberTopparMap into an Ambertoppar struct for NAMD.
vector< int > UreyBradleyAt1
void parse_fortran_format(const std::string &str, FortranFormatSpecifier &specifier)
Parse a single fortran format specifier.
vector< int > CMAPResolution
bool read_amber_parm_stage1(const char *filename, AmberTopparMap &toppar_map)
Read an AMBER topology file into an AmberTopparMap.
bool parse_pointer(const vector< FortranData > &source, Ambertoppar &result)
vector< int > UreyBradleyNum
vector< _REAL > LJ14BCoefficients
vector< _REAL > LJ14ACoefficients
vector< string > AtomNames
vector< vector< _REAL > > CMAPParameter
vector< _REAL > UreyBradleyEquilValues
vector< int > AtomsPerMolecule
vector< int > ImproperNum
Ambertoppar readparm(const char *filename)
vector< int > ImproperAt3
vector< _REAL > SceeScaleFactor
vector< _REAL > ImproperForceConstants
vector< _REAL > UreyBradleyForceConstants
bool parse_section(const vector< FortranData > &source, const int &count, vector< string > &destination, const string §ion_name)
Copy data from source to destination.
vector< int > ImproperAt4