17#include "load_charge_material.h"
46 const double specificHeatLiquid,
const double vaporizingTemperature,
47 const double latentHeat,
const double specificHeatVapor,
const double chargeFeedRate,
48 const double initialTemperature,
const double dischargeTemperature,
49 const double percentVaporized,
const double percentReacted,
const double reactionHeat,
50 const double additionalHeat)
51 : thermicReactionType(thermicReactionType), specificHeatLiquid(specificHeatLiquid),
52 vaporizingTemperature(vaporizingTemperature), latentHeat(latentHeat), specificHeatVapor(specificHeatVapor),
53 chargeFeedRate(chargeFeedRate), initialTemperature(initialTemperature),
54 dischargeTemperature(dischargeTemperature), percentVaporized(percentVaporized / 100.0),
55 percentReacted(percentReacted / 100.0), reactionHeat(reactionHeat), additionalHeat(additionalHeat) {}
70 this->thermicReactionType = thermicReactionType;
96 this->vaporizingTemperature = vaporizingTemperature;
109 void setLatentHeat(
const double latentHeat) { this->latentHeat = latentHeat; }
158 this->dischargeTemperature = dischargeTemperature;
171 void setPercentVaporized(
const double percentVaporized) { this->percentVaporized = percentVaporized / 100.0; }
183 void setPercentReacted(
const double percentReacted) { this->percentReacted = percentReacted / 100.0; }
195 void setReactionHeat(
const double reactionHeat) { this->reactionHeat = reactionHeat; }
219 void setSubstance(std::string
const& substance) { this->substance = substance; }
231 void setID(
int const id) { this->
id = id; }
241 if (dischargeTemperature < vaporizingTemperature) {
243 hliq = chargeFeedRate * specificHeatLiquid * (dischargeTemperature - initialTemperature);
249 (specificHeatLiquid * (vaporizingTemperature - initialTemperature) +
250 percentVaporized * (latentHeat + specificHeatVapor * (dischargeTemperature - vaporizingTemperature)) +
251 (1 - percentVaporized) * specificHeatLiquid * (dischargeTemperature - vaporizingTemperature));
254 double heatReacted = 0.0;
255 if (thermicReactionType == LoadChargeMaterial::ThermicReactionType::ENDOTHERMIC) {
256 heatReacted = chargeFeedRate * percentReacted * reactionHeat;
258 totalHeat = hliq + heatReacted + additionalHeat;
266 return specificHeatLiquid == rhs.specificHeatLiquid && latentHeat == rhs.latentHeat &&
267 specificHeatVapor == rhs.specificHeatVapor && vaporizingTemperature == rhs.vaporizingTemperature &&
268 substance == rhs.substance &&
id == rhs.id;
280 double specificHeatLiquid = 0.0;
281 double vaporizingTemperature = 0.0;
282 double latentHeat = 0.0;
283 double specificHeatVapor = 0.0;
284 double chargeFeedRate = 0.0;
285 double initialTemperature = 0.0;
286 double dischargeTemperature = 0.0;
287 double percentVaporized = 0.0;
288 double percentReacted = 0.0;
289 double reactionHeat = 0.0;
290 double additionalHeat = 0.0;
291 std::string substance =
"Unknown";
294 double totalHeat = 0.0;
306 double specificHeatVapor,
double vaporizingTemperature)
307 : specificHeatLiquid(specificHeatLiquid), vaporizingTemperature(vaporizingTemperature), latentHeat(latentHeat),
308 specificHeatVapor(specificHeatVapor), substance(std::move(substance)) {}
void setLatentHeat(const double latentHeat)
void setDischargeTemperature(const double dischargeTemperature)
double getVaporizingTemperature() const
LoadChargeMaterial::ThermicReactionType getThermicReactionType() const
void setSpecificHeatLiquid(const double specificHeatLiquid)
void setChargeFeedRate(const double chargeFeedRate)
double getReactionHeat() const
void setThermicReactionType(LoadChargeMaterial::ThermicReactionType thermicReactionType)
void setVaporizingTemperature(const double vaporizingTemperature)
void setAdditionalHeat(const double additionalHeat)
double getAdditionalHeat() const
LiquidLoadChargeMaterial(std::string substance, double specificHeatLiquid, double latentHeat, double specificHeatVapor, double vaporizingTemperature)
void setReactionHeat(const double reactionHeat)
void setSubstance(std::string const &substance)
double getPercentVaporized() const
std::string getSubstance() const
void setPercentReacted(const double percentReacted)
double getSpecificHeatLiquid() const
bool operator!=(const LiquidLoadChargeMaterial &rhs) const
void setPercentVaporized(const double percentVaporized)
LiquidLoadChargeMaterial(const LoadChargeMaterial::ThermicReactionType thermicReactionType, const double specificHeatLiquid, const double vaporizingTemperature, const double latentHeat, const double specificHeatVapor, const double chargeFeedRate, const double initialTemperature, const double dischargeTemperature, const double percentVaporized, const double percentReacted, const double reactionHeat, const double additionalHeat)
double getInitialTemperature() const
void setInitialTemperature(const double initialTemperature)
double getSpecificHeatVapor() const
double getLatentHeat() const
double getPercentReacted() const
bool operator==(const LiquidLoadChargeMaterial &rhs) const
double getDischargeTemperature() const
void setSpecificHeatVapor(const double specificHeatVapor)
double getChargeFeedRate() const
ThermicReactionType
Classifications of thermic reaction type.