MEASUR-Tools-Suite v1.0.11
The MEASUR Tools Suite is a collection of industrial efficiency calculations written in C++ and with bindings for compilation to WebAssembly.
Loading...
Searching...
No Matches
gas_constants.h
1#pragma once
2#include <cmath>
3namespace gas_constants {
4
5// Shared combustion/stoichiometry constants
6constexpr double kCToCO2 = 44.0 / 12.0;
7constexpr double kHToH2O = 9.0;
8constexpr double kSToSO2 = 2.0;
9constexpr double kCToO2 = 32.0 / 12.0;
10constexpr double kHToO2 = 8.0;
11constexpr double kSToO2 = 1.0;
12constexpr double kN2O2Ratio = 76.85 / 23.15;
13constexpr double kSO2Cp = 17.472;
14constexpr double kSO2Mw = 64.06;
15constexpr double kO2Mw = 32.0;
16constexpr double kN2Mw = 28.016;
17constexpr double kCO2Mw = 44.01;
18constexpr double kH2OMw = 18.016;
19
24inline double specificHeatCH4(double t) { return 4.23 + 0.01177 * t; }
25
30inline double specificHeatC2H6(double t) { return 4.04 + 0.01636 * t; }
31
36inline double specificHeatN2(double t) { return 9.47 - 3.47 * 1000 / t + 1.07 * 1000000 / (t * t); }
37
42inline double specificHeatH2(double t) { return 5.76 + 0.578 * t / 1000 + 20 / std::pow(t, 0.5); }
43
48inline double specificHeatC3H8(double t) {
49 (void)t;
50 return 17.108;
51}
52
57inline double specificHeatC4H10CnH2n(double t) {
58 (void)t;
59 return 22.202;
60}
61
66inline double specificHeatH2O(double t) { return 19.86 - 597 / std::pow(t, 0.5) + 7500 / t; }
67
72inline double specificHeatCO(double t) { return 9.46 - 3.29 * 1000 / t + 1.07 * 1000000 / (t * t); }
73
78inline double specificHeatCO2(double t) { return 16.2 - 6.53 * 1000 / t + 1.41 * 1000000 / (t * t); }
79
84inline double specificHeatSO2(double t) {
85 (void)t;
86 return 17.472;
87}
88
93inline double specificHeatO2(double t) { return 11.515 - 172 / std::pow(t, 0.5) + 1530 / t; }
94
101inline double specificHeatFeedwater(double temp_k) {
102 return +0.000000000000326658 * std::pow(temp_k, 6) - 0.000000000838033377 * std::pow(temp_k, 5) +
103 0.000000883910920876 * std::pow(temp_k, 4) - 0.000490348083986228 * std::pow(temp_k, 3) +
104 0.150847712358072 * std::pow(temp_k, 2) - 24.3962399473808 * temp_k + 1624.65179353148;
105}
106
107// Methane (CH4)
108constexpr double kCh4MolecularWeight = 16.042;
109constexpr double kCh4SpecificWeight = 0.042417;
110constexpr double kCh4O2Generated = 64;
111constexpr double kCh4HeatingValue = 23875;
112constexpr double kCh4HeatingValueVolume = 1012;
113constexpr double kCh4H2oGenerated = 36.032;
114constexpr double kCh4Co2Generated = 44.01;
115
116// Ethane (C2H6)
117constexpr double kC2h6MolecularWeight = 30.068;
118constexpr double kC2h6SpecificWeight = 0.079503;
119constexpr double kC2h6O2Generated = 112;
120constexpr double kC2h6HeatingValue = 22323;
121constexpr double kC2h6HeatingValueVolume = 1773;
122constexpr double kC2h6H2oGenerated = 54.048;
123constexpr double kC2h6Co2Generated = 88.02;
124
125// Nitrogen (N2)
126constexpr double kN2MolecularWeight = 28.016;
127constexpr double kN2SpecificWeight = 0.074077;
128
129// Hydrogen (H2)
130constexpr double kH2MolecularWeight = 2.016;
131constexpr double kH2SpecificWeight = 0.005331;
132constexpr double kH2O2Generated = 16;
133constexpr double kH2HeatingValue = 61095;
134constexpr double kH2HeatingValueVolume = 325;
135constexpr double kH2H2oGenerated = 18.016;
136
137// Propane (C3H8)
138constexpr double kC3h8MolecularWeight = 44.094;
139constexpr double kC3h8SpecificWeight = 0.116589;
140constexpr double kC3h8O2Generated = 160;
141constexpr double kC3h8HeatingValue = 21669;
142constexpr double kC3h8HeatingValueVolume = 2523;
143constexpr double kC3h8H2oGenerated = 72.064;
144constexpr double kC3h8Co2Generated = 132.03;
145
146// Butane/Paraffins (C4H10/CnH2n)
147constexpr double kC4h10Cnh2nMolecularWeight = 58.12;
148constexpr double kC4h10Cnh2nSpecificWeight = 0.153675;
149constexpr double kC4h10Cnh2nO2Generated = 208;
150constexpr double kC4h10Cnh2nHeatingValue = 21321;
151constexpr double kC4h10Cnh2nHeatingValueVolume = 3270;
152constexpr double kC4h10Cnh2nH2oGenerated = 90.08;
153constexpr double kC4h10Cnh2nCo2Generated = 176.04;
154
155// Water vapor (H2O)
156constexpr double kH2oMolecularWeight = 18.016;
157constexpr double kH2oSpecificWeight = 0.047636;
158constexpr double kH2oH2oGenerated = 18.016;
159
160// Carbon monoxide (CO)
161constexpr double kCoMolecularWeight = 28.01;
162constexpr double kCoSpecificWeight = 0.074061;
163constexpr double kCoO2Generated = 16;
164constexpr double kCoHeatingValue = 4347;
165constexpr double kCoHeatingValueVolume = 321;
166constexpr double kCoCo2Generated = 44.01;
167
168// Carbon dioxide (CO2)
169constexpr double kCo2MolecularWeight = 44.01;
170constexpr double kCo2SpecificWeight = 0.116367;
171constexpr double kCo2Co2Generated = 44.01;
172
173// Sulphur dioxide (SO2)
174constexpr double kSo2MolecularWeight = 64.06;
175constexpr double kSo2SpecificWeight = 0.169381;
176
177// Oxygen (O2)
178constexpr double kO2MolecularWeight = 32.00;
179constexpr double kO2SpecificWeight = 0.084611;
180constexpr double kO2O2Generated = -32;
181
182constexpr double kMolarVolumeStpL = 22.414; // L/mol
183constexpr double kAirDensityStpKgM3 = 1.205; // kg/m3
184}; // namespace gas_constants