Aether  0.0
Ionosphere-Thermosphere model
inputs.h
1 // Copyright 2020, the Aether Development Team (see doc/dev_team.md for members)
2 // Full license can be found in License.md
3 
4 #ifndef INCLUDE_INPUTS_H_
5 #define INCLUDE_INPUTS_H_
6 
7 #include <vector>
8 #include <string>
9 
10 class Inputs {
11 
12 public:
13 
14  Inputs(Times &time, Report &report);
15  int read(Times &time, Report &report);
16  json read_json(std::string json_file);
17  int read_inputs_json(Times &time, Report &report);
18  int get_verbose();
19  precision_t get_dt_euv();
20  precision_t get_dt_report();
21  precision_t get_n_outputs();
22  precision_t get_dt_output(int iOutput);
23  std::string get_type_output(int iOutput);
24  precision_t get_euv_heating_eff_neutrals();
25  std::string get_euv_model();
26  std::string get_euv_file();
27  std::string get_aurora_file();
28  std::string get_chemistry_file();
29  std::vector<std::string> get_omniweb_files();
30  int get_number_of_omniweb_files();
31  std::string get_f107_file();
32  std::string get_planet();
33  std::string get_planetary_file();
34  std::string get_planet_species_file();
35  std::string get_collision_file();
36  std::string get_bfield_type();
37  std::string get_electrodynamics_file();
38 
39  // ------------------------------
40  // Grid inputs:
41 
43  std::string alt_file;
44  bool IsUniformAlt;
45  precision_t alt_min;
46  precision_t dalt;
47  precision_t lat_min;
48  precision_t lat_max;
49  precision_t lon_min;
50  precision_t lon_max;
51  };
52 
53  grid_input_struct get_grid_inputs();
54 
55  int get_nLonsGeo();
56  int get_nLatsGeo();
57  int get_nAltsGeo();
58 
59  int iVerbose;
60  int iTimingDepth;
61 
62  std::string get_settings_str(std::string key1);
63  std::string get_settings_str(std::string key1, std::string key2);
64  std::vector<int> get_settings_timearr(std::string key1);
65  std::vector<int> get_settings_intarr(std::string key1);
66 
67 private:
68 
69  json settings;
70 
71  std::string euv_file = "UA/inputs/euv.csv";
72  std::string aurora_file = "UA/inputs/aurora_earth.csv";
73  std::string chemistry_file = "UA/inputs/chemistry_earth.csv";
74  std::string collision_file =
75  "UA/inputs/ion_neutral_collision_frequencies.csv";
76  std::string input_file = "aether.in";
77  std::string euv_model = "euvac";
78  std::string planetary_file = "UA/inputs/orbits.csv";
79  std::vector<std::string> omniweb_files;
80  std::string planet = "earth";
81  std::string f107_file = "";
82  std::string planet_species_file = "";
83  std::string electrodynamics_file = "";
84 
85  std::string bfield = "none";
86 
87  grid_input_struct geo_grid_input;
88 
89  precision_t euv_heating_eff_neutrals;
90  precision_t euv_heating_eff_electrons;
91 
92  std::vector<float> dt_output;
93  std::vector<std::string> type_output;
94  std::string output_directory = "UA/output";
95  std::string restart_out_directory = "UA/restartOut";
96  std::string restart_in_directory = "UA/restartIn";
97 
98  precision_t dt_euv;
99  precision_t dt_report;
100 
101  int nLonsGeo;
102  int nLatsGeo;
103  int nAltsGeo;
104 };
105 
106 #endif // INCLUDE_INPUTS_H_
Inputs::grid_input_struct
Definition: inputs.h:42
Inputs
Definition: inputs.h:10
Report
Definition: report.h:28
Times
Definition: times.h:21