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