STORMM Source Documentation
Loading...
Searching...
No Matches
namelist_inventory.h
1// -*-c++-*-
2#ifndef STORMM_NAMELIST_INVENTORY_H
3#define STORMM_NAMELIST_INVENTORY_H
4
5#include <string>
6#include <vector>
7#include "copyright.h"
8#include "Constants/behavior.h"
9#include "Parsing/parsing_enumerators.h"
10#include "Parsing/textfile.h"
11#include "namelist_emulator.h"
12#include "nml_conformer.h"
13#include "nml_dynamics.h"
14#include "nml_ffmorph.h"
15#include "nml_files.h"
16#include "nml_mesh.h"
17#include "nml_minimize.h"
18#include "nml_nice.h"
19#include "nml_pppm.h"
20#include "nml_precision.h"
21#include "nml_random.h"
22#include "nml_receptor.h"
23#include "nml_remd.h"
24#include "nml_report.h"
25#include "nml_restraint.h"
26#include "nml_scene.h"
27#include "nml_solvent.h"
28
29namespace stormm {
30namespace namelist {
31
32using constants::ExceptionResponse;
33using parse::WrapTextSearch;
34using parse::TextFile;
35using NmlFuncPtr = NamelistEmulator(*)(const TextFile&, int*, bool*, const ExceptionResponse,
36 WrapTextSearch);
37
42public:
43
46 NamelistToken(const std::string &title_in, NmlFuncPtr producer_in);
47
49 const std::string& getTitle() const;
50
53 NamelistEmulator invoke(const TextFile &tf, int *start_line, bool *found,
54 ExceptionResponse policy = ExceptionResponse::DIE,
55 WrapTextSearch wrap = WrapTextSearch::YES) const;
56
57private:
58 std::string title;
59 NmlFuncPtr producer;
61};
62
63const std::vector<NamelistToken> namelist_inventory = {
64 NamelistToken(std::string("&conformer"), conformerInput),
65 NamelistToken(std::string("&dynamics"), dynamicsInput),
66 NamelistToken(std::string("&ffmorph"), ffmorphInput),
67 NamelistToken(std::string("&files"), filesInput),
68 NamelistToken(std::string("&mesh"), meshInput),
69 NamelistToken(std::string("&minimize"), minimizeInput),
70 NamelistToken(std::string("&nice"), niceInput),
71 NamelistToken(std::string("&pppm"), pppmInput),
72 NamelistToken(std::string("&precision"), precisionInput),
73 NamelistToken(std::string("&random"), randomInput),
74 NamelistToken(std::string("&receptor"), receptorInput),
75 NamelistToken(std::string("&remd"), remdInput),
76 NamelistToken(std::string("&report"), reportInput),
77 NamelistToken(std::string("&restraint"), restraintInput),
78 NamelistToken(std::string("&scene"), sceneInput),
79 NamelistToken(std::string("&solvent"), solventInput)
80};
81
82} // namespace namelist
83} // namespace stormm
84
85#endif
NamelistToken(const std::string &title_in, NmlFuncPtr producer_in)
The constructor will take both the namelist title and a pointer to the function that produces its Nam...
Definition namelist_inventory.cpp:8
Collection of variables to transcribe information contained within a namelist.
Definition namelist_emulator.h:30
Link a string containing the human-readable title of a namelist to a function pointer which produces ...
Definition namelist_inventory.h:41
NamelistToken(const std::string &title_in, NmlFuncPtr producer_in)
The constructor will take both the namelist title and a pointer to the function that produces its Nam...
Definition namelist_inventory.cpp:8
NamelistEmulator invoke(const TextFile &tf, int *start_line, bool *found, ExceptionResponse policy=ExceptionResponse::DIE, WrapTextSearch wrap=WrapTextSearch::YES) const
Invoke the corresponding function to produce a namelist emulator, perhaps loaded with input data.
Definition namelist_inventory.cpp:18
const std::string & getTitle() const
Get the namelist title.
Definition namelist_inventory.cpp:13
Structure for translating a text file into a compact, rapidly parsable vector of characters in CPU RA...
Definition textfile.h:45