Aether  0.0
Ionosphere-Thermosphere model
calc_chemistry.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_CALC_CHEMISTRY_H_
5 #define INCLUDE_CALC_CHEMISTRY_H_
6 
7 #include <vector>
8 #include <string>
9 #include "../include/ions.h"
10 #include "../include/neutrals.h"
11 #include "../include/times.h"
12 #include "../include/grid.h"
13 #include "../include/report.h"
14 
15 class Chemistry {
16 
17  public:
18 
19  Chemistry(Inputs args, Report report);
20 
21  struct reaction_type {
22  // Reactions:
23  // loss1 + loss2 + loss3 -> source1 + source2 + source3
24 
25  std::vector<std::string> sources_names;
26  std::vector<std::string> losses_names;
27 
28  std::vector<int> sources_ids;
29  std::vector<int> sources_IsNeutrals;
30 
31  std::vector<int> losses_ids;
32  std::vector<int> losses_IsNeutrals;
33 
34  precision_t rate;
35  };
36 
37  std::vector<reaction_type> reactions;
38 
39  struct sources_and_losses_type {
40  precision_t neutral_sources[nSpecies];
41  precision_t neutral_losses[nSpecies];
42  precision_t ion_sources[nIons];
43  precision_t ion_losses[nIons];
44  precision_t heat_neutrals;
45  precision_t heat_ions;
46  precision_t heat_electrons;
47  };
48 
49 #endif // INCLUDE_CALC_CHEMISTRY_H_
Chemistry
Definition: chemistry.h:10
Inputs
Definition: inputs.h:10
Report
Definition: report.h:28