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