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
WaterAssessment.h
1#pragma once
2
16 public:
18 ProcessWaterUseOutput(double recirculatedWater, double incomingWater, double wasteDischargedAndRecycledOther)
19 : recirculatedWater(recirculatedWater), incomingWater(incomingWater),
20 wasteDischargedAndRecycledOther(wasteDischargedAndRecycledOther) {}
21
22 ProcessWaterUseOutput() = default;
23 double recirculatedWater = 0, incomingWater = 0, wasteDischargedAndRecycledOther = 0;
24 };
25
27 CoolingTowerLossOutput(double grossWaterUse, double evaporationLoss, double cycleOfConcentration,
28 double makeupWater, double blowdownLoss)
29 : grossWaterUse(grossWaterUse), evaporationLoss(evaporationLoss),
30 cycleOfConcentration(cycleOfConcentration), makeupWater(makeupWater), blowdownLoss(blowdownLoss) {}
31
32 CoolingTowerLossOutput() = default;
33 double grossWaterUse = 0, evaporationLoss = 0, cycleOfConcentration = 0, makeupWater = 0, blowdownLoss = 0;
34 };
35
37 BoilerWaterLossOutput(double cycleOfConcentration, double grossWaterUse, double makeupWater, double steamLoss,
38 double blowdownLoss, double condensateReturn, double rateOfRecirculation)
39 : cycleOfConcentration(cycleOfConcentration), grossWaterUse(grossWaterUse), makeupWater(makeupWater),
40 steamLoss(steamLoss), blowdownLoss(blowdownLoss), condensateReturn(condensateReturn),
41 rateOfRecirculation(rateOfRecirculation) {}
42
43 BoilerWaterLossOutput() = default;
44 double cycleOfConcentration = 0, grossWaterUse = 0, makeupWater = 0, steamLoss = 0, blowdownLoss = 0,
45 condensateReturn = 0, rateOfRecirculation = 0;
46 };
47
51 WaterAssessment() = default;
52
65 ProcessWaterUseOutput calculateProcessWaterUse(double waterRequired, double waterConsumed, double waterLoss,
66 double fractionGrossWaterRecirculated) {
67 const double recirculatedWater = waterRequired * fractionGrossWaterRecirculated;
68 const double incomingWater = waterRequired - recirculatedWater;
69 const double wasteDischargedAndRecycledOther = incomingWater - waterConsumed - waterLoss;
70
71 return {recirculatedWater, incomingWater, wasteDischargedAndRecycledOther};
72 }
73
91 CoolingTowerLossOutput calculateCoolingTowerLoss(double hoursPerYear, double tonnage, double loadFactor,
92 double evaporationRateDegree, double temperatureDrop,
93 double makeupConductivity, double blowdownConductivity) {
94 const double grossWaterUse = 3 * tonnage * loadFactor * 60 * hoursPerYear;
95 const double evaporationLoss = (evaporationRateDegree / 10) * temperatureDrop * grossWaterUse;
96 const double cycleOfConcentration = blowdownConductivity / makeupConductivity;
97 const double makeupWater = evaporationLoss / (1 - (1 / cycleOfConcentration));
98 const double blowdownLoss = makeupWater - evaporationLoss;
99
100 return {grossWaterUse, evaporationLoss, cycleOfConcentration, makeupWater, blowdownLoss};
101 }
102
122 BoilerWaterLossOutput calculateBoilerWaterLosses(double hoursPerYear, double power, double loadFactor,
123 double steamPerPower, double feedWaterConductivity,
124 double makeupConductivity, double blowdownConductivity) {
125 const double cycleOfConcentration = blowdownConductivity / feedWaterConductivity;
126 const double grossWaterUse =
127 hoursPerYear * power * loadFactor * 0.002 * 60 * steamPerPower / (1 - (1 / cycleOfConcentration));
128 const double makeupWater = (feedWaterConductivity / makeupConductivity) * grossWaterUse;
129 const double blowdownLoss = (1 / cycleOfConcentration) * grossWaterUse;
130 const double steamLoss = makeupWater - blowdownLoss;
131 const double condensateReturn = (1 - (feedWaterConductivity / makeupConductivity)) * grossWaterUse;
132 const double rateOfRecirculation = makeupWater / grossWaterUse;
133
134 return {cycleOfConcentration, grossWaterUse, makeupWater, steamLoss,
135 blowdownLoss, condensateReturn, rateOfRecirculation};
136 }
137
146 double calculateKitchenRestroomGrossWaterUse(double employeeCount, double workdaysPerYear,
147 double dailyUsePerEmployee) {
148 return employeeCount * workdaysPerYear * dailyUsePerEmployee;
149 }
150
158 double calculateLandscapingGrossWaterUse(double areaIrrigated, double yearlyInchesIrrigated) {
159 return areaIrrigated * yearlyInchesIrrigated;
160 }
161
171 double calculateHeatEnergyInDischarge(double incomingTemp, double outgoingTemp, double heatingEfficiency,
172 double wasteWaterDischarge) {
173 return wasteWaterDischarge * (outgoingTemp - incomingTemp) * 1 * 8.3454 * heatingEfficiency / 1000000;
174 }
175
186 double calculateAddedMotorEnergyUse(double numberUnits, double hoursPerYear, double ratedPower, double loadFactor,
187 double systemEfficiency) {
188 return ratedPower * numberUnits * loadFactor * hoursPerYear / systemEfficiency;
189 }
190};
191
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