| 
    NAMD
    
   | 
 
Classes | |
| struct | Ambertoppar | 
| struct | FortranData | 
| struct | FortranFormatSpecifier | 
Typedefs | |
| typedef unordered_map< string, tuple< bool, vector< FortranData > > > | AmberTopparMap | 
Functions | |
| void | parse_fortran_format (const std::string &str, FortranFormatSpecifier &specifier) | 
| Parse a single fortran format specifier.  More... | |
| void | split_string (const std::string &data, const std::string &delim, std::vector< std::string > &dest) | 
| void | parse_fortran_format (const std::string &str, vector< FortranFormatSpecifier > &specifiers) | 
| Parse multiple fortran format specifiers separated by commas.  More... | |
| 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.  More... | |
| bool | read_amber_parm_stage1 (const char *filename, AmberTopparMap &toppar_map) | 
| Read an AMBER topology file into an AmberTopparMap.  More... | |
| bool | read_amber_parm_stage2 (AmberTopparMap &toppar_map, Ambertoppar &toppar_data) | 
| Read an AmberTopparMap into an Ambertoppar struct for NAMD.  More... | |
| bool | parse_pointer (const vector< FortranData > &source, Ambertoppar &result) | 
| bool | parse_section (const vector< FortranData > &source, const int &count, vector< string > &destination, const string §ion_name) | 
| Copy data from source to destination.  More... | |
| bool | parse_section (const vector< FortranData > &source, const int &count, vector< int > &destination, const string §ion_name) | 
| bool | parse_section (const vector< FortranData > &source, const int &count, vector< _REAL > &destination, const string §ion_name) | 
| bool | parse_section (const vector< FortranData > &source, const int &count, std::initializer_list< std::reference_wrapper< vector< string >>> destination, const string §ion_name) | 
| Copy data from source to multiple destination arrays.  More... | |
| bool | parse_section (const vector< FortranData > &source, const int &count, std::initializer_list< std::reference_wrapper< vector< int >>> destination, const string §ion_name) | 
| bool | parse_section (const vector< FortranData > &source, const int &count, std::initializer_list< std::reference_wrapper< vector< _REAL >>> destination, const string §ion_name) | 
| Ambertoppar | readparm (const char *filename) | 
| typedef unordered_map<string, tuple<bool, vector<FortranData> > > AmberParm7Reader::AmberTopparMap | 
Definition at line 87 of file ReadAmberParm.h.
| void AmberParm7Reader::parse_fortran_format | ( | const std::string & | str, | 
| FortranFormatSpecifier & | specifier | ||
| ) | 
Parse a single fortran format specifier.
A good documentation for fortran format specifiers can be found at: https://www.obliquity.com/computer/fortran/format.html. However, I don't plan to support all of them since that is too complicated and the AMBER parm7 files only use a subset of them. Here's a list of examples of the specifiers: 5E16.8: match 5 floating point numbers, with 16 as field width and 8 as precision. i2: match an integer with 2 as field width. a78: match a string with 78 characters. 20a4: match 20 strings and each string has 4 characters. This function can parse the a string of above into a FortranFormatSpecifier.
| str | a specifier string. | 
| specifier | a fortran specifier struct. | 
Definition at line 16 of file ReadAmberParm.C.
References AmberParm7Reader::FortranFormatSpecifier::IsPadding, AmberParm7Reader::FortranFormatSpecifier::NumOfFields, AmberParm7Reader::FortranFormatSpecifier::Padding, AmberParm7Reader::FortranFormatSpecifier::Precision, AmberParm7Reader::FortranFormatSpecifier::Type, and AmberParm7Reader::FortranFormatSpecifier::Width.
Referenced by parse_fortran_format(), and read_amber_parm_stage1().
| void AmberParm7Reader::parse_fortran_format | ( | const std::string & | str, | 
| vector< FortranFormatSpecifier > & | specifiers | ||
| ) | 
Parse multiple fortran format specifiers separated by commas.
| str | a specifier string. For example: "i2,a78". | 
| specifiers | a vector of fortran specifier structs. | 
Definition at line 94 of file ReadAmberParm.C.
References parse_fortran_format(), and split_string().
| bool AmberParm7Reader::parse_pointer | ( | const vector< FortranData > & | source, | 
| Ambertoppar & | result | ||
| ) | 
Definition at line 1135 of file ReadAmberParm.C.
References AmberParm7Reader::Ambertoppar::AngleAt1, AmberParm7Reader::Ambertoppar::AngleAt2, AmberParm7Reader::Ambertoppar::AngleAt3, AmberParm7Reader::Ambertoppar::AngleHAt1, AmberParm7Reader::Ambertoppar::AngleHAt2, AmberParm7Reader::Ambertoppar::AngleHAt3, AmberParm7Reader::Ambertoppar::AngleHNum, AmberParm7Reader::Ambertoppar::AngleNum, AmberParm7Reader::Ambertoppar::AtomNames, AmberParm7Reader::Ambertoppar::AtomNumbers, AmberParm7Reader::Ambertoppar::AtomRes, AmberParm7Reader::Ambertoppar::AtomSym, AmberParm7Reader::Ambertoppar::AtomTree, AmberParm7Reader::Ambertoppar::BondAt1, AmberParm7Reader::Ambertoppar::BondAt2, AmberParm7Reader::Ambertoppar::BondHAt1, AmberParm7Reader::Ambertoppar::BondHAt2, AmberParm7Reader::Ambertoppar::BondHNum, AmberParm7Reader::Ambertoppar::BondNum, AmberParm7Reader::Ambertoppar::Charges, AmberParm7Reader::Ambertoppar::Cn1, AmberParm7Reader::Ambertoppar::Cn2, AmberParm7Reader::Ambertoppar::Cno, AmberParm7Reader::Ambertoppar::DihAt1, AmberParm7Reader::Ambertoppar::DihAt2, AmberParm7Reader::Ambertoppar::DihAt3, AmberParm7Reader::Ambertoppar::DihAt4, AmberParm7Reader::Ambertoppar::DihHAt1, AmberParm7Reader::Ambertoppar::DihHAt2, AmberParm7Reader::Ambertoppar::DihHAt3, AmberParm7Reader::Ambertoppar::DihHAt4, AmberParm7Reader::Ambertoppar::DihHNum, AmberParm7Reader::Ambertoppar::DihNum, AmberParm7Reader::Ambertoppar::ExclAt, AmberParm7Reader::Ambertoppar::HB10, AmberParm7Reader::Ambertoppar::HB12, AmberParm7Reader::Ambertoppar::Iac, AmberParm7Reader::Ambertoppar::Iblo, AmberParm7Reader::Ambertoppar::Ifbox, AmberParm7Reader::Ambertoppar::Ifcap, AmberParm7Reader::Ambertoppar::Ifpert, AmberParm7Reader::Ambertoppar::Ipres, AmberParm7Reader::Ambertoppar::Masses, AmberParm7Reader::Ambertoppar::Mbona, AmberParm7Reader::Ambertoppar::Mbper, AmberParm7Reader::Ambertoppar::Mdper, AmberParm7Reader::Ambertoppar::Mgper, AmberParm7Reader::Ambertoppar::Mphia, AmberParm7Reader::Ambertoppar::Mtheta, AmberParm7Reader::Ambertoppar::Natom, AmberParm7Reader::Ambertoppar::Natyp, AmberParm7Reader::Ambertoppar::Nbona, AmberParm7Reader::Ambertoppar::Nbonh, AmberParm7Reader::Ambertoppar::Nbper, AmberParm7Reader::Ambertoppar::Ncopy, AmberParm7Reader::Ambertoppar::Ndper, AmberParm7Reader::Ambertoppar::Ngper, AmberParm7Reader::Ambertoppar::Nhparm, AmberParm7Reader::Ambertoppar::Nmxrs, AmberParm7Reader::Ambertoppar::Nnb, AmberParm7Reader::Ambertoppar::Nparm, AmberParm7Reader::Ambertoppar::Nphb, AmberParm7Reader::Ambertoppar::Nphia, AmberParm7Reader::Ambertoppar::Nphih, AmberParm7Reader::Ambertoppar::Nptra, AmberParm7Reader::Ambertoppar::Nres, AmberParm7Reader::Ambertoppar::Ntheta, AmberParm7Reader::Ambertoppar::Ntheth, AmberParm7Reader::Ambertoppar::Ntypes, AmberParm7Reader::Ambertoppar::Numang, AmberParm7Reader::Ambertoppar::Numbnd, AmberParm7Reader::Ambertoppar::Numextra, AmberParm7Reader::Ambertoppar::Phase, AmberParm7Reader::Ambertoppar::Pk, AmberParm7Reader::Ambertoppar::Pn, AmberParm7Reader::Ambertoppar::Radii, AmberParm7Reader::Ambertoppar::RadiusSet, AmberParm7Reader::Ambertoppar::Req, AmberParm7Reader::Ambertoppar::ResNames, AmberParm7Reader::Ambertoppar::Rk, AmberParm7Reader::Ambertoppar::SceeScaleFactor, AmberParm7Reader::Ambertoppar::ScnbScaleFactor, AmberParm7Reader::Ambertoppar::Screen, AmberParm7Reader::Ambertoppar::Solty, AmberParm7Reader::Ambertoppar::Teq, AmberParm7Reader::Ambertoppar::Tk, and AmberParm7Reader::Ambertoppar::TreeJoin.
Referenced by read_amber_parm_stage2().
| bool AmberParm7Reader::parse_section | ( | const vector< FortranData > & | source, | 
| const int & | count, | ||
| vector< string > & | destination, | ||
| const string & | section_name | ||
| ) | 
Copy data from source to destination.
| source | source data from AmberTopparMap. | 
| count | the number of fields. It should equal to the size of source. | 
| destination | destination array in Ambertoppar. | 
| section_name | name of the section (used for sanity check only). | 
Definition at line 1235 of file ReadAmberParm.C.
References endi(), iERROR(), iINFO(), and iout.
Referenced by read_amber_parm_stage2().
| bool AmberParm7Reader::parse_section | ( | const vector< FortranData > & | source, | 
| const int & | count, | ||
| vector< int > & | destination, | ||
| const string & | section_name | ||
| ) | 
| bool AmberParm7Reader::parse_section | ( | const vector< FortranData > & | source, | 
| const int & | count, | ||
| vector< _REAL > & | destination, | ||
| const string & | section_name | ||
| ) | 
| bool AmberParm7Reader::parse_section | ( | const vector< FortranData > & | source, | 
| const int & | count, | ||
| std::initializer_list< std::reference_wrapper< vector< string >>> | destination, | ||
| const string & | section_name | ||
| ) | 
Copy data from source to multiple destination arrays.
Assuming the size of destination list is M, the size of the source array should be M * count. This function copies source[M*i+j] to destination[j][i].
| source | source data from AmberTopparMap. | 
| count | the number of fields. It should equal to the size of source divided by the size of destination. | 
| destination | multiple destination arrays in Ambertoppar. | 
| section_name | name of the section (used for sanity check only). | 
Definition at line 1286 of file ReadAmberParm.C.
| bool AmberParm7Reader::parse_section | ( | const vector< FortranData > & | source, | 
| const int & | count, | ||
| std::initializer_list< std::reference_wrapper< vector< int >>> | destination, | ||
| const string & | section_name | ||
| ) | 
| bool AmberParm7Reader::parse_section | ( | const vector< FortranData > & | source, | 
| const int & | count, | ||
| std::initializer_list< std::reference_wrapper< vector< _REAL >>> | destination, | ||
| const string & | section_name | ||
| ) | 
| bool AmberParm7Reader::read_amber_parm_stage1 | ( | const char * | filename, | 
| AmberTopparMap & | toppar_map | ||
| ) | 
Read an AMBER topology file into an AmberTopparMap.
| filename | the filename of the AMBER topology file. | 
| toppar_map | a map contains the FLAG title and the data. | 
Definition at line 149 of file ReadAmberParm.C.
References NAMD_err(), parse_fortran_format(), and split_string_by_specifiers().
Referenced by readparm().
| bool AmberParm7Reader::read_amber_parm_stage2 | ( | AmberTopparMap & | toppar_map, | 
| Ambertoppar & | toppar_data | ||
| ) | 
Read an AmberTopparMap into an Ambertoppar struct for NAMD.
| toppar_map | a map contains the FLAG title and the data | 
| toppar_data | an Ambertoppar struct for NAMD. | 
Definition at line 236 of file ReadAmberParm.C.
References AmberParm7Reader::Ambertoppar::AtomNames, AmberParm7Reader::Ambertoppar::AtomNumbers, AmberParm7Reader::Ambertoppar::AtomRes, AmberParm7Reader::Ambertoppar::AtomsPerMolecule, AmberParm7Reader::Ambertoppar::AtomSym, AmberParm7Reader::Ambertoppar::AtomTree, AmberParm7Reader::Ambertoppar::BoxDimensions, AmberParm7Reader::Ambertoppar::CapInfo, AmberParm7Reader::Ambertoppar::CapInfo2, AmberParm7Reader::Ambertoppar::Charges, AmberParm7Reader::Ambertoppar::CMAPIndex, AmberParm7Reader::Ambertoppar::CMAPParameter, AmberParm7Reader::Ambertoppar::CMAPResolution, AmberParm7Reader::Ambertoppar::CMAPTermCount, AmberParm7Reader::Ambertoppar::CMAPTypeCount, AmberParm7Reader::Ambertoppar::Cn1, AmberParm7Reader::Ambertoppar::Cn2, AmberParm7Reader::Ambertoppar::Cno, endi(), AmberParm7Reader::Ambertoppar::ExclAt, AmberParm7Reader::Ambertoppar::HasCMAP, AmberParm7Reader::Ambertoppar::HB10, AmberParm7Reader::Ambertoppar::HB12, AmberParm7Reader::Ambertoppar::Iac, AmberParm7Reader::Ambertoppar::Iblo, iERROR(), AmberParm7Reader::Ambertoppar::Ifbox, AmberParm7Reader::Ambertoppar::Ifcap, AmberParm7Reader::Ambertoppar::ImproperAt1, AmberParm7Reader::Ambertoppar::ImproperAt2, AmberParm7Reader::Ambertoppar::ImproperAt3, AmberParm7Reader::Ambertoppar::ImproperAt4, AmberParm7Reader::Ambertoppar::ImproperForceConstants, AmberParm7Reader::Ambertoppar::ImproperNum, AmberParm7Reader::Ambertoppar::ImproperPhases, iout, AmberParm7Reader::Ambertoppar::Ipol, AmberParm7Reader::Ambertoppar::Ipres, AmberParm7Reader::Ambertoppar::Iptres, AmberParm7Reader::Ambertoppar::IsCharmmFF, AmberParm7Reader::Ambertoppar::ititl, iWARN(), AmberParm7Reader::Ambertoppar::LJ14ACoefficients, AmberParm7Reader::Ambertoppar::LJ14BCoefficients, AmberParm7Reader::Ambertoppar::Masses, AmberParm7Reader::Ambertoppar::Natom, AmberParm7Reader::Ambertoppar::Nbona, AmberParm7Reader::Ambertoppar::Nbonh, AmberParm7Reader::Ambertoppar::Nimphi, AmberParm7Reader::Ambertoppar::NimprTypes, AmberParm7Reader::Ambertoppar::Nnb, AmberParm7Reader::Ambertoppar::Nphb, AmberParm7Reader::Ambertoppar::Nphia, AmberParm7Reader::Ambertoppar::Nphih, AmberParm7Reader::Ambertoppar::Nptra, AmberParm7Reader::Ambertoppar::Nres, AmberParm7Reader::Ambertoppar::Nspm, AmberParm7Reader::Ambertoppar::Nspsol, AmberParm7Reader::Ambertoppar::Ntheta, AmberParm7Reader::Ambertoppar::Ntheth, AmberParm7Reader::Ambertoppar::Ntypes, AmberParm7Reader::Ambertoppar::Nub, AmberParm7Reader::Ambertoppar::Nubtypes, AmberParm7Reader::Ambertoppar::Numang, AmberParm7Reader::Ambertoppar::Numbnd, parse_pointer(), parse_section(), AmberParm7Reader::Ambertoppar::Phase, AmberParm7Reader::Ambertoppar::Pk, AmberParm7Reader::Ambertoppar::Pn, AmberParm7Reader::Ambertoppar::Polarizability, AmberParm7Reader::Ambertoppar::Radii, AmberParm7Reader::Ambertoppar::RadiusSet, AmberParm7Reader::Ambertoppar::Req, AmberParm7Reader::Ambertoppar::ResNames, AmberParm7Reader::Ambertoppar::Rk, AmberParm7Reader::Ambertoppar::SceeScaleFactor, AmberParm7Reader::Ambertoppar::ScnbScaleFactor, AmberParm7Reader::Ambertoppar::Screen, AmberParm7Reader::Ambertoppar::Teq, AmberParm7Reader::Ambertoppar::Tk, AmberParm7Reader::Ambertoppar::UreyBradleyAt1, AmberParm7Reader::Ambertoppar::UreyBradleyAt2, AmberParm7Reader::Ambertoppar::UreyBradleyEquilValues, AmberParm7Reader::Ambertoppar::UreyBradleyForceConstants, and AmberParm7Reader::Ambertoppar::UreyBradleyNum.
Referenced by readparm().
| Ambertoppar AmberParm7Reader::readparm | ( | const char * | filename | ) | 
Definition at line 1361 of file ReadAmberParm.C.
References endi(), AmberParm7Reader::Ambertoppar::HasData, iERROR(), iINFO(), iout, NAMD_die(), read_amber_parm_stage1(), and read_amber_parm_stage2().
Referenced by NamdState::loadStructure().
| void AmberParm7Reader::split_string | ( | const std::string & | data, | 
| const std::string & | delim, | ||
| std::vector< std::string > & | dest | ||
| ) | 
| void AmberParm7Reader::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.
This function splits a string by a set of fortran format specifiers. For example: If the source string is: " 920979 9 920959 19 47 25 85 66 0 0", and there is only one specifier, "10I8" in the specifiers vector, then the vector destination will be APPENDED with [" 920979", " 9", " 920959",...]
| source | the source string. | 
| destination | the destination container of the splited data. | 
Definition at line 105 of file ReadAmberParm.C.
Referenced by read_amber_parm_stage1().
 1.8.14