RadLib
Loading...
Searching...
No Matches
ex_S2.cc
Go to the documentation of this file.
1
3
4#include <iostream>
5#include <cmath> // pow
6#include "../../src/c++/rad_rcslw.h"
7#include "../../src/c++/rad.h"
8
9using namespace std;
10
11void parallel_planes(rad *RAD,
12 const double L,
13 const int ntheta,
14 const vector<double> &T,
15 const double P,
16 const vector<double> &fvsoot,
17 const vector<double> &xH2O,
18 const vector<double> &xCO2,
19 const vector<double> &xCO,
20 const vector<double> &xCH4,
21 vector<double> &q,
22 vector<double> &Q,
23 vector<double> &x,
24 vector<double> &xQ,
25 const bool LzeroIbc=false
26 );
27
29
30int main() {
31
32 //--------------------- parameters
33
34 double TT = 1000.0;
35 double P = 101325.0;
36 double xco2_1 = 0.4;
37 double xco2_2 = 0.1;
38 double Lhot = 0.5;
39 int nGG = 24;
40 int ntheta = 101;
41 int nxh = 1001; // for Lcold=0; changes below to keep dx roughly constant
42
43 vector<double> Lcold{0, 0.01, 0.025, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.75, 1.0, 1.5, 2.0};
44
45 int nGGa = nGG+1;
46
47 double xco=0.0, xh2o=0.0, xch4=0.0, fvs=0.0;
48
49 //---------------------
50
51 cout << "# Lcold (m), q(L)/σThot^4";
52
53 for(int iLcold=0; iLcold<Lcold.size(); ++iLcold){
54
55 double L = Lcold[iLcold] + Lhot;
56
57 double xco2_avg = (xco2_1*0.5+xco2_2*Lcold[iLcold])/L;
58
59 int nx = int(nxh*L/Lhot);
60
61 vector<double> xCO2(nx, xco2_1);
62 vector<double> xCO(nx, xco);
63 vector<double> xH2O(nx, xh2o);
64 vector<double> xCH4(nx, 0.0);
65 vector<double> fvsoot(nx, fvs);
66
67 vector<double> x(nx, 0.0);
68 vector<double> xQ;
69 vector<double> T(nx, TT);
70
71 double dx = L/(nx-1);
72 x[0] = 0.0;
73 for(int i=1; i<nx; ++i){
74 x[i] = x[i-1] + dx;
75 xCO2[i] = (x[i]<=Lhot) ? xco2_1 : xco2_2;
76 }
77
78 rad *rcslw = new rad_rcslw(nGG, TT, P, fvs, xh2o, xco2_avg, xco);
79
80 //--------------------- get q, Q
81
82 vector<double> q;
83 vector<double> Q;
84
85 parallel_planes(rcslw, L, ntheta, T, P, fvsoot, xH2O, xCO2, xCO, xCH4, q, Q, x, xQ, true);
86
87 //-------------------------------------------------------------------------
88
89 cout << endl << Lcold[iLcold] << " " << q[nx-1]/rad::sigma/pow(TT,4.0);
90
91 } // end loop over Lcold
92
93 cout << endl;
94
95 return 0;
96
97}
98
Definition rad.h:20
static constexpr double sigma
Stephan-Boltzmann constant.
Definition rad.h:27
void parallel_planes(rad *RAD, const double L, const int ntheta, const vector< double > &T, const double P, const vector< double > &fvsoot, const vector< double > &xH2O, const vector< double > &xCO2, const vector< double > &xCO, const vector< double > &xCH4, vector< double > &q, vector< double > &Q, vector< double > &x, vector< double > &xQ, const bool LzeroIbc=false)
int main()
Definition ex_S2.cc:30