13#ifndef TOOLS_SUITE_GASLOADCHARGEMATERIAL_H
14#define TOOLS_SUITE_GASLOADCHARGEMATERIAL_H
18#include "load_charge_material.h"
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) {}
64 this->thermicReactionType = thermicReactionType;
89 void setFeedRate(
double feedRate) { this->feedRate = feedRate; }
185 void setSubstance(std::string substance) { this->substance = std::move(substance); }
191 int getID()
const {
return this->id; }
197 void setID(
const int id) { this->
id = id; }
204 const double tempDiff = dischargeTemperature - initialTemperature;
205 const double hgas = (1.0 - percentVapor) * feedRate * specificHeatGas * tempDiff;
206 const double hvapor = percentVapor * feedRate * specificHeatVapor * tempDiff;
209 double heatReact = 0.0;
210 if (thermicReactionType == LoadChargeMaterial::ThermicReactionType::ENDOTHERMIC) {
211 heatReact = feedRate * percentReacted * reactionHeat;
214 totalHeat = hgas + hvapor + heatReact + additionalHeat;
220 return specificHeatVapor == rhs.specificHeatVapor && substance == rhs.substance &&
id == rhs.id;
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";
240 double totalHeat = 0.0;
250 : specificHeatVapor(specificHeatVapor), substance(std::move(substance)) {}
void setSpecificHeatGas(double specificHeatGas)
void setAdditionalHeat(double additionalHeat)
double getPercentVapor() const
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)
double getAdditionalHeat() const
std::string getSubstance() const
double getReactionHeat() const
double getSpecificHeatGas() const
double getDischargeTemperature() const
void setDischargeTemperature(double dischargeTemperature)
void setPercentReacted(double percentReacted)
void setReactionHeat(double reactionHeat)
void setSpecificHeatVapor(double specificHeatVapor)
void setFeedRate(double feedRate)
double getSpecificHeatVapor() const
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)
double getFeedRate() const
void setInitialTemperature(double initialTemperature)
double getPercentReacted() const
double getInitialTemperature() const
ThermicReactionType
Classifications of thermic reaction type.