My Project
readParameters.hpp
Go to the documentation of this file.
1 #include "yaml-cpp/yaml.h"
2 #include<armadillo>
3 
4 using namespace std;
5 
6 class Parameters{
7 public:
8  Parameters();
9  Parameters(string filePath);// = "doc/yaml/test_parameters.yaml");
10  void printLoadedFile();
11 
12  void loadFile();
13  void assignParameters();
14 
15  int readParameterInt(string parameter_name);
16  double readParameterDouble(string parameter_name);
17  string readParameterString(string parameter_name);
18  bool readParameterBool(string parameter_name);
19  arma::uvec readParameterIntList(string parameter_name);
20  bool readDebugParameterBool(string debug_parameter_name);
21 
22  arma::uvec yamlListToArmadilloVector(YAML::Node yamlList);
23 
24  YAML::Node config;
25  YAML::Node config_categories;
26  YAML::Node config_parameteres;
27  YAML::Node read_parameters;
29 
30  YAML::Node parameters;
31  YAML::Node debug_parameters;
32 
33  YAML::Node default_parameters;
35  string filePath;
36 
37  // global constants
38  double dt;
39  int seed;
41 
42  // local constants
43  int N;
44  double max_time;
45  double slider_speed;
46  double increment;
47  double interval;
48 
49  string file_name;
51 
52  // bksim parameters
53  double m_F0; // Maximum static fricition force = unity
54  double m_alpha; // Used to scale velocity input to the friction function
55  double m_sigma; // Used to adjust maximum kinetic friction force
56 
57  double m_mass_x; // Mass of pad
58  double m_scale_mass; // Scaling factor of block mass
59  double m_zeta; // Damping ratio (m_c_P/m_c_crit) must be < 1
60  double m_k_P0; // Stationary spring between pad and surface
61  double m_scale_P; // Scaling factor of spring constants between block and pad
62  double m_scale_C; // Scaling factor of neighboring spring constants (axial stiffness)
63 
64  double m_t;
65  double m_v0;// = m_F0*m_dt / (m_mass); // Threshold velocity
66  double m_u_min; // "zero" velocity
67 
68  arma::uvec loggedBlocks;
69 
72 
75 
76  // debug of model
77 
97 
98 
99 };
100 
102  public:
103  DebugParameters(string debug_test_parameters): Parameters(debug_test_parameters){};
104  int printCurrentDirectory();
105  void printLoadedFile();
106  void debugTest();
107 };
double increment
bool debug_write_blocks
YAML::Node read_default_parameters
bool debug_special_phi
bool debug_no_neighbor_springs
double m_scale_P
double m_scale_C
double threshold_speed
YAML::Node read_parameters
arma::uvec loggedBlocks
bool debug_no_min_speed
YAML::Node default_parameters
bool debug_only_negative_initial
double slider_speed
YAML::Node parameters
bool debug_no_random_displacements
bool progress_indicator
double end_speed_continuous
bool debug_continuous_slider_speed
bool debug_stick_blocks
bool debug_stop_slider
bool debug_pad_as_block
YAML::Node config
YAML::Node config_parameteres
bool debug_print_event
YAML::Node debug_parameters
bool debug_one_degree_freedom_mode
bool debug_only_write_friction
bool debug_no_stationary_springs
YAML::Node config_categories
double start_speed_continuous
def loadFile(run_name, shared_names, selected='pad_position.csv')
YAML::Node default_debug_parameters
bool debug_negative_intial_values
string file_name
bool debug_no_friction
bool debug_no_damper
double m_scale_mass
DebugParameters(string debug_test_parameters)