62 OpeningLosses(
double emissivity,
double length,
double width,
double thickness,
double ratio,
63 double ambientTemperature,
double insideTemperature,
double percentTimeOpen,
double viewFactor)
64 : emissivity(emissivity), length(length), width(width), thickness(thickness), ratio(ratio),
65 ambientTemperature(ambientTemperature), insideTemperature(insideTemperature),
66 percentTimeOpen(percentTimeOpen), viewFactor(viewFactor), openingShape(
OpeningShape::RECTANGULAR) {}
79 OpeningLosses(
double emissivity,
double diameter,
double thickness,
double ratio,
double ambientTemperature,
80 double insideTemperature,
double percentTimeOpen,
double viewFactor)
81 : emissivity(emissivity), diameter(diameter), thickness(thickness), ratio(ratio),
82 ambientTemperature(ambientTemperature), insideTemperature(insideTemperature),
83 percentTimeOpen(percentTimeOpen), viewFactor(viewFactor), openingShape(
OpeningShape::CIRCULAR) {}
97 void setEmissivity(
double emissivity) { this->emissivity = emissivity; }
121 void setWidth(
double width) { this->width = width; }
146 void setRatio(
double ratio) { this->ratio = ratio; }
209 if (openingShape != OpeningShape::RECTANGULAR) {
210 throw std::runtime_error(
"Call the other set opening shape function to set openingShape to Circular");
212 this->openingShape = openingShape;
213 this->length = length;
224 if (openingShape != OpeningShape::CIRCULAR) {
225 throw std::runtime_error(
"Call the other set opening shape function to set openingShape to Rectangular");
227 this->openingShape = openingShape;
228 this->diameter = diameter;
240 double emissivity = 0.95;
242 double length = 0, width = 0;
245 double ambientTemperature;
246 double insideTemperature;
247 double percentTimeOpen;
253 const std::array<
const std::function<double(
const double thicknessRatio)>, 8> viewFactorEquations = {{
254 [](
const double tr) {
255 return (1.10000000001829 + 92.8571428570049 * tr - 57.5892857139671 * std::pow(tr, 2) +
256 15.6249999998005 * std::pow(tr, 3)) /
259 [](
const double tr) {
260 return (29.4999999989821 + 26.8416666684161 * tr - 4.35416666785322 * std::pow(tr, 2) -
261 8.33333330461522E-02 * std::pow(tr, 3) + 0.104166666655532 * std::pow(tr, 4) -
262 8.33333333686747E-03 * std::pow(tr, 5)) /
265 [](
const double tr) {
266 return (3.50000000001719 + 89.5833333332039 * tr - 49.9999999997023 * std::pow(tr, 2) +
267 10.4166666664804 * std::pow(tr, 3)) /
270 [](
const double tr) {
271 return (23.9999999965639 + 39.3916666718743 * tr - 11.6041666697487 * std::pow(tr, 2) +
272 1.85416666706894 * std::pow(tr, 3) - 0.145833333217932 * std::pow(tr, 4) +
273 4.16666663902102E-03 * std::pow(tr, 5)) /
276 [](
const double tr) {
277 return (2.70000000002409 + 112.678571428391 * tr - 70.9821428567315 * std::pow(tr, 2) +
278 15.6249999997447 * std::pow(tr, 3)) /
281 [](
const double tr) {
282 return (35.4999999992976 + 29.4583333347815 * tr - 4.52083333446976 * std::pow(tr, 2) -
283 0.687499999606652 * std::pow(tr, 3) + 0.270833333273064 * std::pow(tr, 4) -
284 2.08333333303721E-02 * std::pow(tr, 5)) /
287 [](
const double tr) {
288 return (13.0000000000278 + 123.74999999979 * tr - 99.9999999995182 * std::pow(tr, 2) +
289 31.249999999699 * std::pow(tr, 3)) /
292 [](
const double tr) {
293 return (26.9999999903567 + 64.5666666806646 * tr - 29.9166666745008 * std::pow(tr, 2) +
294 7.14583333396145 * std::pow(tr, 3) - 0.833333332874441 * std::pow(tr, 4) +
295 3.74999999085373E-02 * std::pow(tr, 5)) /
OpeningLosses(double emissivity, double length, double width, double thickness, double ratio, double ambientTemperature, double insideTemperature, double percentTimeOpen, double viewFactor)
OpeningLosses(double emissivity, double diameter, double thickness, double ratio, double ambientTemperature, double insideTemperature, double percentTimeOpen, double viewFactor)