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_load_charge_material.h
Go to the documentation of this file.
1#pragma once
2
15#include <string>
16
17#include "load_charge_material.h"
18
26 public:
41 const double specificHeatGas, const double feedRate, const double percentVapor,
42 const double initialTemperature, const double dischargeTemperature,
43 const double specificHeatVapor, const double percentReacted, const double reactionHeat,
44 const double additionalHeat)
45 : thermicReactionType(thermicReactionType), specificHeatGas(specificHeatGas), feedRate(feedRate),
46 percentVapor(percentVapor / 100.0), initialTemperature(initialTemperature),
47 dischargeTemperature(dischargeTemperature), specificHeatVapor(specificHeatVapor),
48 percentReacted(percentReacted / 100.0), reactionHeat(reactionHeat), additionalHeat(additionalHeat) {}
49
50 GasLoadChargeMaterial() = default;
51
57
63 this->thermicReactionType = thermicReactionType;
64 }
65
70 double getSpecificHeatGas() const { return specificHeatGas; }
71
76 void setSpecificHeatGas(double specificHeatGas) { this->specificHeatGas = specificHeatGas; }
77
82 double getFeedRate() const { return feedRate; }
83
88 void setFeedRate(double feedRate) { this->feedRate = feedRate; }
89
94 double getInitialTemperature() const { return initialTemperature; }
95
100 void setInitialTemperature(double initialTemperature) { this->initialTemperature = initialTemperature; }
101
106 double getDischargeTemperature() const { return dischargeTemperature; }
107
112 void setDischargeTemperature(double dischargeTemperature) { this->dischargeTemperature = dischargeTemperature; }
113
118 double getSpecificHeatVapor() const { return specificHeatVapor; }
119
124 void setSpecificHeatVapor(double specificHeatVapor) { this->specificHeatVapor = specificHeatVapor; }
125
130 double getPercentReacted() const { return percentReacted * 100.0; }
131
136 void setPercentReacted(double percentReacted) { percentReacted = percentReacted / 100.0; }
137
142 double getReactionHeat() const { return reactionHeat; }
143
148 void setReactionHeat(double reactionHeat) { this->reactionHeat = reactionHeat; }
149
154 double getAdditionalHeat() const { return additionalHeat; }
155
160 void setAdditionalHeat(double additionalHeat) { this->additionalHeat = additionalHeat; }
161
166 double getPercentVapor() const { return percentVapor * 100.0; }
167
172 void setPercentVapor(double percentVapor) { percentVapor = percentVapor / 100.0; }
173
178 std::string getSubstance() const { return substance; }
179
184 void setSubstance(std::string substance) { this->substance = std::move(substance); }
185
190 int getID() const { return this->id; }
191
196 void setID(const int id) { this->id = id; }
197
202 double getTotalHeat() {
203 const double tempDiff = dischargeTemperature - initialTemperature;
204 const double hgas = (1.0 - percentVapor) * feedRate * specificHeatGas * tempDiff;
205 const double hvapor = percentVapor * feedRate * specificHeatVapor * tempDiff;
206
207 // heatReact ignored when exothermic
208 double heatReact = 0.0;
209 if (thermicReactionType == LoadChargeMaterial::ThermicReactionType::ENDOTHERMIC) {
210 heatReact = feedRate * percentReacted * reactionHeat;
211 }
212
213 totalHeat = hgas + hvapor + heatReact + additionalHeat;
214 return totalHeat;
215 }
216
218 bool operator==(const GasLoadChargeMaterial& rhs) const {
219 return specificHeatVapor == rhs.specificHeatVapor && substance == rhs.substance && id == rhs.id;
220 }
221
223 bool operator!=(const GasLoadChargeMaterial& rhs) const { return !(*this == rhs); }
224
225 private:
226 LoadChargeMaterial::ThermicReactionType thermicReactionType = LoadChargeMaterial::ThermicReactionType::NONE;
227 double specificHeatGas = 0.0;
228 double feedRate = 0.0;
229 double percentVapor = 0.0;
230 double initialTemperature = 0.0;
231 double dischargeTemperature = 0.0;
232 double specificHeatVapor = 0.0;
233 double percentReacted = 0.0;
234 double reactionHeat = 0.0;
235 double additionalHeat = 0.0;
236 std::string substance = "Unknown";
237 int id = 0;
238 // Out value
239 double totalHeat = 0.0;
240
241 friend class DefaultData;
242
248 GasLoadChargeMaterial(std::string substance, double specificHeatVapor)
249 : specificHeatVapor(specificHeatVapor), substance(std::move(substance)) {}
250};
251
void setSpecificHeatGas(double specificHeatGas)
void setAdditionalHeat(double additionalHeat)
void setSubstance(std::string substance)
GasLoadChargeMaterial(std::string substance, double specificHeatVapor)
GasLoadChargeMaterial(const LoadChargeMaterial::ThermicReactionType thermicReactionType, const double specificHeatGas, const double feedRate, const double percentVapor, const double initialTemperature, const double dischargeTemperature, const double specificHeatVapor, const double percentReacted, const double reactionHeat, const double additionalHeat)
void setDischargeTemperature(double dischargeTemperature)
void setPercentReacted(double percentReacted)
void setReactionHeat(double reactionHeat)
void setSpecificHeatVapor(double specificHeatVapor)
void setFeedRate(double feedRate)
bool operator==(const GasLoadChargeMaterial &rhs) const
bool operator
void setThermicReactionType(LoadChargeMaterial::ThermicReactionType thermicReactionType)
bool operator!=(const GasLoadChargeMaterial &rhs) const
bool operator
LoadChargeMaterial::ThermicReactionType getThermicReactionType() const
void setPercentVapor(double percentVapor)
void setInitialTemperature(double initialTemperature)
ThermicReactionType
Classifications of thermic reaction type.