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().