Line data Source code
1 : // EnergyPlus, Copyright (c) 1996-2024, The Board of Trustees of the University of Illinois,
2 : // The Regents of the University of California, through Lawrence Berkeley National Laboratory
3 : // (subject to receipt of any required approvals from the U.S. Dept. of Energy), Oak Ridge
4 : // National Laboratory, managed by UT-Battelle, Alliance for Sustainable Energy, LLC, and other
5 : // contributors. All rights reserved.
6 : //
7 : // NOTICE: This Software was developed under funding from the U.S. Department of Energy and the
8 : // U.S. Government consequently retains certain rights. As such, the U.S. Government has been
9 : // granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable,
10 : // worldwide license in the Software to reproduce, distribute copies to the public, prepare
11 : // derivative works, and perform publicly and display publicly, and to permit others to do so.
12 : //
13 : // Redistribution and use in source and binary forms, with or without modification, are permitted
14 : // provided that the following conditions are met:
15 : //
16 : // (1) Redistributions of source code must retain the above copyright notice, this list of
17 : // conditions and the following disclaimer.
18 : //
19 : // (2) Redistributions in binary form must reproduce the above copyright notice, this list of
20 : // conditions and the following disclaimer in the documentation and/or other materials
21 : // provided with the distribution.
22 : //
23 : // (3) Neither the name of the University of California, Lawrence Berkeley National Laboratory,
24 : // the University of Illinois, U.S. Dept. of Energy nor the names of its contributors may be
25 : // used to endorse or promote products derived from this software without specific prior
26 : // written permission.
27 : //
28 : // (4) Use of EnergyPlus(TM) Name. If Licensee (i) distributes the software in stand-alone form
29 : // without changes from the version obtained under this License, or (ii) Licensee makes a
30 : // reference solely to the software portion of its product, Licensee must refer to the
31 : // software as "EnergyPlus version X" software, where "X" is the version number Licensee
32 : // obtained under this License and may not use a different name for the software. Except as
33 : // specifically required in this Section (4), Licensee shall not use in a company name, a
34 : // product name, in advertising, publicity, or other promotional activities any name, trade
35 : // name, trademark, logo, or other designation of "EnergyPlus", "E+", "e+" or confusingly
36 : // similar designation, without the U.S. Department of Energy's prior written consent.
37 : //
38 : // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
39 : // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
40 : // AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
41 : // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
42 : // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
43 : // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
44 : // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
45 : // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
46 : // POSSIBILITY OF SUCH DAMAGE.
47 :
48 : #ifndef ThermalISO15099Calc_hh_INCLUDED
49 : #define ThermalISO15099Calc_hh_INCLUDED
50 :
51 : // ObjexxFCL Headers
52 : #include <ObjexxFCL/Array2A.hh>
53 :
54 : // EnergyPlus Headers
55 : #include <EnergyPlus/Data/BaseData.hh>
56 : #include <EnergyPlus/DataGlobals.hh>
57 : #include <EnergyPlus/EnergyPlus.hh>
58 : #include <EnergyPlus/TARCOGGassesParams.hh>
59 : #include <EnergyPlus/TARCOGParams.hh>
60 :
61 : namespace EnergyPlus {
62 :
63 : // Forward declarations
64 : struct EnergyPlusData;
65 :
66 : // Using/Aliasing
67 : using namespace TARCOGGassesParams;
68 : using namespace TARCOGParams;
69 :
70 : namespace ThermalISO15099Calc {
71 :
72 : void film(EnergyPlusData &state, Real64 tex, Real64 tw, Real64 ws, int iwd, Real64 &hcout, int ibc);
73 :
74 : void Calc_ISO15099(EnergyPlusData &state,
75 : TARCOGOutput::Files &files,
76 : int nlayer,
77 : int iwd,
78 : Real64 &tout,
79 : Real64 &tind,
80 : Real64 &trmin,
81 : Real64 wso,
82 : Real64 wsi,
83 : Real64 dir,
84 : Real64 outir,
85 : int isky,
86 : Real64 tsky,
87 : Real64 &esky,
88 : Real64 fclr,
89 : Real64 VacuumPressure,
90 : Real64 VacuumMaxGapThickness,
91 : Array1D<Real64> &gap,
92 : Array1D<Real64> &thick,
93 : Array1D<Real64> &scon,
94 : const Array1D<Real64> &tir,
95 : const Array1D<Real64> &emis,
96 : Real64 totsol,
97 : Real64 tilt,
98 : const Array1D<Real64> &asol,
99 : Real64 height,
100 : Real64 heightt,
101 : Real64 width,
102 : const Array1D<Real64> &presure,
103 : Array2A_int iprop,
104 : Array2A<Real64> frct,
105 : Array2A<Real64> xgcon,
106 : Array2A<Real64> xgvis,
107 : Array2A<Real64> xgcp,
108 : const Array1D<Real64> &xwght,
109 : const Array1D<Real64> &gama,
110 : const Array1D_int &nmix,
111 : const Array1D_int &SupportPillar,
112 : const Array1D<Real64> &PillarSpacing,
113 : const Array1D<Real64> &PillarRadius,
114 : Array1D<Real64> &theta,
115 : Array1D<Real64> &q,
116 : Array1D<Real64> &qv,
117 : Real64 &ufactor,
118 : Real64 &sc,
119 : Real64 &hflux,
120 : Real64 &hcin,
121 : Real64 &hcout,
122 : Real64 &hrin,
123 : Real64 &hrout,
124 : Real64 &hin,
125 : Real64 &hout,
126 : Array1D<Real64> &hcgas,
127 : Array1D<Real64> &hrgas,
128 : Real64 &shgc,
129 : int &nperr,
130 : std::string &ErrorMessage,
131 : Real64 &shgct,
132 : Real64 &tamb,
133 : Real64 &troom,
134 : const Array1D_int &ibc,
135 : const Array1D<Real64> &Atop,
136 : const Array1D<Real64> &Abot,
137 : const Array1D<Real64> &Al,
138 : const Array1D<Real64> &Ar,
139 : const Array1D<Real64> &Ah,
140 : const Array1D<Real64> &SlatThick,
141 : const Array1D<Real64> &SlatWidth,
142 : const Array1D<Real64> &SlatAngle,
143 : const Array1D<Real64> &SlatCond,
144 : const Array1D<Real64> &SlatSpacing,
145 : const Array1D<Real64> &SlatCurve,
146 : const Array1D<Real64> &vvent,
147 : const Array1D<Real64> &tvent,
148 : const Array1D<TARCOGLayerType> &LayerType,
149 : const Array1D_int &nslice,
150 : const Array1D<Real64> &LaminateA,
151 : const Array1D<Real64> &LaminateB,
152 : const Array1D<Real64> &sumsol,
153 : Array1D<Real64> &Ra,
154 : Array1D<Real64> &Nu,
155 : TARCOGThermalModel ThermalMod,
156 : int Debug_mode,
157 : Real64 &ShadeEmisRatioOut,
158 : Real64 &ShadeEmisRatioIn,
159 : Real64 &ShadeHcRatioOut,
160 : Real64 &ShadeHcRatioIn,
161 : Real64 &HcUnshadedOut,
162 : Real64 &HcUnshadedIn,
163 : Array1D<Real64> &Keff,
164 : Array1D<Real64> &ShadeGapKeffConv,
165 : Real64 SDScalar,
166 : int SHGCCalc,
167 : int &NumOfIterations,
168 : Real64 egdeGlCorrFac);
169 :
170 : void therm1d(EnergyPlusData &state,
171 : TARCOGOutput::Files &files,
172 : int nlayer,
173 : int iwd,
174 : Real64 &tout,
175 : Real64 &tind,
176 : Real64 wso,
177 : Real64 wsi,
178 : Real64 VacuumPressure,
179 : Real64 VacuumMaxGapThickness,
180 : Real64 dir,
181 : Real64 &ebsky,
182 : Real64 Gout,
183 : Real64 trmout,
184 : Real64 trmin,
185 : Real64 &ebroom,
186 : Real64 Gin,
187 : const Array1D<Real64> &tir,
188 : const Array1D<Real64> &rir,
189 : const Array1D<Real64> &emis,
190 : const Array1D<Real64> &gap,
191 : const Array1D<Real64> &thick,
192 : const Array1D<Real64> &scon,
193 : Real64 tilt,
194 : const Array1D<Real64> &asol,
195 : Real64 height,
196 : Real64 heightt,
197 : Real64 width,
198 : Array2_int const &iprop,
199 : Array2<Real64> const &frct,
200 : const Array1D<Real64> &presure,
201 : const Array1D_int &nmix,
202 : const Array1D<Real64> &wght,
203 : Array2<Real64> const &gcon,
204 : Array2<Real64> const &gvis,
205 : Array2<Real64> const &gcp,
206 : const Array1D<Real64> &gama,
207 : const Array1D_int &SupportPillar,
208 : const Array1D<Real64> &PillarSpacing,
209 : const Array1D<Real64> &PillarRadius,
210 : Array1D<Real64> &theta,
211 : Array1D<Real64> &q,
212 : Array1D<Real64> &qv,
213 : Real64 &flux,
214 : Real64 &hcin,
215 : Real64 &hrin,
216 : Real64 &hcout,
217 : Real64 &hrout,
218 : Real64 &hin,
219 : Real64 &hout,
220 : Array1D<Real64> &hcgas,
221 : Array1D<Real64> &hrgas,
222 : Real64 &ufactor,
223 : int &nperr,
224 : std::string &ErrorMessage,
225 : Real64 &tamb,
226 : Real64 &troom,
227 : const Array1D_int &ibc,
228 : const Array1D<Real64> &Atop,
229 : const Array1D<Real64> &Abot,
230 : const Array1D<Real64> &Al,
231 : const Array1D<Real64> &Ar,
232 : const Array1D<Real64> &Ah,
233 : const Array1D<Real64> &EffectiveOpenness,
234 : const Array1D<Real64> &vvent,
235 : const Array1D<Real64> &tvent,
236 : const Array1D<TARCOGLayerType> &LayerType,
237 : Array1D<Real64> &Ra,
238 : Array1D<Real64> &Nu,
239 : Array1D<Real64> &vfreevent,
240 : Array1D<Real64> &qcgas,
241 : Array1D<Real64> &qrgas,
242 : Array1D<Real64> &Ebf,
243 : Array1D<Real64> &Ebb,
244 : Array1D<Real64> &Rf,
245 : Array1D<Real64> &Rb,
246 : Real64 &ShadeEmisRatioOut,
247 : Real64 &ShadeEmisRatioIn,
248 : Real64 &ShadeHcModifiedOut,
249 : Real64 &ShadeHcModifiedIn,
250 : TARCOGThermalModel ThermalMod,
251 : int Debug_mode,
252 : Real64 &AchievedErrorTolerance,
253 : int &TotalIndex,
254 : Real64 edgeGlCorrFac);
255 :
256 : void guess(EnergyPlusData &state,
257 : Real64 tout,
258 : Real64 tind,
259 : int nlayer,
260 : const Array1D<Real64> &gap,
261 : const Array1D<Real64> &thick,
262 : Real64 &width,
263 : Array1D<Real64> &theta,
264 : Array1D<Real64> &Ebb,
265 : Array1D<Real64> &Ebf,
266 : Array1D<Real64> &Tgap);
267 :
268 : void solarISO15099(Real64 totsol, Real64 rtot, const Array1D<Real64> &rs, int nlayer, const Array1D<Real64> &absol, Real64 &sf);
269 :
270 : void resist(int nlayer,
271 : Real64 trmout,
272 : Real64 Tout,
273 : Real64 trmin,
274 : Real64 tind,
275 : const Array1D<Real64> &hcgas,
276 : const Array1D<Real64> &hrgas,
277 : Array1D<Real64> &Theta,
278 : Array1D<Real64> &qlayer,
279 : const Array1D<Real64> &qv,
280 : const Array1D<TARCOGLayerType> &LayerType,
281 : const Array1D<Real64> &thick,
282 : const Array1D<Real64> &scon,
283 : Real64 &ufactor,
284 : Real64 &flux,
285 : Array1D<Real64> &qcgas,
286 : Array1D<Real64> &qrgas);
287 :
288 : void hatter(EnergyPlusData &state,
289 : int nlayer,
290 : int iwd,
291 : Real64 tout,
292 : Real64 tind,
293 : Real64 wso,
294 : Real64 wsi,
295 : Real64 VacuumPressure,
296 : Real64 VacuumMaxGapThickness,
297 : Real64 &ebsky,
298 : Real64 &tamb,
299 : Real64 &ebroom,
300 : Real64 &troom,
301 : const Array1D<Real64> &gap,
302 : Real64 height,
303 : Real64 heightt,
304 : const Array1D<Real64> &scon,
305 : Real64 tilt,
306 : Array1D<Real64> &theta,
307 : const Array1D<Real64> &Tgap,
308 : Array1D<Real64> &Radiation,
309 : Real64 trmout,
310 : Real64 trmin,
311 : Array2_int const &iprop,
312 : Array2<Real64> const &frct,
313 : const Array1D<Real64> &presure,
314 : const Array1D_int &nmix,
315 : const Array1D<Real64> &wght,
316 : Array2<Real64> const &gcon,
317 : Array2<Real64> const &gvis,
318 : Array2<Real64> const &gcp,
319 : const Array1D<Real64> &gama,
320 : const Array1D_int &SupportPillar,
321 : const Array1D<Real64> &PillarSpacing,
322 : const Array1D<Real64> &PillarRadius,
323 : Array1D<Real64> &hgas,
324 : Array1D<Real64> &hcgas,
325 : Array1D<Real64> &hrgas,
326 : Real64 &hcin,
327 : Real64 &hcout,
328 : Real64 hin,
329 : Real64 hout,
330 : int index,
331 : const Array1D_int &ibc,
332 : int &nperr,
333 : std::string &ErrorMessage,
334 : Real64 &hrin,
335 : Real64 &hrout,
336 : Array1D<Real64> &Ra,
337 : Array1D<Real64> &Nu);
338 :
339 : void effectiveLayerCond(EnergyPlusData &state,
340 : int nlayer,
341 : const Array1D<TARCOGLayerType> &LayerType, // Layer type
342 : const Array1D<Real64> &scon, // Layer thermal conductivity
343 : const Array1D<Real64> &thick, // Layer thickness
344 : Array2A_int iprop, // Gas type in gaps
345 : Array2A<Real64> frct, // Fraction of gas
346 : const Array1D_int &nmix, // Gas mixture
347 : const Array1D<Real64> &pressure, // Gas pressure [Pa]
348 : const Array1D<Real64> &wght, // Molecular weight
349 : Array2A<Real64> gcon, // Gas specific conductivity
350 : Array2A<Real64> gvis, // Gas specific viscosity
351 : Array2A<Real64> gcp, // Gas specific heat
352 : const Array1D<Real64> &EffectiveOpenness, // Layer effective openneess [m2]
353 : Array1D<Real64> &theta, // Layer surface tempeartures [K]
354 : Array1D<Real64> &sconScaled, // Layer conductivity divided by thickness
355 : int &nperr, // Error message flag
356 : std::string &ErrorMessage // Error message
357 : );
358 :
359 : void filmi(EnergyPlusData &state,
360 : Real64 tair,
361 : Real64 t,
362 : int nlayer,
363 : Real64 tilt,
364 : Real64 wsi,
365 : Real64 height,
366 : Array2A_int iprop,
367 : Array2A<Real64> frct,
368 : const Array1D<Real64> &presure,
369 : const Array1D_int &nmix,
370 : const Array1D<Real64> &wght,
371 : Array2A<Real64> gcon,
372 : Array2A<Real64> gvis,
373 : Array2A<Real64> gcp,
374 : Real64 &hcin,
375 : int ibc,
376 : int &nperr,
377 : std::string &ErrorMessage);
378 :
379 : void filmg(EnergyPlusData &state,
380 : Real64 tilt,
381 : const Array1D<Real64> &theta,
382 : const Array1D<Real64> &Tgap,
383 : int nlayer,
384 : Real64 height,
385 : const Array1D<Real64> &gap,
386 : Array2A_int iprop,
387 : Array2A<Real64> frct,
388 : Real64 VacuumPressure,
389 : const Array1D<Real64> &presure,
390 : const Array1D_int &nmix,
391 : const Array1D<Real64> &wght,
392 : Array2A<Real64> gcon,
393 : Array2A<Real64> gvis,
394 : Array2A<Real64> gcp,
395 : const Array1D<Real64> &gama,
396 : Array1D<Real64> &hcgas,
397 : Array1D<Real64> &Rayleigh,
398 : Array1D<Real64> &Nu,
399 : int &nperr,
400 : std::string &ErrorMessage);
401 :
402 : void filmPillar(EnergyPlusData &state,
403 : const Array1D_int &SupportPillar, // Shows whether or not gap have support pillar
404 : const Array1D<Real64> &scon, // Conductivity of glass layers
405 : const Array1D<Real64> &PillarSpacing, // Pillar spacing for each gap (used in case there is support pillar)
406 : const Array1D<Real64> &PillarRadius, // Pillar radius for each gap (used in case there is support pillar)
407 : int nlayer,
408 : const Array1D<Real64> &gap,
409 : Array1D<Real64> &hcgas,
410 : Real64 VacuumMaxGapThickness,
411 : int &nperr,
412 : std::string &ErrorMessage);
413 :
414 : void nusselt(Real64 tilt, Real64 ra, Real64 asp, Real64 &gnu, int &nperr, std::string &ErrorMessage);
415 :
416 : void storeIterationResults(EnergyPlusData &state,
417 : TARCOGOutput::Files &files,
418 : int nlayer,
419 : int index,
420 : const Array1D<Real64> &theta,
421 : Real64 trmout,
422 : Real64 tamb,
423 : Real64 trmin,
424 : Real64 troom,
425 : Real64 ebsky,
426 : Real64 ebroom,
427 : Real64 hcin,
428 : Real64 hcout,
429 : Real64 hrin,
430 : Real64 hrout,
431 : Real64 hin,
432 : Real64 hout,
433 : const Array1D<Real64> &Ebb,
434 : const Array1D<Real64> &Ebf,
435 : const Array1D<Real64> &Rb,
436 : const Array1D<Real64> &Rf,
437 : int &);
438 :
439 : void CalculateFuncResults(int nlayer, Array2<Real64> const &a, const Array1D<Real64> &b, const Array1D<Real64> &x, Array1D<Real64> &FRes);
440 : } // namespace ThermalISO15099Calc
441 : struct ThermalISO15099CalcData : BaseGlobalStruct
442 : {
443 : Array1D<Real64> thetas = Array1D<Real64>(maxlay2);
444 : Array1D<Real64> rir = Array1D<Real64>(maxlay2);
445 : Array1D<Real64> hcgass = Array1D<Real64>(maxlay1);
446 : Array1D<Real64> hrgass = Array1D<Real64>(maxlay1);
447 : Array1D<Real64> rs = Array1D<Real64>(maxlay3, 0.0);
448 : Array1D<Real64> qs = Array1D<Real64>(maxlay3);
449 : Array1D<Real64> qvs = Array1D<Real64>(maxlay1);
450 : Array1D<Real64> LaminateAU = Array1D<Real64>(maxlay);
451 : Array1D<Real64> sumsolU = Array1D<Real64>(maxlay);
452 : Array1D<Real64> sol0 = Array1D<Real64>(maxlay);
453 : Array1D<Real64> qcgas = Array1D<Real64>(maxlay1);
454 : Array1D<Real64> qcgaps = Array1D<Real64>(maxlay1);
455 : Array1D<Real64> qrgas = Array1D<Real64>(maxlay1);
456 : Array1D<Real64> qrgaps = Array1D<Real64>(maxlay1);
457 : Array1D<Real64> Atop_NOSD = Array1D<Real64>(maxlay);
458 : Array1D<Real64> Abot_NOSD = Array1D<Real64>(maxlay);
459 : Array1D<Real64> Al_NOSD = Array1D<Real64>(maxlay);
460 : Array1D<Real64> Ar_NOSD = Array1D<Real64>(maxlay);
461 : Array1D<Real64> Ah_NOSD = Array1D<Real64>(maxlay);
462 : Array1D<Real64> EffectiveOpenness_NOSD = Array1D<Real64>(maxlay);
463 : Array1D<Real64> SlatThick_NOSD = Array1D<Real64>(maxlay);
464 : Array1D<Real64> SlatWidth_NOSD = Array1D<Real64>(maxlay);
465 : Array1D<Real64> SlatAngle_NOSD = Array1D<Real64>(maxlay);
466 : Array1D<Real64> SlatCond_NOSD = Array1D<Real64>(maxlay);
467 : Array1D<Real64> SlatSpacing_NOSD = Array1D<Real64>(maxlay);
468 : Array1D<Real64> SlatCurve_NOSD = Array1D<Real64>(maxlay);
469 : Array1D<Real64> vvent_NOSD = Array1D<Real64>(maxlay1);
470 : Array1D<Real64> tvent_NOSD = Array1D<Real64>(maxlay1);
471 : Array1D<Real64> qv_NOSD = Array1D<Real64>(maxlay1);
472 : Array1D<Real64> q_NOSD = Array1D<Real64>(maxlay3);
473 : Array1D<TARCOGParams::TARCOGLayerType> LayerType_NOSD = Array1D<TARCOGParams::TARCOGLayerType>(maxlay);
474 : Array1D<Real64> gap_NOSD = Array1D<Real64>(maxlay);
475 : Array1D<Real64> thick_NOSD = Array1D<Real64>(maxlay);
476 : Array1D<Real64> scon_NOSD = Array1D<Real64>(maxlay);
477 : Array1D<Real64> emis_NOSD = Array1D<Real64>(maxlay2);
478 : Array1D<Real64> rir_NOSD = Array1D<Real64>(maxlay2);
479 : Array1D<Real64> tir_NOSD = Array1D<Real64>(maxlay2);
480 : Array1D<Real64> theta_NOSD = Array1D<Real64>(maxlay2);
481 : Array2D<Real64> frct_NOSD = Array2D<Real64>(maxgas, maxlay1);
482 : Array2D_int iprop_NOSD = Array2D_int(maxgas, maxlay1);
483 : Array1D_int nmix_NOSD = Array1D_int(maxlay1);
484 : Array1D<Real64> presure_NOSD = Array1D<Real64>(maxlay1);
485 : Array1D<Real64> hcgas_NOSD = Array1D<Real64>(maxlay1);
486 : Array1D<Real64> hrgas_NOSD = Array1D<Real64>(maxlay1);
487 : Array1D<Real64> LaminateA_NOSD = Array1D<Real64>(maxlay);
488 : Array1D<Real64> LaminateB_NOSD = Array1D<Real64>(maxlay);
489 : Array1D<Real64> sumsol_NOSD = Array1D<Real64>(maxlay);
490 : Array1D<Real64> Ra_NOSD = Array1D<Real64>(maxlay);
491 : Array1D<Real64> Nu_NOSD = Array1D<Real64>(maxlay);
492 : Array1D<Real64> Ebb = Array1D<Real64>(maxlay);
493 : Array1D<Real64> Ebf = Array1D<Real64>(maxlay);
494 : Array1D<Real64> Rb = Array1D<Real64>(maxlay);
495 : Array1D<Real64> Rf = Array1D<Real64>(maxlay);
496 : Array1D<Real64> Ebbs = Array1D<Real64>(maxlay);
497 : Array1D<Real64> Ebfs = Array1D<Real64>(maxlay);
498 : Array1D<Real64> Rbs = Array1D<Real64>(maxlay);
499 : Array1D<Real64> Rfs = Array1D<Real64>(maxlay);
500 : Array1D<Real64> Ebb_NOSD = Array1D<Real64>(maxlay);
501 : Array1D<Real64> Ebf_NOSD = Array1D<Real64>(maxlay);
502 : Array1D<Real64> Rb_NOSD = Array1D<Real64>(maxlay);
503 : Array1D<Real64> Rf_NOSD = Array1D<Real64>(maxlay);
504 : Array1D<Real64> ShadeGapKeffConv_NOSD = Array1D<Real64>(MaxGap);
505 : Array1D<Real64> qcgas_NOSD = Array1D<Real64>(maxlay1);
506 : Array1D<Real64> Keff_NOSD = Array1D<Real64>(maxlay1);
507 : Array1D<Real64> qrgas_NOSD = Array1D<Real64>(maxlay1);
508 : Array1D_int nslice_NOSD = Array1D_int(maxlay);
509 : Array1D<Real64> vfreevent_NOSD = Array1D<Real64>(maxlay1);
510 : Array1D<Real64> vfreevent = Array1D<Real64>(maxlay1);
511 : Array1D<Real64> Atop_eff = Array1D<Real64>(maxlay, 0.0);
512 : Array1D<Real64> Abot_eff = Array1D<Real64>(maxlay, 0.0);
513 : Array1D<Real64> Al_eff = Array1D<Real64>(maxlay, 0.0);
514 : Array1D<Real64> Ar_eff = Array1D<Real64>(maxlay, 0.0);
515 : Array1D<Real64> Ah_eff = Array1D<Real64>(maxlay, 0.0);
516 : Array1D<Real64> EffectiveOpenness = Array1D<Real64>(maxlay, 0.0);
517 : Array1D<Real64> hgas = Array1D<Real64>(maxlay1);
518 : Array1D<Real64> Tgap = Array1D<Real64>(maxlay1);
519 : Array1D<Real64> hcgapMod = Array1D<Real64>(maxlay1);
520 : Array1D<Real64> hcv = Array1D<Real64>(maxlay1);
521 : Array1D_int iprop1 = Array1D_int(maxgas);
522 : Array1D<Real64> frct1 = Array1D<Real64>(maxgas);
523 : Array1D<Real64> frcti = Array1D<Real64>(maxgas);
524 : Array1D_int ipropi = Array1D_int(maxgas);
525 : Array1D<Real64> frctg = Array1D<Real64>(maxgas);
526 : Array1D_int ipropg = Array1D_int(maxgas);
527 :
528 : Real64 rtot = 0.0;
529 : Real64 sft = 0.0;
530 : Real64 hcins = 0.0;
531 : Real64 hrins = 0.0;
532 : Real64 hins = 0.0;
533 : Real64 hcouts = 0.0;
534 : Real64 hrouts = 0.0;
535 : Real64 houts = 0.0;
536 : Real64 ufactors = 0.0;
537 : Real64 fluxs = 0.0;
538 : Real64 qeff = 0.0;
539 : Real64 flux_nonsolar = 0.0;
540 : Real64 cpa = 0.0;
541 : Real64 aveGlassConductivity = 0.0;
542 :
543 : int iFP = 0;
544 : int kFP = 0;
545 : std::string dynFormat;
546 :
547 796 : void init_state([[maybe_unused]] EnergyPlusData &state) override
548 : {
549 796 : }
550 :
551 0 : void clear_state() override
552 : {
553 0 : this->thetas = Array1D<Real64>(maxlay2);
554 0 : this->rir = Array1D<Real64>(maxlay2);
555 0 : this->hcgass = Array1D<Real64>(maxlay1);
556 0 : this->hrgass = Array1D<Real64>(maxlay1);
557 0 : this->rs = Array1D<Real64>(maxlay3, 0.0);
558 0 : this->qs = Array1D<Real64>(maxlay3);
559 0 : this->qvs = Array1D<Real64>(maxlay1);
560 0 : this->LaminateAU = Array1D<Real64>(maxlay);
561 0 : this->sumsolU = Array1D<Real64>(maxlay);
562 0 : this->sol0 = Array1D<Real64>(maxlay);
563 0 : this->qcgas = Array1D<Real64>(maxlay1);
564 0 : this->qcgaps = Array1D<Real64>(maxlay1);
565 0 : this->qrgas = Array1D<Real64>(maxlay1);
566 0 : this->qrgaps = Array1D<Real64>(maxlay1);
567 0 : this->Atop_NOSD = Array1D<Real64>(maxlay);
568 0 : this->Abot_NOSD = Array1D<Real64>(maxlay);
569 0 : this->Al_NOSD = Array1D<Real64>(maxlay);
570 0 : this->Ar_NOSD = Array1D<Real64>(maxlay);
571 0 : this->Ah_NOSD = Array1D<Real64>(maxlay);
572 0 : this->EffectiveOpenness_NOSD = Array1D<Real64>(maxlay);
573 0 : this->SlatThick_NOSD = Array1D<Real64>(maxlay);
574 0 : this->SlatWidth_NOSD = Array1D<Real64>(maxlay);
575 0 : this->SlatAngle_NOSD = Array1D<Real64>(maxlay);
576 0 : this->SlatCond_NOSD = Array1D<Real64>(maxlay);
577 0 : this->SlatSpacing_NOSD = Array1D<Real64>(maxlay);
578 0 : this->SlatCurve_NOSD = Array1D<Real64>(maxlay);
579 0 : this->vvent_NOSD = Array1D<Real64>(maxlay1);
580 0 : this->tvent_NOSD = Array1D<Real64>(maxlay1);
581 0 : this->qv_NOSD = Array1D<Real64>(maxlay1);
582 0 : this->q_NOSD = Array1D<Real64>(maxlay3);
583 0 : this->LayerType_NOSD = Array1D<TARCOGLayerType>(maxlay);
584 0 : this->gap_NOSD = Array1D<Real64>(maxlay);
585 0 : this->thick_NOSD = Array1D<Real64>(maxlay);
586 0 : this->scon_NOSD = Array1D<Real64>(maxlay);
587 0 : this->emis_NOSD = Array1D<Real64>(maxlay2);
588 0 : this->rir_NOSD = Array1D<Real64>(maxlay2);
589 0 : this->tir_NOSD = Array1D<Real64>(maxlay2);
590 0 : this->theta_NOSD = Array1D<Real64>(maxlay2);
591 0 : this->frct_NOSD = Array2D<Real64>(maxgas, maxlay1);
592 0 : this->iprop_NOSD = Array2D_int(maxgas, maxlay1);
593 0 : this->nmix_NOSD = Array1D_int(maxlay1);
594 0 : this->presure_NOSD = Array1D<Real64>(maxlay1);
595 0 : this->hcgas_NOSD = Array1D<Real64>(maxlay1);
596 0 : this->hrgas_NOSD = Array1D<Real64>(maxlay1);
597 0 : this->LaminateA_NOSD = Array1D<Real64>(maxlay);
598 0 : this->LaminateB_NOSD = Array1D<Real64>(maxlay);
599 0 : this->sumsol_NOSD = Array1D<Real64>(maxlay);
600 0 : this->Ra_NOSD = Array1D<Real64>(maxlay);
601 0 : this->Nu_NOSD = Array1D<Real64>(maxlay);
602 0 : this->Ebb = Array1D<Real64>(maxlay);
603 0 : this->Ebf = Array1D<Real64>(maxlay);
604 0 : this->Rb = Array1D<Real64>(maxlay);
605 0 : this->Rf = Array1D<Real64>(maxlay);
606 0 : this->Ebbs = Array1D<Real64>(maxlay);
607 0 : this->Ebfs = Array1D<Real64>(maxlay);
608 0 : this->Rbs = Array1D<Real64>(maxlay);
609 0 : this->Rfs = Array1D<Real64>(maxlay);
610 0 : this->Ebb_NOSD = Array1D<Real64>(maxlay);
611 0 : this->Ebf_NOSD = Array1D<Real64>(maxlay);
612 0 : this->Rb_NOSD = Array1D<Real64>(maxlay);
613 0 : this->Rf_NOSD = Array1D<Real64>(maxlay);
614 0 : this->ShadeGapKeffConv_NOSD = Array1D<Real64>(MaxGap);
615 0 : this->qcgas_NOSD = Array1D<Real64>(maxlay1);
616 0 : this->Keff_NOSD = Array1D<Real64>(maxlay1);
617 0 : this->qrgas_NOSD = Array1D<Real64>(maxlay1);
618 0 : this->nslice_NOSD = Array1D_int(maxlay);
619 0 : this->vfreevent_NOSD = Array1D<Real64>(maxlay1);
620 0 : this->vfreevent = Array1D<Real64>(maxlay1);
621 0 : this->Atop_eff = Array1D<Real64>(maxlay, 0.0);
622 0 : this->Abot_eff = Array1D<Real64>(maxlay, 0.0);
623 0 : this->Al_eff = Array1D<Real64>(maxlay, 0.0);
624 0 : this->Ar_eff = Array1D<Real64>(maxlay, 0.0);
625 0 : this->Ah_eff = Array1D<Real64>(maxlay, 0.0);
626 0 : this->EffectiveOpenness = Array1D<Real64>(maxlay, 0.0);
627 0 : this->hgas = Array1D<Real64>(maxlay1);
628 0 : this->Tgap = Array1D<Real64>(maxlay1);
629 0 : this->hcgapMod = Array1D<Real64>(maxlay1);
630 0 : this->hcv = Array1D<Real64>(maxlay1);
631 0 : this->iprop1 = Array1D_int(maxgas);
632 0 : this->frct1 = Array1D<Real64>(maxgas);
633 0 : this->frcti = Array1D<Real64>(maxgas);
634 0 : this->ipropi = Array1D_int(maxgas);
635 0 : this->frctg = Array1D<Real64>(maxgas);
636 0 : this->ipropg = Array1D_int(maxgas);
637 :
638 0 : this->rtot = 0.0;
639 0 : this->sft = 0.0;
640 0 : this->hcins = 0.0;
641 0 : this->hrins = 0.0;
642 0 : this->hins = 0.0;
643 0 : this->hcouts = 0.0;
644 0 : this->hrouts = 0.0;
645 0 : this->houts = 0.0;
646 0 : this->ufactors = 0.0;
647 0 : this->fluxs = 0.0;
648 0 : this->qeff = 0.0;
649 0 : this->flux_nonsolar = 0.0;
650 0 : this->cpa = 0.0;
651 0 : this->aveGlassConductivity = 0.0;
652 :
653 0 : this->iFP = 0;
654 0 : this->kFP = 0;
655 :
656 0 : this->dynFormat = "";
657 0 : }
658 : };
659 :
660 : } // namespace EnergyPlus
661 :
662 : #endif
|