Canoe
Comprehensive Atmosphere N' Ocean Engine
hydrogen_cia.hpp
Go to the documentation of this file.
1 #ifndef SRC_OPACITY_GIANTS_HYDROGEN_CIA_HPP
2 #define SRC_OPACITY_GIANTS_HYDROGEN_CIA_HPP
3 
4 // C/C++
5 #include <iostream>
6 #include <vector>
7 
8 // opacity
9 #include <opacity/absorber.hpp>
10 
11 class XizH2H2CIA : public Absorber {
12  public:
13  XizH2H2CIA() : Absorber("H2-H2-CIA") {}
14 
15  virtual ~XizH2H2CIA() {}
16  void LoadCoefficient(std::string fname, int bid = -1);
17  Real GetAttenuation(Real wave1, Real wave2, AirParcel const& var) const;
18 
19  protected:
20  size_t len_[2];
21  std::vector<Real> axis_;
22  std::vector<Real> kcoeff_;
23 };
24 
25 class XizH2HeCIA : public Absorber {
26  public:
27  XizH2HeCIA() : Absorber("H2-He-CIA") {}
28 
29  virtual ~XizH2HeCIA() {}
30  void LoadCoefficient(std::string fname, int bid = -1);
31  Real GetAttenuation(Real wave1, Real wave2, AirParcel const& var) const;
32 
33  protected:
34  Real mixr2_;
35  size_t len_[2];
36  std::vector<Real> axis_;
37  std::vector<Real> kcoeff_;
38 };
39 
40 class OrtonCIA : public Absorber {
41  public:
42  OrtonCIA() : Absorber("Orthon-CIA") {}
43 
44  virtual ~OrtonCIA() {}
45  void LoadCoefficient(std::string fname, int bid = -1);
46  Real GetAttenuation(Real wave1, Real wave2, AirParcel const& var) const;
47 
48  protected:
49  size_t len_[2];
50  std::vector<Real> axis_;
51  std::vector<Real> kcoeff_;
52 };
53 
54 #endif
base class of all absorbers
Definition: absorber.hpp:25
std::vector< Real > kcoeff_
std::vector< Real > axis_
virtual ~OrtonCIA()
void LoadCoefficient(std::string fname, int bid=-1)
size_t len_[2]
Real GetAttenuation(Real wave1, Real wave2, AirParcel const &var) const
Get attenuation coefficient [1/m].
size_t len_[2]
std::vector< Real > kcoeff_
virtual ~XizH2H2CIA()
void LoadCoefficient(std::string fname, int bid=-1)
Real GetAttenuation(Real wave1, Real wave2, AirParcel const &var) const
Get attenuation coefficient [1/m].
std::vector< Real > axis_
virtual ~XizH2HeCIA()
std::vector< Real > kcoeff_
std::vector< Real > axis_
Real GetAttenuation(Real wave1, Real wave2, AirParcel const &var) const
Get attenuation coefficient [1/m].
size_t len_[2]
void LoadCoefficient(std::string fname, int bid=-1)