13#ifndef TOOLS_SUITE_WATERASSESSMENT_H
14#define TOOLS_SUITE_WATERASSESSMENT_H
19 ProcessWaterUseOutput(
double recirculatedWater,
double incomingWater,
double wasteDischargedAndRecycledOther)
20 : recirculatedWater(recirculatedWater), incomingWater(incomingWater),
21 wasteDischargedAndRecycledOther(wasteDischargedAndRecycledOther) {}
24 double recirculatedWater = 0, incomingWater = 0, wasteDischargedAndRecycledOther = 0;
29 double makeupWater,
double blowdownLoss)
30 : grossWaterUse(grossWaterUse), evaporationLoss(evaporationLoss),
31 cycleOfConcentration(cycleOfConcentration), makeupWater(makeupWater), blowdownLoss(blowdownLoss) {}
34 double grossWaterUse = 0, evaporationLoss = 0, cycleOfConcentration = 0, makeupWater = 0, blowdownLoss = 0;
38 BoilerWaterLossOutput(
double cycleOfConcentration,
double grossWaterUse,
double makeupWater,
double steamLoss,
39 double blowdownLoss,
double condensateReturn,
double rateOfRecirculation)
40 : cycleOfConcentration(cycleOfConcentration), grossWaterUse(grossWaterUse), makeupWater(makeupWater),
41 steamLoss(steamLoss), blowdownLoss(blowdownLoss), condensateReturn(condensateReturn),
42 rateOfRecirculation(rateOfRecirculation) {}
45 double cycleOfConcentration = 0, grossWaterUse = 0, makeupWater = 0, steamLoss = 0, blowdownLoss = 0,
46 condensateReturn = 0, rateOfRecirculation = 0;
67 double fractionGrossWaterRecirculated) {
68 const double recirculatedWater = waterRequired * fractionGrossWaterRecirculated;
69 const double incomingWater = waterRequired - recirculatedWater;
70 const double wasteDischargedAndRecycledOther = incomingWater - waterConsumed - waterLoss;
72 return {recirculatedWater, incomingWater, wasteDischargedAndRecycledOther};
93 double evaporationRateDegree,
double temperatureDrop,
94 double makeupConductivity,
double blowdownConductivity) {
95 const double grossWaterUse = 3 * tonnage * loadFactor * 60 * hoursPerYear;
96 const double evaporationLoss = (evaporationRateDegree / 10) * temperatureDrop * grossWaterUse;
97 const double cycleOfConcentration = blowdownConductivity / makeupConductivity;
98 const double makeupWater = evaporationLoss / (1 - (1 / cycleOfConcentration));
99 const double blowdownLoss = makeupWater - evaporationLoss;
101 return {grossWaterUse, evaporationLoss, cycleOfConcentration, makeupWater, blowdownLoss};
124 double steamPerPower,
double feedWaterConductivity,
125 double makeupConductivity,
double blowdownConductivity) {
126 const double cycleOfConcentration = blowdownConductivity / feedWaterConductivity;
127 const double grossWaterUse =
128 hoursPerYear * power * loadFactor * 0.002 * 60 * steamPerPower / (1 - (1 / cycleOfConcentration));
129 const double makeupWater = (feedWaterConductivity / makeupConductivity) * grossWaterUse;
130 const double blowdownLoss = (1 / cycleOfConcentration) * grossWaterUse;
131 const double steamLoss = makeupWater - blowdownLoss;
132 const double condensateReturn = (1 - (feedWaterConductivity / makeupConductivity)) * grossWaterUse;
133 const double rateOfRecirculation = makeupWater / grossWaterUse;
135 return {cycleOfConcentration, grossWaterUse, makeupWater, steamLoss,
136 blowdownLoss, condensateReturn, rateOfRecirculation};
148 double dailyUsePerEmployee) {
149 return employeeCount * workdaysPerYear * dailyUsePerEmployee;
160 return areaIrrigated * yearlyInchesIrrigated;
173 double wasteWaterDischarge) {
174 return wasteWaterDischarge * (outgoingTemp - incomingTemp) * 1 * 8.3454 * heatingEfficiency / 1000000;
188 double systemEfficiency) {
189 return ratedPower * numberUnits * loadFactor * hoursPerYear / systemEfficiency;
double calculateAddedMotorEnergyUse(double numberUnits, double hoursPerYear, double ratedPower, double loadFactor, double systemEfficiency)
ProcessWaterUseOutput calculateProcessWaterUse(double waterRequired, double waterConsumed, double waterLoss, double fractionGrossWaterRecirculated)
CoolingTowerLossOutput calculateCoolingTowerLoss(double hoursPerYear, double tonnage, double loadFactor, double evaporationRateDegree, double temperatureDrop, double makeupConductivity, double blowdownConductivity)
double calculateLandscapingGrossWaterUse(double areaIrrigated, double yearlyInchesIrrigated)
double calculateHeatEnergyInDischarge(double incomingTemp, double outgoingTemp, double heatingEfficiency, double wasteWaterDischarge)
double calculateKitchenRestroomGrossWaterUse(double employeeCount, double workdaysPerYear, double dailyUsePerEmployee)
BoilerWaterLossOutput calculateBoilerWaterLosses(double hoursPerYear, double power, double loadFactor, double steamPerPower, double feedWaterConductivity, double makeupConductivity, double blowdownConductivity)
WaterAssessment()=default