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
SteamReduction.h
1
11#ifndef TOOLS_SUITE_STEAMREDUCTION_H
12#define TOOLS_SUITE_STEAMREDUCTION_H
13
14#include <exception>
15#include <stdexcept>
16#include <utility>
17#include <vector>
18
20#include "steamModeler/SteamProperties.h"
21#include "steamModeler/SteamSystemModelerTool.h"
22
24 public:
29 explicit SteamFlowMeterMethodData(const double flowRate) : flowRate(flowRate) {}
30
31 double getFlowRate() const { return flowRate; }
32
33 private:
34 double flowRate;
35};
36
38 public:
43 explicit SteamMassFlowNameplateData(const double flowRate) : flowRate(flowRate) {}
44
45 double getFlowRate() const { return flowRate; }
46
47 private:
48 double flowRate;
49};
50
52 public:
58 SteamMassFlowMeasuredData(const double areaOfDuct, const double airVelocity)
59 : areaOfDuct(areaOfDuct), airVelocity(airVelocity) {}
60
61 double getAreaOfDuct() const { return areaOfDuct; }
62 double getAirVelocity() const { return airVelocity; }
63
64 private:
65 double areaOfDuct, airVelocity;
66};
67
69 public:
78 SteamMassFlowMethodData(const bool isNameplate, const SteamMassFlowMeasuredData massFlowMeasuredData,
79 const SteamMassFlowNameplateData massFlowNameplateData, const double inletTemperature,
80 const double outletTemperature)
81 : isNameplate(isNameplate), massFlowMeasuredData(massFlowMeasuredData),
82 massFlowNameplateData(massFlowNameplateData), inletTemperature(inletTemperature),
83 outletTemperature(outletTemperature) {}
84
85 bool getIsNameplate() const { return isNameplate; }
86 SteamMassFlowMeasuredData getMassFlowMeasuredData() { return massFlowMeasuredData; }
87 SteamMassFlowNameplateData getMassFlowNameplateData() { return massFlowNameplateData; }
88 double getInletTemperature() const { return inletTemperature; }
89 double getOutletTemperature() const { return outletTemperature; }
90
91 private:
92 bool isNameplate;
93 SteamMassFlowMeasuredData massFlowMeasuredData;
94 SteamMassFlowNameplateData massFlowNameplateData;
95 double inletTemperature, outletTemperature;
96};
97
99 public:
104 explicit SteamOffsheetMethodData(const double consumption) : consumption(consumption) {}
105
106 double getConsumption() const { return consumption; }
107
108 private:
109 double consumption;
110};
111
113 public:
133 SteamReductionInput(const int hoursPerYear, const int utilityType, const double utilityCost,
134 const int measurementMethod, const double systemEfficiency, const double pressure,
135 const SteamFlowMeterMethodData flowMeterMethodData,
136 const SteamMassFlowMethodData airMassFlowMethodData,
137 const SteamMassFlowMethodData waterMassFlowMethodData,
138 const SteamOffsheetMethodData offsheetMethodData, const int units,
139 const double boilerEfficiency, const SteamProperties::ThermodynamicQuantity steamVariableOption,
140 const double steamVariable, const double feedWaterTemperature)
141 : hoursPerYear(hoursPerYear), utilityType(utilityType), utilityCost(utilityCost),
142 measurementMethod(measurementMethod), systemEfficiency(systemEfficiency), pressure(pressure),
143 flowMeterMethodData(flowMeterMethodData), airMassFlowMethodData(airMassFlowMethodData),
144 waterMassFlowMethodData(waterMassFlowMethodData), offsheetMethodData(offsheetMethodData), units(units),
145 boilerEfficiency(boilerEfficiency), steamVariableOption(steamVariableOption), steamVariable(steamVariable),
146 feedWaterTemperature(feedWaterTemperature) {}
147
148 int getHoursPerYear() const { return hoursPerYear; }
149 int getUtilityType() const { return utilityType; }
150 int getMeasurementMethod() const { return measurementMethod; }
151 int getUnits() const { return units; }
152 double getUtilityCost() const { return utilityCost; }
153 double getSystemEfficiency() const { return systemEfficiency; }
154 double getPressure() const { return pressure; }
155 SteamFlowMeterMethodData getFlowMeterMethodData() const { return flowMeterMethodData; }
156 SteamMassFlowMethodData getAirMassFlowMethodData() const { return airMassFlowMethodData; }
157 SteamMassFlowMethodData getWaterMassFlowMethodData() const { return waterMassFlowMethodData; }
158 SteamOffsheetMethodData getOffsheetMethodData() const { return offsheetMethodData; }
159 double getBoilerEfficiency() const { return boilerEfficiency; }
160 double getFeedWaterTemperature() const { return feedWaterTemperature; }
161 double getSteamVariable() const { return steamVariable; }
162 SteamProperties::ThermodynamicQuantity getSteamVariableOption() const { return steamVariableOption; }
163
164 private:
165 int hoursPerYear, utilityType;
166 double utilityCost;
167 int measurementMethod;
168 double systemEfficiency, pressure;
169 SteamFlowMeterMethodData flowMeterMethodData;
170 SteamMassFlowMethodData airMassFlowMethodData;
171 SteamMassFlowMethodData waterMassFlowMethodData;
172 SteamOffsheetMethodData offsheetMethodData;
173 int units;
174 double boilerEfficiency;
175 SteamProperties::ThermodynamicQuantity steamVariableOption;
176 double steamVariable;
177 double feedWaterTemperature;
178};
179
181 public:
182 struct Output {
183 Output(double steamUse, double energyUse, double energyCost)
184 : steamUse(steamUse), energyUse(energyUse), energyCost(energyCost) {}
185
186 Output() = default;
187
188 double steamUse = 0, energyUse = 0, energyCost = 0;
189 };
190
195 explicit SteamReduction(std::vector<SteamReductionInput> steamReductionInputVec)
196 : steamReductionInputVec(std::move(steamReductionInputVec)) {}
197
208
209 private:
210 std::vector<SteamReductionInput> steamReductionInputVec;
212};
213
214#endif // TOOLS_SUITE_STEAMREDUCTION_H
Calculator for saturated properties for steam systems.
SteamFlowMeterMethodData(const double flowRate)
SteamMassFlowMeasuredData(const double areaOfDuct, const double airVelocity)
SteamMassFlowMethodData(const bool isNameplate, const SteamMassFlowMeasuredData massFlowMeasuredData, const SteamMassFlowNameplateData massFlowNameplateData, const double inletTemperature, const double outletTemperature)
SteamMassFlowNameplateData(const double flowRate)
SteamOffsheetMethodData(const double consumption)
ThermodynamicQuantity
enum class for ThermodynamicQuantity
SteamReductionInput(const int hoursPerYear, const int utilityType, const double utilityCost, const int measurementMethod, const double systemEfficiency, const double pressure, const SteamFlowMeterMethodData flowMeterMethodData, const SteamMassFlowMethodData airMassFlowMethodData, const SteamMassFlowMethodData waterMassFlowMethodData, const SteamOffsheetMethodData offsheetMethodData, const int units, const double boilerEfficiency, const SteamProperties::ThermodynamicQuantity steamVariableOption, const double steamVariable, const double feedWaterTemperature)
SteamReduction::Output calculate()
SteamReduction(std::vector< SteamReductionInput > steamReductionInputVec)