Canoe
Comprehensive Atmosphere N' Ocean Engine
oxygen_cia.hpp
Go to the documentation of this file.
1 #ifndef SRC_OPACITY_OXYGEN_CIA_HPP_
2 #define SRC_OPACITY_OXYGEN_CIA_HPP_
3 
4 // C/C++
5 #include <vector>
6 
7 // harp
8 #include "absorber.hpp"
9 
10 class O2O2CIA : public Absorber {
11  public:
12  O2O2CIA() : Absorber("O2-O2") {}
13 
14  virtual ~O2O2CIA() {}
15 
16  void LoadCoefficient(std::string fname, size_t bid) override;
17 
18  Real GetAttenuation(Real wave1, Real wave2,
19  AirParcel const& var) const override {
20  return getAttenuation1((wave1 + wave2) / 2., var);
21  }
22 
23  protected:
24  Real getAttenuation1(Real wave, AirParcel const& var) const;
25 
26  size_t fd_len_[2];
27  size_t a1dg_x3sg00_len_[2];
28  size_t a1dg_x3sg10_len_[2];
29  size_t ab_len_[2];
30  size_t other_len_[2];
31 
32  std::vector<Real> fd_axis_;
33  std::vector<Real> a1dg_x3sg00_axis_;
34  std::vector<Real> a1dg_x3sg10_axis_;
35  std::vector<Real> ab_axis_;
36  std::vector<Real> other_axis_;
37  std::vector<Real> fd_;
38  std::vector<Real> a1dg_x3sg00_;
39  std::vector<Real> a1dg_x3sg10_;
40  std::vector<Real> ab_;
41  std::vector<Real> other_;
42 };
43 
44 #endif // SRC_OPACITY_OXYGEN_CIA_HPP_
base class of all absorbers
Definition: absorber.hpp:25
size_t a1dg_x3sg10_len_[2]
Definition: oxygen_cia.hpp:28
size_t fd_len_[2]
Definition: oxygen_cia.hpp:26
std::vector< Real > a1dg_x3sg00_
Definition: oxygen_cia.hpp:38
Real GetAttenuation(Real wave1, Real wave2, AirParcel const &var) const override
Get attenuation coefficient [1/m].
Definition: oxygen_cia.hpp:18
std::vector< Real > other_axis_
Definition: oxygen_cia.hpp:36
std::vector< Real > fd_
Definition: oxygen_cia.hpp:37
Real getAttenuation1(Real wave, AirParcel const &var) const
Definition: oxygen_cia.cpp:148
std::vector< Real > a1dg_x3sg10_
Definition: oxygen_cia.hpp:39
size_t other_len_[2]
Definition: oxygen_cia.hpp:30
void LoadCoefficient(std::string fname, size_t bid) override
Load absorption coefficient from file.
Definition: oxygen_cia.cpp:33
std::vector< Real > ab_axis_
Definition: oxygen_cia.hpp:35
std::vector< Real > a1dg_x3sg00_axis_
Definition: oxygen_cia.hpp:33
std::vector< Real > ab_
Definition: oxygen_cia.hpp:40
virtual ~O2O2CIA()
Definition: oxygen_cia.hpp:14
size_t a1dg_x3sg00_len_[2]
Definition: oxygen_cia.hpp:27
std::vector< Real > fd_axis_
Definition: oxygen_cia.hpp:32
std::vector< Real > other_
Definition: oxygen_cia.hpp:41
size_t ab_len_[2]
Definition: oxygen_cia.hpp:29
std::vector< Real > a1dg_x3sg10_axis_
Definition: oxygen_cia.hpp:34