STORMM Source Documentation
Loading...
Searching...
No Matches
nml_receptor.h
1// -*-c++-*-
2#ifndef STORMM_NML_RECEPTOR_H
3#define STORMM_NML_RECEPTOR_H
4
5#include <string>
6#include <vector>
7#include "copyright.h"
8#include "Constants/behavior.h"
9#include "Constants/symbol_values.h"
10#include "Parsing/textfile.h"
11#include "Structure/structure_enumerators.h"
12#include "namelist_element.h"
13#include "namelist_emulator.h"
14
15namespace stormm {
16namespace namelist {
17
18using constants::CartesianDimension;
19using constants::ExceptionResponse;
20using constants::UnitCellAxis;
21using parse::TextFile;
22using parse::WrapTextSearch;
23using structure::BoundaryCondition;
24using structure::GridDetail;
25using structure::MeshPosition;
26using structure::RMSDMethod;
27
29constexpr char default_receptor_grid_alignment[] = "molecule";
30constexpr char default_receptor_alignment_method[] = "align_mass";
31
36public:
37
49 ReceptorControls(ExceptionResponse policy_in = ExceptionResponse::DIE);
50
51 ReceptorControls(const TextFile &tf, int *start_line, bool *found_nml,
52 ExceptionResponse policy_in = ExceptionResponse::DIE,
53 WrapTextSearch wrap = WrapTextSearch::NO);
55
59 ReceptorControls(const ReceptorControls &original) = default;
60 ReceptorControls(ReceptorControls &&original) = default;
61 ReceptorControls& operator=(const ReceptorControls &original) = default;
62 ReceptorControls& operator=(ReceptorControls &&original) = default;
64
67 const std::string& getLabelGroup() const;
68
71 const std::string& getAlignmentMask() const;
72
74 RMSDMethod getAlignmentMethod() const;
75
77 MeshPosition getMeshPosition() const;
78
80 const NamelistEmulator& getTranscript() const;
81
83 void setLabelGroup(const std::string &label_group_in);
84
90 void setMeshPosition(const std::string &alignment_in);
91 void setMeshPosition(MeshPosition alignment_in);
93
94private:
95 ExceptionResponse policy;
96 std::string label_group;
101 std::string align_mask;
102 std::string align_method;
104 std::string mesh_position;
105
107 NamelistEmulator nml_transcript;
108};
109
119NamelistEmulator receptorInput(const TextFile &tf, int *start_line, bool *found,
120 ExceptionResponse policy = ExceptionResponse::DIE,
121 WrapTextSearch wrap = WrapTextSearch::NO);
122
123} // namespace namelist
124} // namespace stormm
125
126#endif
Collection of variables to transcribe information contained within a namelist.
Definition namelist_emulator.h:30
void setMeshPosition(const std::string &alignment_in)
Set the positioning of the mesh relative to the receptor molecule is describes. Overloading in this f...
Definition nml_receptor.cpp:94
const std::string & getLabelGroup() const
Get the label group in which to find all systems composing the receptor grid. This will correspond to...
Definition nml_receptor.cpp:64
MeshPosition getMeshPosition() const
Get the manner in which the mesh is aligned to the rigid molecule it represents.
Definition nml_receptor.cpp:79
ReceptorControls(ExceptionResponse policy_in=ExceptionResponse::DIE)
The constructor can prepare an object with default settings or read the corresponding namelist to acc...
Definition nml_receptor.cpp:22
RMSDMethod getAlignmentMethod() const
Get the alignment method.
Definition nml_receptor.cpp:74
const std::string & getAlignmentMask() const
Get the alignment mask showing which atoms and residues are most critical to the alignment of multipl...
Definition nml_receptor.cpp:69
void setLabelGroup(const std::string &label_group_in)
Set the label group for structures to be used in composing the mesh.
Definition nml_receptor.cpp:89
ReceptorControls(const ReceptorControls &original)=default
As with other control objects, copy and move constructors, plus copy and move assignment operators,...
const NamelistEmulator & getTranscript() const
Get the original namelist emulator object as a transcript of the user input.
Definition nml_receptor.cpp:84
Structure for translating a text file into a compact, rapidly parsable vector of characters in CPU RA...
Definition textfile.h:45