13#ifndef TOOLS_SUITE_LIQUIDLOADCHARGEMATERIAL_H
14#define TOOLS_SUITE_LIQUIDLOADCHARGEMATERIAL_H
18#include "load_charge_material.h"
47 const double specificHeatLiquid,
const double vaporizingTemperature,
48 const double latentHeat,
const double specificHeatVapor,
const double chargeFeedRate,
49 const double initialTemperature,
const double dischargeTemperature,
50 const double percentVaporized,
const double percentReacted,
const double reactionHeat,
51 const double additionalHeat)
52 : thermicReactionType(thermicReactionType), specificHeatLiquid(specificHeatLiquid),
53 vaporizingTemperature(vaporizingTemperature), latentHeat(latentHeat), specificHeatVapor(specificHeatVapor),
54 chargeFeedRate(chargeFeedRate), initialTemperature(initialTemperature),
55 dischargeTemperature(dischargeTemperature), percentVaporized(percentVaporized / 100.0),
56 percentReacted(percentReacted / 100.0), reactionHeat(reactionHeat), additionalHeat(additionalHeat) {}
71 this->thermicReactionType = thermicReactionType;
97 this->vaporizingTemperature = vaporizingTemperature;
110 void setLatentHeat(
const double latentHeat) { this->latentHeat = latentHeat; }
159 this->dischargeTemperature = dischargeTemperature;
172 void setPercentVaporized(
const double percentVaporized) { this->percentVaporized = percentVaporized / 100.0; }
184 void setPercentReacted(
const double percentReacted) { this->percentReacted = percentReacted / 100.0; }
196 void setReactionHeat(
const double reactionHeat) { this->reactionHeat = reactionHeat; }
220 void setSubstance(std::string
const& substance) { this->substance = substance; }
232 void setID(
int const id) { this->
id = id; }
242 if (dischargeTemperature < vaporizingTemperature) {
244 hliq = chargeFeedRate * specificHeatLiquid * (dischargeTemperature - initialTemperature);
250 (specificHeatLiquid * (vaporizingTemperature - initialTemperature) +
251 percentVaporized * (latentHeat + specificHeatVapor * (dischargeTemperature - vaporizingTemperature)) +
252 (1 - percentVaporized) * specificHeatLiquid * (dischargeTemperature - vaporizingTemperature));
255 double heatReacted = 0.0;
256 if (thermicReactionType == LoadChargeMaterial::ThermicReactionType::ENDOTHERMIC) {
257 heatReacted = chargeFeedRate * percentReacted * reactionHeat;
259 totalHeat = hliq + heatReacted + additionalHeat;
267 return specificHeatLiquid == rhs.specificHeatLiquid && latentHeat == rhs.latentHeat &&
268 specificHeatVapor == rhs.specificHeatVapor && vaporizingTemperature == rhs.vaporizingTemperature &&
269 substance == rhs.substance &&
id == rhs.id;
281 double specificHeatLiquid = 0.0;
282 double vaporizingTemperature = 0.0;
283 double latentHeat = 0.0;
284 double specificHeatVapor = 0.0;
285 double chargeFeedRate = 0.0;
286 double initialTemperature = 0.0;
287 double dischargeTemperature = 0.0;
288 double percentVaporized = 0.0;
289 double percentReacted = 0.0;
290 double reactionHeat = 0.0;
291 double additionalHeat = 0.0;
292 std::string substance =
"Unknown";
295 double totalHeat = 0.0;
307 double specificHeatVapor,
double vaporizingTemperature)
308 : specificHeatLiquid(specificHeatLiquid), vaporizingTemperature(vaporizingTemperature), latentHeat(latentHeat),
309 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.