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#pragma once
2
13#include <exception>
14#include <stdexcept>
15#include <utility>
16#include <vector>
17
19#include "steamModeler/SteamProperties.h"
20#include "steamModeler/SteamSystemModelerTool.h"
21
23 public:
28 explicit SteamFlowMeterMethodData(const double flowRate) : flowRate(flowRate) {}
29
30 double getFlowRate() const { return flowRate; }
31
32 private:
33 double flowRate;
34};
35
37 public:
42 explicit SteamMassFlowNameplateData(const double flowRate) : flowRate(flowRate) {}
43
44 double getFlowRate() const { return flowRate; }
45
46 private:
47 double flowRate;
48};
49
51 public:
57 SteamMassFlowMeasuredData(const double areaOfDuct, const double airVelocity)
58 : areaOfDuct(areaOfDuct), airVelocity(airVelocity) {}
59
60 double getAreaOfDuct() const { return areaOfDuct; }
61 double getAirVelocity() const { return airVelocity; }
62
63 private:
64 double areaOfDuct, airVelocity;
65};
66
68 public:
77 SteamMassFlowMethodData(const bool isNameplate, const SteamMassFlowMeasuredData massFlowMeasuredData,
78 const SteamMassFlowNameplateData massFlowNameplateData, const double inletTemperature,
79 const double outletTemperature)
80 : isNameplate(isNameplate), massFlowMeasuredData(massFlowMeasuredData),
81 massFlowNameplateData(massFlowNameplateData), inletTemperature(inletTemperature),
82 outletTemperature(outletTemperature) {}
83
84 bool getIsNameplate() const { return isNameplate; }
85 SteamMassFlowMeasuredData getMassFlowMeasuredData() { return massFlowMeasuredData; }
86 SteamMassFlowNameplateData getMassFlowNameplateData() { return massFlowNameplateData; }
87 double getInletTemperature() const { return inletTemperature; }
88 double getOutletTemperature() const { return outletTemperature; }
89
90 private:
91 bool isNameplate;
92 SteamMassFlowMeasuredData massFlowMeasuredData;
93 SteamMassFlowNameplateData massFlowNameplateData;
94 double inletTemperature, outletTemperature;
95};
96
98 public:
103 explicit SteamOffsheetMethodData(const double consumption) : consumption(consumption) {}
104
105 double getConsumption() const { return consumption; }
106
107 private:
108 double consumption;
109};
110
112 public:
132 SteamReductionInput(const int hoursPerYear, const int utilityType, const double utilityCost,
133 const int measurementMethod, const double systemEfficiency, const double pressure,
134 const SteamFlowMeterMethodData flowMeterMethodData,
135 const SteamMassFlowMethodData airMassFlowMethodData,
136 const SteamMassFlowMethodData waterMassFlowMethodData,
137 const SteamOffsheetMethodData offsheetMethodData, const int units,
138 const double boilerEfficiency, const SteamProperties::ThermodynamicQuantity steamVariableOption,
139 const double steamVariable, const double feedWaterTemperature)
140 : hoursPerYear(hoursPerYear), utilityType(utilityType), utilityCost(utilityCost),
141 measurementMethod(measurementMethod), systemEfficiency(systemEfficiency), pressure(pressure),
142 flowMeterMethodData(flowMeterMethodData), airMassFlowMethodData(airMassFlowMethodData),
143 waterMassFlowMethodData(waterMassFlowMethodData), offsheetMethodData(offsheetMethodData), units(units),
144 boilerEfficiency(boilerEfficiency), steamVariableOption(steamVariableOption), steamVariable(steamVariable),
145 feedWaterTemperature(feedWaterTemperature) {}
146
147 int getHoursPerYear() const { return hoursPerYear; }
148 int getUtilityType() const { return utilityType; }
149 int getMeasurementMethod() const { return measurementMethod; }
150 int getUnits() const { return units; }
151 double getUtilityCost() const { return utilityCost; }
152 double getSystemEfficiency() const { return systemEfficiency; }
153 double getPressure() const { return pressure; }
154 SteamFlowMeterMethodData getFlowMeterMethodData() const { return flowMeterMethodData; }
155 SteamMassFlowMethodData getAirMassFlowMethodData() const { return airMassFlowMethodData; }
156 SteamMassFlowMethodData getWaterMassFlowMethodData() const { return waterMassFlowMethodData; }
157 SteamOffsheetMethodData getOffsheetMethodData() const { return offsheetMethodData; }
158 double getBoilerEfficiency() const { return boilerEfficiency; }
159 double getFeedWaterTemperature() const { return feedWaterTemperature; }
160 double getSteamVariable() const { return steamVariable; }
161 SteamProperties::ThermodynamicQuantity getSteamVariableOption() const { return steamVariableOption; }
162
163 private:
164 int hoursPerYear, utilityType;
165 double utilityCost;
166 int measurementMethod;
167 double systemEfficiency, pressure;
168 SteamFlowMeterMethodData flowMeterMethodData;
169 SteamMassFlowMethodData airMassFlowMethodData;
170 SteamMassFlowMethodData waterMassFlowMethodData;
171 SteamOffsheetMethodData offsheetMethodData;
172 int units;
173 double boilerEfficiency;
174 SteamProperties::ThermodynamicQuantity steamVariableOption;
175 double steamVariable;
176 double feedWaterTemperature;
177};
178
180 public:
181 struct Output {
182 Output(double steamUse, double energyUse, double energyCost)
183 : steamUse(steamUse), energyUse(energyUse), energyCost(energyCost) {}
184
185 Output() = default;
186
187 double steamUse = 0, energyUse = 0, energyCost = 0;
188 };
189
194 explicit SteamReduction(std::vector<SteamReductionInput> steamReductionInputVec)
195 : steamReductionInputVec(std::move(steamReductionInputVec)) {}
196
207
208 private:
209 std::vector<SteamReductionInput> steamReductionInputVec;
211};
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)