RadLib
Loading...
Searching...
No Matches
rad_rcslw.h
Go to the documentation of this file.
1
3
4#pragma once
5
6#include <string>
7#include <vector>
8#include "rad.h"
9
19
20class rad_rcslw : public rad {
21
22
24
25 protected:
26
27 double P;
28 double Tref;
29 double Tb;
30
31 std::vector<double> P_table;
32 std::vector<double> C_table;
33 std::vector<double> Tg_table;
34 std::vector<double> Tb_table;
35 std::vector<double> xH2O_table;
36
37 std::vector<double> F_pts;
38 std::vector<double> Ft_pts;
39
40 std::vector<double> Falbdf_CO2;
41 std::vector<double> Falbdf_CO;
42 std::vector<double> Falbdf_H2O;
43
44 int nP;
45 int nC;
46 int nTg;
47 int nTb;
48 int ny_H2O;
49
50 double Cmin;
51 double Cmax;
52 double Fmin;
53 double Fmax;
54
56
57 public:
58
59 void get_k_a(std::vector<double> &kabs, // absorption coefficient (1/m)
60 std::vector<double> &awts, // gas weight (sum to one)
61 const double T, // gas temperature (K)
62 const double P_not_used, // gas pressure (Pa); (interface only, set by constructor)
63 const double fvsoot, // volume fraction soot (not ppmv)
64 const double xH2O, // mole fraction H2O
65 const double xCO2, // mole fraction CO2
66 const double xCO, // mole fraction CO
67 const double xCH4_not_used); // mole fraction CH4 (interface only, not used)
68
69 void get_k_a_oneband(double &kabs, // absorption coefficient (1/m)
70 double &awts, // gas weight (sum to one)
71 const int iband, // band/gas to get k_a for
72 const double T, // gas temperature (K)
73 const double P_not_used, // gas pressure (Pa)
74 const double fvsoot, // volume fraction soot (not ppmv)
75 const double xH2O, // mole fraction h2o
76 const double xCO2, // mole fraction co2
77 const double xCO, // mole fraction co
78 const double xCH4_not_used); // mole fraction ch4
79
80 private:
81
82 double get_F_albdf(const double C, double Tg, double Tb, double xCO2, double xCO, double xH2O,
83 double fvsoot);
84 double get_FI_albdf(const double F, const double Tg, const double Tb,
85 const double xCO2, const double xCO, const double xH2O,
86 const double fvsoot);
87 void get_FI_albdf_tables(const std::string Ptable_file_name,
88 const int nx, const int ny, const int nz,
89 std::vector<double> &myarray);
90 void get_FI_albdf_tables(const std::string Ptable_file_name,
91 const int nx, const int ny, const int nz, const int nw,
92 std::vector<double> &myarray);
93 void set_Fpts(void);
95 double F_albdf_soot(const double C, const double Tg, const double Tb, const double fvsoot);
96
98
99 public:
100
101 rad_rcslw(const int p_nGG,
102 const double TbTref,
103 const double p_P,
104 const double fvsoot,
105 const double xH2O,
106 const double xCO2,
107 const double xCO);
108
109 virtual ~rad_rcslw(){}
110
111};
112
double F_albdf_soot(const double C, const double Tg, const double Tb, const double fvsoot)
Definition rad_rcslw.cc:619
std::vector< double > Tg_table
gas temperatures (K, abscissas) in table
Definition rad_rcslw.h:33
std::vector< double > C_table
cross sections (m2/mol abscissas) in table
Definition rad_rcslw.h:32
double P
system pressure (atm); assumed constant
Definition rad_rcslw.h:27
double Fmax
maximum albdf, corresponding to Cmax
Definition rad_rcslw.h:53
void get_FI_albdf_tables(const std::string Ptable_file_name, const int nx, const int ny, const int nz, const int nw, std::vector< double > &myarray)
std::vector< double > Tb_table
blackbody temperature (K, abscissas) in table
Definition rad_rcslw.h:34
std::vector< double > P_table
pressures (atm, abscissas) in table
Definition rad_rcslw.h:31
std::vector< double > xH2O_table
mole fractions H2O (abscissas) in table
Definition rad_rcslw.h:35
std::vector< double > Falbdf_H2O
H2O albdf table values.
Definition rad_rcslw.h:42
double Cmax
maximum absorption cross section
Definition rad_rcslw.h:51
void get_k_a_oneband(double &kabs, double &awts, const int iband, const double T, const double P_not_used, const double fvsoot, const double xH2O, const double xCO2, const double xCO, const double xCH4_not_used)
Definition rad_rcslw.cc:99
void set_Fpts(void)
Definition rad_rcslw.cc:343
double get_F_albdf(const double C, double Tg, double Tb, double xCO2, double xCO, double xH2O, double fvsoot)
Definition rad_rcslw.cc:222
int ny_H2O
number of h2o values (abscissas) in table
Definition rad_rcslw.h:48
std::vector< double > Ft_pts
albdf grid (t for tilde)
Definition rad_rcslw.h:38
void get_k_a(std::vector< double > &kabs, std::vector< double > &awts, const double T, const double P_not_used, const double fvsoot, const double xH2O, const double xCO2, const double xCO, const double xCH4_not_used)
Definition rad_rcslw.cc:160
int nTg
number of Tg values (abscissas) in table
Definition rad_rcslw.h:46
std::vector< double > F_pts
albdf grid
Definition rad_rcslw.h:37
int nTb
number of Tb values (abscissas) in table
Definition rad_rcslw.h:47
void set_Falbdf_CO2_CO_H2O_at_P()
Definition rad_rcslw.cc:435
double Tref
reference temperature (K) for setting F grid (normally same as Tb)
Definition rad_rcslw.h:28
void get_FI_albdf_tables(const std::string Ptable_file_name, const int nx, const int ny, const int nz, std::vector< double > &myarray)
std::vector< double > Falbdf_CO2
CO2 albdf table values (with abscissas above)
Definition rad_rcslw.h:40
double Fmin
minimum albdf, corresponding to Cmin
Definition rad_rcslw.h:52
double Tb
black temperature (K)
Definition rad_rcslw.h:29
virtual ~rad_rcslw()
Definition rad_rcslw.h:109
double get_FI_albdf(const double F, const double Tg, const double Tb, const double xCO2, const double xCO, const double xH2O, const double fvsoot)
Definition rad_rcslw.cc:276
int nC
number of C values (abscissas) in table
Definition rad_rcslw.h:45
std::vector< double > Falbdf_CO
CO albdf table values.
Definition rad_rcslw.h:41
int nP
number of P values (abscissas) in table
Definition rad_rcslw.h:44
double Cmin
minimum absorption cross section
Definition rad_rcslw.h:50
Definition rad.h:20
Abstract base class.