hitran2refr  Richard J. Mathar, J. Opt. A: Pure Appl. Opt. 9 (2007) 470
Air.h
Go to the documentation of this file.
1 #pragma once
2 
3 using namespace std ;
4 
5 #include <complex>
6 
7 #include <set>
8 
9 #include "molecule.h"
10 
13 #define KELVIN2CELS(k) ((k)-273.15)
14 
17 #define MMHG2PA(q) (133.322*(q))
18 
21 #define PA2MMHG(p) ((p)/133.322)
22 
23 #include "transition.h"
24 
25 /* 1-base definition of the indices of the atoms and molecules not part of the HITRAN database,
26 * in particular the noble gases, the hydrogen molecule etc
27 */
28 #define ATOMS_OFFSET 100
29 
30 
31 
32 class Air {
33 public:
36  double T ;
37 
40  double Panom;
41 
42  struct compon {
46 
50  double volpercent ;
51 
54  double mol_m3;
55 
58  double partp;
59  } ;
60 
63  struct compon * mix;
64 
67  int mixcnt ;
68 
72  static bool scale_p ;
73 
74  Air(const double temp, const double press) ;
75 
76  Air(const double temp, const double press, const double relhum, const double co2, const double o2, const double h2o,
77  const double o3, const bool useV, const string dir, int fcount, char *argv[] );
78 
79  ~Air() ;
80 
81 #ifdef USE_QOFT
82  void Qsum() ;
83 #endif
84 
85  complex<double> suscep(const double lambda) ;
86 
87 
88 
89  double magn(const double useV) ;
90 
91  double ppmCO2() const ;
92 
93 
94  double Pa(double &mols, const bool excludh2o) const ;
95 
96  int hash2o(const int molecNo) const ;
97 
98 
99 private:
100 
101  void scaledry(const bool useV) ;
102 
103  void scale(const bool useV, const set<int> excl) ;
104 
110  static const double volrel[] ;
111 
114  static const char *nam[] ;
115 } ;
double partp
Definition: Air.h:58
int mixcnt
Definition: Air.h:67
double mol_m3
Definition: Air.h:54
STL namespace.
Definition: molecule.h:11
static bool scale_p
Definition: Air.h:72
double Panom
Definition: Air.h:40
molecule * molc
Definition: Air.h:45
double T
Definition: Air.h:36
Definition: Air.h:42
Definition: Air.h:32
double volpercent
Definition: Air.h:50
struct compon * mix
Definition: Air.h:63