STORMM Source Documentation
Loading...
Searching...
No Matches
amber_prmtop_util.h
1// -*-c++-*-
2#ifndef STORMM_AMBER_PMRTOP_UTIL_H
3#define STORMM_AMBER_PMRTOP_UTIL_H
4
5#include "copyright.h"
6#include "Parsing/citation.h"
7#include "Parsing/textfile.h"
8#include "Parsing/polynumeric.h"
9#include "atomgraph_enumerators.h"
10
11namespace stormm {
12namespace topology {
13
14using parse::Citation;
15using parse::TextFile;
16using parse::PolyNumeric;
17using parse::NumberFormat;
18
22constexpr double amber_charge_scaling = 18.2223;
23constexpr double inv_amber_charge_scaling = 1.0 / amber_charge_scaling;
24
28constexpr double default_hydrogen_bond_cutoff = 3.0;
29
37int4 parseLineFormat(const std::string &fmt_in, const std::string &file_name, const int line_idx);
38
46int scanToFlag(const TextFile &tf, const char* flag, std::vector<int4>* detected_format,
47 TopologyRequirement needed = TopologyRequirement::ESSENTIAL, int start_line = 0);
48
54std::vector<Citation> readForceFieldReferences(const TextFile &tf, const int lstart);
55
68std::vector<PolyNumeric> amberPrmtopData(const TextFile &tf, int start_line, NumberFormat cform,
69 int count_per_line, int width, int required_count,
70 int possible_count = -1);
71
82std::vector<int> iAmberPrmtopData(const TextFile &tf, int start_line, int count_per_line,
83 int width, int required_count, int possible_count = -1);
84
95std::vector<double> dAmberPrmtopData(const TextFile &tf, int start_line, int count_per_line,
96 int width, int required_count, int possible_count = -1);
97
108std::vector<double> eAmberPrmtopData(const TextFile &tf, int start_line, int count_per_line,
109 int width, int required_count, int possible_count = -1);
110
121std::vector<char4> c4AmberPrmtopData(const TextFile &tf, int start_line, int count_per_line,
122 int required_count, int possible_count = -1);
123
124} // namespace topology
125} // namespace stormm
126
127#endif
Structure for translating a text file into a compact, rapidly parsable vector of characters in CPU RA...
Definition textfile.h:45