RadLib
Loading...
Searching...
No Matches
ex_S1.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 P = 101325.0;
35 double Thot = 2000;
36 double Tcold = 300;
37 double Lhot = 0.5;
38 int nGG = 24;
39 int ntheta = 101;
40 int nxh = 1001; // for Lcold=0; changes below to keep dx roughly constant
41
42 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};
43
44 int nGGa = nGG+1;
45
46 double xco2=0.1, xco=0.0, xh2o=0.2, xch4=0.0, fvs=0.0;
47
48 //---------------------
49
50 cout << "# Lcold (m), q(L)/σThot^4";
51
52 for(int iLcold=0; iLcold<Lcold.size(); ++iLcold){
53
54 double L = Lcold[iLcold] + Lhot;
55
56 double Tavg = (Thot*0.5+Tcold*Lcold[iLcold])/L;
57
58 int nx = int(nxh*L/Lhot);
59
60 vector<double> xCO2(nx, xco2);
61 vector<double> xCO(nx, xco);
62 vector<double> xH2O(nx, xh2o);
63 vector<double> xCH4(nx, 0.0);
64 vector<double> fvsoot(nx, fvs);
65
66 vector<double> x(nx, 0.0);
67 vector<double> xQ;
68 vector<double> T(nx, Thot);
69
70 double dx = L/(nx-1);
71 x[0] = 0.0;
72 for(int i=1; i<nx; ++i){
73 x[i] = x[i-1] + dx;
74 T[i] = (x[i]<=Lhot) ? Thot : Tcold;
75 }
76
77 rad *rcslw = new rad_rcslw(nGG, Tavg, P, fvs, xh2o, xco2, xco);
78
79 //--------------------- get q, Q
80
81 vector<double> q;
82 vector<double> Q;
83
84 parallel_planes(rcslw, L, ntheta, T, P, fvsoot, xH2O, xCO2, xCO, xCH4, q, Q, x, xQ, true);
85
86 //-------------------------------------------------------------------------
87
88 cout << endl << Lcold[iLcold] << " " << q[nx-1] / rad::sigma / pow(Thot, 4.0);
89
90 } // end loop over Lcold
91
92 cout << endl;
93
94 return 0;
95
96}
97
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_S1.cc:30