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
NaturalGasReduction.h
1#ifndef TOOLS_SUITE_NATURALGASREDUCTION_H
2#define TOOLS_SUITE_NATURALGASREDUCTION_H
3
4#include <exception>
5#include <stdexcept>
6#include <vector>
7
9 public:
10 FlowMeterMethodData(const double flowRate) : flowRate(flowRate) {}
11
12 double getFlowRate() const { return flowRate; }
13 void setFlowRate(double flowRate);
14
15 private:
16 double flowRate;
17};
18
20 public:
21 NaturalGasOtherMethodData(const double consumption) : consumption(consumption) {}
22
23 double getConsumption() const { return consumption; }
24 void setConsumption(double consumption);
25
26 private:
27 double consumption;
28};
29
31 public:
32 AirMassFlowMeasuredData(const double areaOfDuct, const double airVelocity)
33 : areaOfDuct(areaOfDuct), airVelocity(airVelocity) {}
34
35 double getAreaOfDuct() const { return areaOfDuct; }
36 double getAirVelocity() const { return airVelocity; }
37 void setAreaOfDuct(double areaOfDuct);
38 void setAirVelocity(double airVelocity);
39
40 private:
41 double areaOfDuct, airVelocity;
42};
43
45 public:
46 AirMassFlowNameplateData(const double airFlow) : airFlow(airFlow) {}
47
48 double getAirFlow() const { return airFlow; }
49 void setAirFlow(double airFlow);
50
51 private:
52 double airFlow;
53};
54
56 public:
57 AirMassFlowData(const bool isNameplate, const AirMassFlowMeasuredData airMassFlowMeasuredData,
58 const AirMassFlowNameplateData airMassFlowNameplateData, const double inletTemperature,
59 const double outletTemperature, const double systemEfficiency)
60 : isNameplate(isNameplate), airMassFlowMeasuredData(airMassFlowMeasuredData),
61 airMassFlowNameplateData(airMassFlowNameplateData), inletTemperature(inletTemperature),
62 outletTemperature(outletTemperature), systemEfficiency(systemEfficiency) {}
63
64 bool getIsNameplate() const { return isNameplate; }
65 AirMassFlowMeasuredData getAirMassFlowMeasuredData() const { return airMassFlowMeasuredData; }
66 AirMassFlowNameplateData getAirMassFlowNameplateData() const { return airMassFlowNameplateData; }
67 double getInletTemperature() const { return inletTemperature; }
68 double getOutletTemperature() const { return outletTemperature; }
69 double getSystemEfficiency() const { return systemEfficiency; }
70 void setIsNameplate(bool isNameplate);
71 void setAirMassFlowMeasuredData(AirMassFlowMeasuredData airMassFlowMeasuredData);
72 void setAirMassFlowNameplateData(AirMassFlowNameplateData airMassFlowNameplateData);
73 void setInletTemperature(double inletTemperature);
74 void setOutletTemperature(double outletTemperature);
75 void setSystemEfficiency(double systemEfficiency);
76
77 private:
78 bool isNameplate;
79 AirMassFlowMeasuredData airMassFlowMeasuredData;
80 AirMassFlowNameplateData airMassFlowNameplateData;
81 double inletTemperature, outletTemperature, systemEfficiency;
82};
83
85 public:
86 WaterMassFlowData(const double waterFlow, const double inletTemperature, const double outletTemperature,
87 const double systemEfficiency)
88 : waterFlow(waterFlow), inletTemperature(inletTemperature), outletTemperature(outletTemperature),
89 systemEfficiency(systemEfficiency) {}
90 double getWaterFlow() const { return waterFlow; }
91 double getInletTemperature() const { return inletTemperature; }
92 double getOutletTemperature() const { return outletTemperature; }
93 double getSystemEfficiency() const { return systemEfficiency; }
94 void setWaterFlow(double waterFlow);
95 void setInletTemperature(double inletTemperature);
96 void setOutletTemperature(double outletTemperature);
97 void setSystemEfficiency(double systemEfficiency);
98
99 private:
100 double waterFlow, inletTemperature, outletTemperature, systemEfficiency;
101};
102
104 public:
105 NaturalGasReductionInput(const int operatingHours, const double fuelCost, const int measurementMethod,
106 const FlowMeterMethodData flowMeterMethodData,
107 const NaturalGasOtherMethodData otherMethodData, const AirMassFlowData airMassFlowData,
108 const WaterMassFlowData waterMassFlowData, const int units)
109 : operatingHours(operatingHours), fuelCost(fuelCost), measurementMethod(measurementMethod),
110 flowMeterMethodData(flowMeterMethodData), otherMethodData(otherMethodData), airMassFlowData(airMassFlowData),
111 waterMassFlowData(waterMassFlowData), units(units) {}
112
113 int getOperatingHours() const { return operatingHours; }
114 double getFuelCost() const { return fuelCost; }
115 int getMeasurementMethod() const { return measurementMethod; }
116 int getUnits() const { return units; }
117 FlowMeterMethodData getFlowMeterMethodData() const { return flowMeterMethodData; }
118 NaturalGasOtherMethodData getNaturalGasOtherMethodData() const { return otherMethodData; }
119 AirMassFlowData getAirMassFlowData() const { return airMassFlowData; }
120 WaterMassFlowData getWaterMassFlowData() const { return waterMassFlowData; }
121
122 private:
123 int operatingHours;
124 double fuelCost;
125 int measurementMethod;
126 FlowMeterMethodData flowMeterMethodData;
127 NaturalGasOtherMethodData otherMethodData;
128 AirMassFlowData airMassFlowData;
129 WaterMassFlowData waterMassFlowData;
130 int units;
131};
132
134 public:
135 struct Output {
136 Output(double energyUse, double energyCost, double heatFlow, double totalFlow)
137 : energyUse(energyUse), energyCost(energyCost), heatFlow(heatFlow), totalFlow(totalFlow) {}
138
139 Output() = default;
140 double energyUse = 0, energyCost = 0, heatFlow = 0, totalFlow = 0;
141 };
142
143 NaturalGasReduction(std::vector<NaturalGasReductionInput> naturalGasReductionInputVec)
144 : naturalGasReductionInputVec(naturalGasReductionInputVec) {}
145
146 NaturalGasReduction::Output calculate();
147 std::vector<NaturalGasReductionInput> const& getNaturalGasReductionInputVec() const {
148 return naturalGasReductionInputVec;
149 }
150 void setNaturalGasReductionInputVec(std::vector<NaturalGasReductionInput>& naturalGasReductionInputVec);
151
152 private:
153 std::vector<NaturalGasReductionInput> naturalGasReductionInputVec;
155};
156
157#endif // TOOLS_SUITE_NATURALGASREDUCTION_H