2#ifndef STORMM_NML_CONFORMER_H
3#define STORMM_NML_CONFORMER_H
6#include "Constants/behavior.h"
7#include "Constants/symbol_values.h"
8#include "Structure/structure_enumerators.h"
9#include "Synthesis/synthesis_enumerators.h"
10#include "Parsing/textfile.h"
11#include "namelist_element.h"
12#include "namelist_emulator.h"
17using constants::ExceptionResponse;
19using parse::WrapTextSearch;
20using structure::SamplingIntensity;
21using synthesis::SystemGrouping;
22using synthesis::VariableTorsionAdjustment;
26constexpr int default_conf_rotation_samples = 3;
27constexpr int default_conf_cis_trans_samples = 2;
28constexpr int default_conf_max_rotatable_bonds = 4;
29constexpr int default_conf_max_seeding_attempts = 3;
30constexpr int default_conf_clash_pairs = 0;
31constexpr int default_conf_max_system_trials = 16384;
32constexpr int default_conf_sample_trials = 512;
33constexpr int default_conf_running_states = 16;
34constexpr int default_conf_final_states = 100;
35constexpr int default_conf_reshuffle_iterations = 0;
36constexpr int active_states_limit = 524288;
37constexpr int seeding_attempts_limit = 100;
38constexpr double default_conf_rmsd_tolerance = 1.5;
39constexpr double default_conf_core_restraint = 16.0;
40constexpr char default_conf_chirality[] =
"false";
41constexpr char default_conf_cis_trans[] =
"false";
42constexpr char default_conf_stop_hbonds[] =
"false";
43constexpr char default_conf_output_grouping[] =
"system";
44constexpr char default_conf_sampling_effort[] =
"light";
45constexpr char default_conf_adjustment_method[] =
"none";
46constexpr char default_conf_rotation_set_zero[] =
"60.0";
47constexpr char default_conf_rotation_set_one[] =
"180.0";
48constexpr char default_conf_rotation_set_two[] =
"-60.0";
49constexpr char default_conf_cis_trans_set_zero[] =
"0.0";
50constexpr char default_conf_cis_trans_set_one[] =
"180.0";
51constexpr char default_conf_rotation_snap[] =
"10.0";
52constexpr char default_conf_cis_trans_snap[] =
"5.0";
73 ExceptionResponse policy_in = ExceptionResponse::DIE,
74 WrapTextSearch wrap = WrapTextSearch::NO);
184 ExceptionResponse policy;
189 std::string core_atom_mask;
190 std::string core_data_item;
197 std::string anchor_conformation;
204 bool sample_chirality;
205 bool sample_cis_trans;
210 int rotation_sample_count;
211 int rotatable_bond_limit;
212 int cis_trans_sample_count;
213 int max_seeding_attempts;
216 int clash_pair_tolerance;
220 int sampling_trial_limit;
224 int maximum_trial_limit;
226 double rmsd_tolerance;
228 std::string group_method;
231 std::string sample_effort;
235 double rotation_snap_threshold;
238 double cis_trans_snap_threshold;
241 std::string adjustment_method;
245 std::vector<double> rotation_sample_values;
248 std::vector<double> cis_trans_sample_values;
254 void validateCoreRestraint()
const;
260 void validateSampleChirality(
const std::string &directive)
const;
266 void validateSampleCisTrans(
const std::string &directive)
const;
272 void validatePreventHBonds(
const std::string &directive)
const;
275 void validateStateCounts();
278 void validateGroupingMethod();
281 void validateSeedingAttempts();
286 void validateClashCounts();
289 void validateSamplingIntensity();
298 void validateTorsionSnapping(
double *snap_setting,
const std::string &desc)
const;
301 void validateTorsionAdjustmentProtocol();
320 void processSamplingValues(
int *sample_count,
const std::string &count_keyword,
321 std::vector<double> *sample_values,
const std::string &value_keyword,
322 double value_stride,
double value_notch,
336 ExceptionResponse policy = ExceptionResponse::DIE,
337 WrapTextSearch wrap = WrapTextSearch::NO);
Collection of variables to transcribe information contained within a namelist.
Definition namelist_emulator.h:30
Structure for translating a text file into a compact, rapidly parsable vector of characters in CPU RA...
Definition textfile.h:45