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
13#ifndef TOOLS_SUITE_GASLOADCHARGEMATERIAL_H
14#define TOOLS_SUITE_GASLOADCHARGEMATERIAL_H
15
16#include <string>
17
18#include "load_charge_material.h"
19
27 public:
42 const double specificHeatGas, const double feedRate, const double percentVapor,
43 const double initialTemperature, const double dischargeTemperature,
44 const double specificHeatVapor, const double percentReacted, const double reactionHeat,
45 const double additionalHeat)
46 : thermicReactionType(thermicReactionType), specificHeatGas(specificHeatGas), feedRate(feedRate),
47 percentVapor(percentVapor / 100.0), initialTemperature(initialTemperature),
48 dischargeTemperature(dischargeTemperature), specificHeatVapor(specificHeatVapor),
49 percentReacted(percentReacted / 100.0), reactionHeat(reactionHeat), additionalHeat(additionalHeat) {}
50
51 GasLoadChargeMaterial() = default;
52
58
64 this->thermicReactionType = thermicReactionType;
65 }
66
71 double getSpecificHeatGas() const { return specificHeatGas; }
72
77 void setSpecificHeatGas(double specificHeatGas) { this->specificHeatGas = specificHeatGas; }
78
83 double getFeedRate() const { return feedRate; }
84
89 void setFeedRate(double feedRate) { this->feedRate = feedRate; }
90
95 double getInitialTemperature() const { return initialTemperature; }
96
101 void setInitialTemperature(double initialTemperature) { this->initialTemperature = initialTemperature; }
102
107 double getDischargeTemperature() const { return dischargeTemperature; }
108
113 void setDischargeTemperature(double dischargeTemperature) { this->dischargeTemperature = dischargeTemperature; }
114
119 double getSpecificHeatVapor() const { return specificHeatVapor; }
120
125 void setSpecificHeatVapor(double specificHeatVapor) { this->specificHeatVapor = specificHeatVapor; }
126
131 double getPercentReacted() const { return percentReacted * 100.0; }
132
137 void setPercentReacted(double percentReacted) { percentReacted = percentReacted / 100.0; }
138
143 double getReactionHeat() const { return reactionHeat; }
144
149 void setReactionHeat(double reactionHeat) { this->reactionHeat = reactionHeat; }
150
155 double getAdditionalHeat() const { return additionalHeat; }
156
161 void setAdditionalHeat(double additionalHeat) { this->additionalHeat = additionalHeat; }
162
167 double getPercentVapor() const { return percentVapor * 100.0; }
168
173 void setPercentVapor(double percentVapor) { percentVapor = percentVapor / 100.0; }
174
179 std::string getSubstance() const { return substance; }
180
185 void setSubstance(std::string substance) { this->substance = std::move(substance); }
186
191 int getID() const { return this->id; }
192
197 void setID(const int id) { this->id = id; }
198
203 double getTotalHeat() {
204 const double tempDiff = dischargeTemperature - initialTemperature;
205 const double hgas = (1.0 - percentVapor) * feedRate * specificHeatGas * tempDiff;
206 const double hvapor = percentVapor * feedRate * specificHeatVapor * tempDiff;
207
208 // heatReact ignored when exothermic
209 double heatReact = 0.0;
210 if (thermicReactionType == LoadChargeMaterial::ThermicReactionType::ENDOTHERMIC) {
211 heatReact = feedRate * percentReacted * reactionHeat;
212 }
213
214 totalHeat = hgas + hvapor + heatReact + additionalHeat;
215 return totalHeat;
216 }
217
219 bool operator==(const GasLoadChargeMaterial& rhs) const {
220 return specificHeatVapor == rhs.specificHeatVapor && substance == rhs.substance && id == rhs.id;
221 }
222
224 bool operator!=(const GasLoadChargeMaterial& rhs) const { return !(*this == rhs); }
225
226 private:
227 LoadChargeMaterial::ThermicReactionType thermicReactionType = LoadChargeMaterial::ThermicReactionType::NONE;
228 double specificHeatGas = 0.0;
229 double feedRate = 0.0;
230 double percentVapor = 0.0;
231 double initialTemperature = 0.0;
232 double dischargeTemperature = 0.0;
233 double specificHeatVapor = 0.0;
234 double percentReacted = 0.0;
235 double reactionHeat = 0.0;
236 double additionalHeat = 0.0;
237 std::string substance = "Unknown";
238 int id = 0;
239 // Out value
240 double totalHeat = 0.0;
241
242 friend class DefaultData;
243
249 GasLoadChargeMaterial(std::string substance, double specificHeatVapor)
250 : specificHeatVapor(specificHeatVapor), substance(std::move(substance)) {}
251};
252
253#endif // TOOLS_SUITE_GASLOADCHARGEMATERIAL_H
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.