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
InsulatedTankReduction.h
1#ifndef TOOLS_SUITE_INSULATEDTANKCALCULATOR_H
2#define TOOLS_SUITE_INSULATEDTANKCALCULATOR_H
3
4#include <vector>
5
6#include "InsulationFluidProperties.h"
7
9 public:
11 InsulatedTankOutput(double heatLoss, double annualHeatLoss)
12 : _heatLoss(heatLoss), _annualHeatLoss(annualHeatLoss) {}
13
14 double getHeatLoss() { return this->_heatLoss; }
15
16 double getAnnualHeatLoss() { return this->_annualHeatLoss; }
17
18 void setHeatLoss(double heatLoss) { this->_heatLoss = heatLoss; }
19
20 void setAnnualHeatLoss(double annualHeatLoss) { this->_annualHeatLoss = annualHeatLoss; }
21
22 private:
23 double _heatLoss;
24 double _annualHeatLoss;
25};
26
28 public:
29 InsulatedTankInput(int operatingHours, double tankHeight, double tankDiameter, double tankThickness,
30 double tankEmissivity, double tankConductivity, double tankTemperature,
31 double ambientTemperature, double systemEfficiency, double insulationThickness,
32 double insulationConductivity, double jacketEmissivity, double surfaceTemperature)
33 : _operatingHours(operatingHours), _tankHeight(tankHeight), _tankDiameter(tankDiameter),
34 _tankThickness(tankThickness), _tankEmissivity(tankEmissivity), _tankConductivity(tankConductivity),
35 _tankTemperature(tankTemperature), _ambientTemperature(ambientTemperature),
36 _systemEfficiency(systemEfficiency), _insulationThickness(insulationThickness),
37 _insulationConductivity(insulationConductivity), _jacketEmissivity(jacketEmissivity),
38 _surfaceTemperature(surfaceTemperature) {}
39
40 int getOperatingHours() { return this->_operatingHours; }
41
42 double getTankHeight() { return this->_tankHeight; }
43
44 double getTankDiameter() { return this->_tankDiameter; }
45
46 double getTankThickness() { return this->_tankThickness; }
47
48 double getTankEmissivity() { return this->_tankEmissivity; }
49
50 double getTankConductivity() { return this->_tankConductivity; }
51
52 double getTankTemperature() { return this->_tankTemperature; }
53
54 double getAmbientTemperature() { return this->_ambientTemperature; }
55
56 double getSystemEfficiency() { return this->_systemEfficiency; }
57
58 double getInsulationThickness() { return this->_insulationThickness; }
59
60 double getInsulationConductivity() { return this->_insulationConductivity; }
61
62 double getJacketEmissivity() { return this->_jacketEmissivity; }
63
64 double getSurfaceTemperature() { return this->_surfaceTemperature; }
65
66 private:
67 // InsulationFluidProperties _airProperties;
68 int _operatingHours;
69 double _tankHeight;
70 double _tankDiameter;
71 double _tankThickness;
72 double _tankEmissivity;
73 double _tankConductivity;
74 double _tankTemperature;
75 double _ambientTemperature;
76 double _systemEfficiency;
77 double _insulationThickness;
78 double _insulationConductivity;
79 double _jacketEmissivity;
80 double _surfaceTemperature;
81};
82
84 public:
86 InsulatedTankReduction(InsulatedTankInput insulatedTankInput) : _insulatedTankInput(insulatedTankInput) {}
87
88 InsulatedTankOutput calculate();
89 InsulatedTankOutput calculateNoInsulation(InsulatedTankInput input);
90 InsulatedTankOutput calculateInsulation(InsulatedTankInput input);
91 InsulationFluidProperties calculateAirProperties(double temp);
92 double insulationRecursive();
93 double noInsulationRecursive();
94 double calculateAirProperty(int property, double temp);
95 double lookupAirPropertyCoefficient(int property, int n);
96
97 private:
98 void validateInput(InsulatedTankInput input);
99 double propertyFit(std::vector<double> coefficients, double temp);
100
101 InsulatedTankInput _insulatedTankInput;
102 const double _airPropertiesArray[4][5] = {
103 {-1.82109557e-14, 5.27958269e-11, -3.22287031e-8, 8.06185737e-6, 2.38303755e-1}, // specificHeat
104 {5.53240532e-12, -2.97098117e-8, 5.96315645e-5, -5.57665211e-2, 2.43046430e1}, // density
105 {-6.67800412e-13, 2.42855319e-9, 7.21312269e-8, 3.56111381e-3, -5.82727939e-1}, // kinViscosity
106 {-1.63898601e-15, 7.98394765e-12, -1.80852621e-8, 3.85957991e-5, -1.49489778e-3}, // thermCond
107 };
108};
109
110#endif