11 #ifndef AMO_SUITE_OPENINGLOSSES_H 12 #define AMO_SUITE_OPENINGLOSSES_H 70 double ambientTemperature,
71 double insideTemperature,
72 double percentTimeOpen,
74 : emissivity(emissivity),
77 thickness(thickness), ratio(ratio),
78 ambientTemperature(ambientTemperature),
79 insideTemperature(insideTemperature),
80 percentTimeOpen(percentTimeOpen),
81 viewFactor(viewFactor),
100 double ambientTemperature,
101 double insideTemperature,
102 double percentTimeOpen,
104 : emissivity(emissivity),
106 thickness(thickness), ratio(ratio),
107 ambientTemperature(ambientTemperature),
108 insideTemperature(insideTemperature),
109 percentTimeOpen(percentTimeOpen),
110 viewFactor(viewFactor),
130 this->emissivity = emissivity;
148 this->diameter = diameter;
180 this->thickness = thickness;
205 return ambientTemperature;
213 this->ambientTemperature = ambientTemperature;
221 return insideTemperature;
229 this->insideTemperature = insideTemperature;
237 return percentTimeOpen;
245 this->percentTimeOpen = percentTimeOpen;
261 this->viewFactor = viewFactor;
279 if (openingShape != OpeningShape::RECTANGULAR) {
280 throw std::runtime_error(
"Call the other set opening shape function to set openingShape to Circular");
282 this->openingShape = openingShape;
283 this->length = length;
294 if (openingShape != OpeningShape::CIRCULAR) {
295 throw std::runtime_error(
"Call the other set opening shape function to set openingShape to Rectangular");
297 this->openingShape = openingShape;
298 this->diameter = diameter;
310 double emissivity = 0.95;
312 double length = 0, width = 0;
315 double ambientTemperature;
316 double insideTemperature;
317 double percentTimeOpen;
323 const std::array<const std::function< double ( const double thicknessRatio ) >, 8> viewFactorEquations = {
325 [](
const double tr) {
326 return (1.10000000001829 + 92.8571428570049 * tr - 57.5892857139671 * std::pow(tr, 2) +
327 15.6249999998005 * std::pow(tr, 3)) / 100;
329 [](
const double tr) {
330 return (29.4999999989821 + 26.8416666684161 * tr - 4.35416666785322 * std::pow(tr, 2) -
331 8.33333330461522E-02 * std::pow(tr, 3) + 0.104166666655532 * std::pow(tr, 4) -
332 8.33333333686747E-03 * std::pow(tr, 5)) / 100;
334 [](
const double tr) {
335 return (3.50000000001719 + 89.5833333332039 * tr - 49.9999999997023 * std::pow(tr, 2) +
336 10.4166666664804 * std::pow(tr, 3)) / 100;
338 [](
const double tr) {
339 return (23.9999999965639 + 39.3916666718743 * tr - 11.6041666697487 * std::pow(tr, 2) +
340 1.85416666706894 * std::pow(tr, 3) - 0.145833333217932 * std::pow(tr, 4) +
341 4.16666663902102E-03 * std::pow(tr, 5)) / 100;
343 [](
const double tr) {
344 return (2.70000000002409 + 112.678571428391 * tr - 70.9821428567315 * std::pow(tr, 2) +
345 15.6249999997447 * std::pow(tr, 3)) / 100;
347 [](
const double tr) {
348 return (35.4999999992976 + 29.4583333347815 * tr - 4.52083333446976 * std::pow(tr, 2) -
349 0.687499999606652 * std::pow(tr, 3) + 0.270833333273064 * std::pow(tr, 4) -
350 2.08333333303721E-02 * std::pow(tr, 5)) / 100;
352 [](
const double tr) {
353 return (13.0000000000278 + 123.74999999979 * tr - 99.9999999995182 * std::pow(tr, 2) +
354 31.249999999699 * std::pow(tr, 3)) / 100;
356 [](
const double tr) {
357 return (26.9999999903567 + 64.5666666806646 * tr - 29.9166666745008 * std::pow(tr, 2) +
358 7.14583333396145 * std::pow(tr, 3) - 0.833333332874441 * std::pow(tr, 4) +
359 3.74999999085373E-02 * std::pow(tr, 5)) / 100;
364 #endif //AMO_SUITE_OPENINGLOSSES_H OpeningShape getOpeningShape() const
void setRatio(double ratio)
double getDiameter() const
void setInsideTemperature(double insideTemperature)
void setAmbientTemperature(double ambientTemperature)
double getInsideTemperature() const
double getThickness() const
void setWidth(double width)
void setDiameter(double diameter)
void setOpeningShape(OpeningShape const openingShape, const double length, const double width)
double getPercentTimeOpen() const
void setOpeningShape(OpeningShape const openingShape, const double diameter)
void setViewFactor(double viewFactor)
double getEmissivity() const
void setThickness(double thickness)
void setEmissivity(double emissivity)
OpeningLosses(double emissivity, double length, double width, double thickness, double ratio, double ambientTemperature, double insideTemperature, double percentTimeOpen, double viewFactor)
double getAmbientTemperature() const
void setPercentTimeOpen(double percentTimeOpen)
double calculateViewFactor(double thickness, double diameter)
OpeningLosses(double emissivity, double diameter, double thickness, double ratio, double ambientTemperature, double insideTemperature, double percentTimeOpen, double viewFactor)
double getViewFactor() const