-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDataHeatBalance.hh
More file actions
5401 lines (5187 loc) · 251 KB
/
DataHeatBalance.hh
File metadata and controls
5401 lines (5187 loc) · 251 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#ifndef DataHeatBalance_hh_INCLUDED
#define DataHeatBalance_hh_INCLUDED
// ObjexxFCL Headers
#include <ObjexxFCL/FArray1D.hh>
#include <ObjexxFCL/FArray2D.hh>
#include <ObjexxFCL/FArray3D.hh>
#include <ObjexxFCL/FArray4D.hh>
#include <ObjexxFCL/Optional.hh>
#include <ObjexxFCL/Reference.hh>
// EnergyPlus Headers
#include <EnergyPlus.hh>
#include <DataBSDFWindow.hh>
#include <DataComplexFenestration.hh>
#include <DataGlobals.hh>
#include <DataSurfaces.hh>
#include <DataVectorTypes.hh>
#include <DataWindowEquivalentLayer.hh>
namespace EnergyPlus {
namespace DataHeatBalance {
// Using/Aliasing
using namespace DataComplexFenestration;
using DataBSDFWindow::BSDFWindowInputStruct;
using DataComplexFenestration::GapDeflectionState;
using DataComplexFenestration::GapSupportPillar;
using DataComplexFenestration::WindowComplexShade;
using DataComplexFenestration::WindowThermalModelParams;
using DataGlobals::AutoCalculate;
using DataSurfaces::MaxSlatAngs;
using DataVectorTypes::Vector;
using DataWindowEquivalentLayer::CFSMAXNL;
// Data
// module should be available to other modules and routines. Thus,
// all variables in this module must be PUBLIC.
// MODULE PARAMETER DEFINITIONS:
// Parameters for the definition and limitation of arrays:
extern int const MaxLayersInConstruct; // Maximum number of layers allowed in a single construction
extern int const MaxCTFTerms; // Maximum number of CTF terms allowed to still allow stability
extern int MaxSolidWinLayers; // Maximum number of solid layers in a window construction
extern int const MaxSpectralDataElements; // Maximum number in Spectral Data arrays.
// Parameters to indicate material group type for use with the Material
// derived type (see below):
extern int const RegularMaterial;
extern int const Air;
extern int const Shade;
extern int const WindowGlass;
extern int const WindowGas;
extern int const WindowBlind;
extern int const WindowGasMixture;
extern int const Screen;
extern int const EcoRoof;
extern int const IRTMaterial;
extern int const WindowSimpleGlazing;
extern int const ComplexWindowShade;
extern int const ComplexWindowGap;
extern int const GlassEquivalentLayer;
extern int const ShadeEquivalentLayer;
extern int const DrapeEquivalentLayer;
extern int const BlindEquivalentLayer;
extern int const ScreenEquivalentLayer;
extern int const GapEquivalentLayer;
extern FArray1D_string const cMaterialGroupType;
// Parameters to indicate surface roughness for use with the Material
// derived type (see below):
extern int const VeryRough;
extern int const Rough;
extern int const MediumRough;
extern int const MediumSmooth;
extern int const Smooth;
extern int const VerySmooth;
// Parameters to indicate blind orientation for use with the Material
// derived type (see below):
extern int const Horizontal;
extern int const Vertical;
extern int const FixedSlats;
extern int const VariableSlats;
// Parameters for Interior and Exterior Solar Distribution
extern int const MinimalShadowing; // all incoming solar hits floor, no exterior shadowing except reveals
extern int const FullExterior; // all incoming solar hits floor, full exterior shadowing
extern int const FullInteriorExterior; // full interior solar distribution, full exterior solar shadowing
extern int const FullExteriorWithRefl; // all incoming solar hits floor, full exterior shadowing and reflections
extern int const FullInteriorExteriorWithRefl; // full interior solar distribution,
// full exterior shadowing and reflections
// Parameters to indicate the zone type for use with the Zone derived
// type (see below--Zone%OfType):
extern int const StandardZone;
//INTEGER, PARAMETER :: PlenumZone = 2
//INTEGER, PARAMETER :: SolarWallZone = 11 ! from old ZTYP, OSENV
//INTEGER, PARAMETER :: RoofPondZone = 12 ! from old ZTYP, OSENV
// Parameters to indicate the convection correlation being used for use with
// InsideConvectionAlgo and OutsideConvectionAlgo
extern int const ASHRAESimple;
extern int const ASHRAETARP;
extern int const CeilingDiffuser; // Only valid for inside use
extern int const TrombeWall; // Only valid for inside use
extern int const TarpHcOutside; // Only valid for outside use
extern int const MoWiTTHcOutside; // Only valid for outside use
extern int const DOE2HcOutside; // Only valid for outside use
extern int const BLASTHcOutside; // Only valid for outside use
extern int const AdaptiveConvectionAlgorithm;
// Parameters for WarmupDays
extern int const DefaultMaxNumberOfWarmupDays; // Default maximum number of warmup days allowed
extern int const DefaultMinNumberOfWarmupDays; // Default minimum number of warmup days allowed
// Parameters for Sky Radiance Distribution
extern int const Isotropic;
extern int const Anisotropic;
// Parameters for HeatTransferAlgosUsed
extern int const UseCTF;
extern int const UseEMPD;
extern int const UseCondFD;
extern int const UseHAMT;
// Parameters for ZoneAirSolutionAlgo
extern int const Use3rdOrder;
extern int const UseAnalyticalSolution;
extern int const UseEulerMethod;
// Parameter for MRT calculation type
extern int const ZoneAveraged;
extern int const SurfaceWeighted;
extern int const AngleFactor;
// Parameters for Ventilation
extern int const NaturalVentilation;
extern int const IntakeVentilation;
extern int const ExhaustVentilation;
extern int const BalancedVentilation;
// Parameters for hybrid ventilation using Ventilation and Mixing objects
extern int const HybridControlTypeIndiv;
extern int const HybridControlTypeClose;
extern int const HybridControlTypeGlobal;
// System type, detailed refrigeration or refrigerated case rack
extern int const RefrigSystemTypeDetailed;
extern int const RefrigSystemTypeRack;
// Refrigeration condenser type
extern int const RefrigCondenserTypeAir;
extern int const RefrigCondenserTypeEvap;
extern int const RefrigCondenserTypeWater;
extern int const RefrigCondenserTypeCascade;
// Parameters for type of infiltration model
extern int const InfiltrationDesignFlowRate;
extern int const InfiltrationShermanGrimsrud;
extern int const InfiltrationAIM2;
// Parameters for type of ventilation model
extern int const VentilationDesignFlowRate;
extern int const VentilationWindAndStack;
// Parameters for type of zone air balance model
extern int const AirBalanceNone;
extern int const AirBalanceQuadrature;
// Parameter for source zone air flow mass balance infiltration treatment
extern int const AddInfiltrationFlow;
extern int const AdjustInfiltrationFlow;
extern int const NumZoneIntGainDeviceTypes;
extern FArray1D_string const ZoneIntGainDeviceTypes; // 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45
extern FArray1D_string const ccZoneIntGainDeviceTypes; // 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45
extern int const IntGainTypeOf_People;
extern int const IntGainTypeOf_Lights;
extern int const IntGainTypeOf_ElectricEquipment;
extern int const IntGainTypeOf_GasEquipment;
extern int const IntGainTypeOf_HotWaterEquipment;
extern int const IntGainTypeOf_SteamEquipment;
extern int const IntGainTypeOf_OtherEquipment;
extern int const IntGainTypeOf_ZoneBaseboardOutdoorTemperatureControlled;
extern int const IntGainTypeOf_ZoneContaminantSourceAndSinkCarbonDioxide;
extern int const IntGainTypeOf_WaterUseEquipment;
extern int const IntGainTypeOf_DaylightingDeviceTubular;
extern int const IntGainTypeOf_WaterHeaterMixed;
extern int const IntGainTypeOf_WaterHeaterStratified;
extern int const IntGainTypeOf_ThermalStorageChilledWaterMixed;
extern int const IntGainTypeOf_ThermalStorageChilledWaterStratified;
extern int const IntGainTypeOf_GeneratorFuelCell;
extern int const IntGainTypeOf_GeneratorMicroCHP;
extern int const IntGainTypeOf_ElectricLoadCenterTransformer;
extern int const IntGainTypeOf_ElectricLoadCenterInverterSimple;
extern int const IntGainTypeOf_ElectricLoadCenterInverterFunctionOfPower;
extern int const IntGainTypeOf_ElectricLoadCenterInverterLookUpTable;
extern int const IntGainTypeOf_ElectricLoadCenterStorageBattery;
extern int const IntGainTypeOf_ElectricLoadCenterStorageSimple;
extern int const IntGainTypeOf_PipeIndoor;
extern int const IntGainTypeOf_RefrigerationCase;
extern int const IntGainTypeOf_RefrigerationCompressorRack;
extern int const IntGainTypeOf_RefrigerationSystemAirCooledCondenser;
extern int const IntGainTypeOf_RefrigerationTransSysAirCooledGasCooler;
extern int const IntGainTypeOf_RefrigerationSystemSuctionPipe;
extern int const IntGainTypeOf_RefrigerationTransSysSuctionPipeMT;
extern int const IntGainTypeOf_RefrigerationTransSysSuctionPipeLT;
extern int const IntGainTypeOf_RefrigerationSecondaryReceiver;
extern int const IntGainTypeOf_RefrigerationSecondaryPipe;
extern int const IntGainTypeOf_RefrigerationWalkIn;
extern int const IntGainTypeOf_Pump_VarSpeed;
extern int const IntGainTypeOf_Pump_ConSpeed;
extern int const IntGainTypeOf_Pump_Cond;
extern int const IntGainTypeOf_PumpBank_VarSpeed;
extern int const IntGainTypeOf_PumpBank_ConSpeed;
extern int const IntGainTypeOf_ZoneContaminantSourceAndSinkGenericContam;
extern int const IntGainTypeOf_PlantComponentUserDefined;
extern int const IntGainTypeOf_CoilUserDefined;
extern int const IntGainTypeOf_ZoneHVACForcedAirUserDefined;
extern int const IntGainTypeOf_AirTerminalUserDefined;
extern int const IntGainTypeOf_PackagedTESCoilTank;
//Parameters for checking surface heat transfer models
extern Real64 const HighDiffusivityThreshold; // used to check if Material properties are out of line.
extern Real64 const ThinMaterialLayerThreshold; // 3 mm lower limit to expected material layers
// DERIVED TYPE DEFINITIONS:
// thermochromic windows
// For predefined tabular reporting
// DERIVED TYPE DEFINITIONS:
// MODULE VARIABLE DECLARATIONS:
// MODULE VARIABLE Type DECLARATIONS:
// INTERFACE BLOCK SPECIFICATIONS:
// na
// MODULE VARIABLE DECLARATIONS:
// SiteData aka building data
extern Real64 LowHConvLimit; // Lowest allowed convection coefficient for detailed model
// before reverting to the simple model. This avoids a
// divide by zero elsewhere. Not based on any physical
// reasoning, just the number that was picked. It corresponds
// to a delta T for a vertical surface of 0.000444C.
//REAL(r64), PARAMETER :: LowHConvLimit = 1.0 !W/m2-K Lowest allowed natural convection coefficient
// ! A lower limit is needed to avoid numerical problems
// ! Natural convection correlations are a function of temperature difference,
// ! there are many times when those temp differences pass through zero leading to non-physical results
// ! Value of 1.0 chosen here is somewhat arbitrary, but based on the following reasons:
// ! 1) Low values of HconvIn indicate a layer of high thermal resistance, however
// ! the R-value of a convection film layer should be relatively low (compared to building surfaces)
// ! 2) The value of 1.0 corresponds to the thermal resistance of 0.05 m of batt insulation
// ! 3) Limit on the order of 1.0 is suggested by the abrupt changes in an inverse relationship
// ! 4) A conduction-only analysis can model a limit by considering the thermal performance of
// ! boundary layer to be pure conduction (with no movement to enhance heat transfer);
// ! Taking the still gas thermal conductivity for air at 0.0267 W/m-K (at 300K), then
// ! this limit of 1.0 corresponds to a completely still layer of air that is around 0.025 m thick
// ! 5) The previous limit of 0.1 (before ver. 3.1) caused loads initialization problems in test files
extern Real64 HighHConvLimit; // upper limit for HConv, mostly used for user input limits in practics. !W/m2-K
extern Real64 MaxAllowedDelTempCondFD; // Convergence criteria for inside surface temperatures for CondFD
extern std::string BuildingName; // Name of building
extern Real64 BuildingAzimuth; // North Axis of Building
extern Real64 LoadsConvergTol; // Tolerance value for Loads Convergence
extern Real64 TempConvergTol; // Tolerance value for Temperature Convergence
extern int DefaultInsideConvectionAlgo; // 1 = simple (ASHRAE); 2 = detailed (ASHRAE); 3 = ceiling diffuser;
// 4 = trombe wall
extern int DefaultOutsideConvectionAlgo; // 1 = simple (ASHRAE); 2 = detailed; etc (BLAST, TARP, MOWITT, DOE-2)
extern int SolarDistribution; // Solar Distribution Algorithm
extern int InsideSurfIterations; // Counts inside surface iterations
extern int OverallHeatTransferSolutionAlgo; // UseCTF Solution, UseEMPD moisture solution, UseCondFD solution
extern int NumberOfHeatTransferAlgosUsed;
extern FArray1D_int HeatTransferAlgosUsed;
extern int MaxNumberOfWarmupDays; // Maximum number of warmup days allowed
extern int MinNumberOfWarmupDays; // Minimum number of warmup days allowed
extern Real64 CondFDRelaxFactor; // Relaxation factor, for looping across all the surfaces.
extern Real64 CondFDRelaxFactorInput; // Relaxation factor, for looping across all the surfaces, user input value
//LOGICAL :: CondFDVariableProperties = .FALSE. ! if true, then variable conductivity or enthalpy in Cond FD.
extern int ZoneAirSolutionAlgo; // ThirdOrderBackwardDifference, AnalyticalSolution, and EulerMethod
extern Real64 BuildingRotationAppendixG; // Building Rotation for Appendix G
extern bool ZoneAirMassBalanceSimulation; // if true, then enforces zone mass flow conservation
//END SiteData
extern int NumOfZoneLists; // Total number of zone lists
extern int NumOfZoneGroups; // Total number of zone groups
extern int NumPeopleStatements; // Number of People objects in input - possibly global assignments
extern int NumLightsStatements; // Number of Lights objects in input - possibly global assignments
extern int NumZoneElectricStatements; // Number of ZoneElectric objects in input - possibly global assignments
extern int NumZoneGasStatements; // Number of ZoneGas objects in input - possibly global assignments
extern int NumInfiltrationStatements; // Number of Design Flow Infiltration objects in input - possibly global assignments
extern int NumVentilationStatements; // Number of Design Flow Ventilation objects in input - possibly global assignments
extern int NumHotWaterEqStatements; // number of Hot Water Equipment objects in input. - possibly global assignments
extern int NumSteamEqStatements; // number of Steam Equipment objects in input. - possibly global assignments
extern int NumOtherEqStatements; // number of Other Equipment objects in input. - possibly global assignments
extern int TotPeople; // Total People Statements in input and extrapolated from global assignments
extern int TotLights; // Total Lights Statements in input and extrapolated from global assignments
extern int TotElecEquip; // Total Electric Equipment Statements in input and extrapolated from global assignments
extern int TotGasEquip; // Total Gas Equipment Statements in input
extern int TotOthEquip; // Total Other Equipment Statements in input
extern int TotHWEquip; // Total Hot Water Equipment Statements in input
extern int TotStmEquip; // Total Steam Equipment Statements in input
extern int TotInfiltration; // Total Infiltration Statements in input and extrapolated from global assignments
extern int TotDesignFlowInfiltration; // number of Design Flow rate ZoneInfiltration in input
extern int TotShermGrimsInfiltration; // number of Sherman Grimsrud (ZoneInfiltration:ResidentialBasic) in input
extern int TotAIM2Infiltration; // number of AIM2 (ZoneInfiltration:ResidentialEnhanced) in input
extern int TotVentilation; // Total Ventilation Statements in input
extern int TotDesignFlowVentilation; // number of Design Flow rate ZoneVentilation in input
extern int TotWindAndStackVentilation; // number of wind and stack open area ZoneVentilation in input
extern int TotMixing; // Total Mixing Statements in input
extern int TotCrossMixing; // Total Cross Mixing Statements in input
extern int TotRefDoorMixing; // Total RefrigerationDoor Mixing Statements in input
extern int TotBBHeat; // Total BBHeat Statements in input
extern int TotMaterials; // Total number of unique materials (layers) in this simulation
extern int TotConstructs; // Total number of unique constructions in this simulation
extern int TotSpectralData; // Total window glass spectral data sets
extern int W5GlsMat; // Window5 Glass Materials, specified by transmittance and front and back reflectance
extern int W5GlsMatAlt; // Window5 Glass Materials, specified by index of refraction and extinction coeff
extern int W5GasMat; // Window5 Single-Gas Materials
extern int W5GasMatMixture; // Window5 Gas Mixtures
extern int W7SupportPillars; // Complex fenestration support pillars
extern int W7DeflectionStates; // Complex fenestration deflection states
extern int W7MaterialGaps; // Complex fenestration material gaps
extern int TotBlinds; // Total number of blind materials
extern int TotScreens; // Total number of exterior window screen materials
extern int TotTCGlazings; // Number of TC glazing object - WindowMaterial:Glazing:Thermochromic found in the idf file
extern int NumSurfaceScreens; // Total number of screens on exterior windows
extern int TotShades; // Total number of shade materials
extern int TotComplexShades; // Total number of shading materials for complex fenestrations
extern int TotComplexGaps; // Total number of window gaps for complex fenestrations
extern int TotSimpleWindow; // number of simple window systems.
extern int W5GlsMatEQL; // Window5 Single-Gas Materials for Equivalent Layer window model
extern int TotShadesEQL; // Total number of shade materials for Equivalent Layer window model
extern int TotDrapesEQL; // Total number of drape materials for Equivalent Layer window model
extern int TotBlindsEQL; // Total number of blind materials for Equivalent Layer window model
extern int TotScreensEQL; // Total number of exterior window screen materials for Equivalent Layer window model
extern int W5GapMatEQL; // Window5 Equivalent Layer Single-Gas Materials
extern int TotZoneAirBalance; // Total Zone Air Balance Statements in input
extern int TotFrameDivider; // Total number of window frame/divider objects
extern int AirFlowFlag;
extern int TotCO2Gen; // Total CO2 source and sink statements in input
extern bool CalcWindowRevealReflection; // True if window reveal reflection is to be calculated
// for at least one exterior window
extern bool StormWinChangeThisDay; // True if a storm window has been added or removed from any
// window during the current day; can only be true for first
// time step of the day.
extern bool AdaptiveComfortRequested_CEN15251; // true if people objects have adaptive comfort requests. CEN15251
extern bool AdaptiveComfortRequested_ASH55; // true if people objects have adaptive comfort requests. ASH55
extern int NumRefrigeratedRacks; // Total number of refrigerated case compressor racks in input
extern int NumRefrigSystems; // Total number of detailed refrigeration systems in input
extern int NumRefrigCondensers; // Total number of detailed refrigeration condensers in input
extern int NumRefrigChillerSets; // Total number of refrigerated warehouse coils in input
extern FArray1D< Real64 > SNLoadHeatEnergy;
extern FArray1D< Real64 > SNLoadCoolEnergy;
extern FArray1D< Real64 > SNLoadHeatRate;
extern FArray1D< Real64 > SNLoadCoolRate;
extern FArray1D< Real64 > SNLoadPredictedRate;
extern FArray1D< Real64 > SNLoadPredictedHSPRate; // Predicted load to heating setpoint (unmultiplied)
extern FArray1D< Real64 > SNLoadPredictedCSPRate; // Predicted load to cooling setpoint (unmultiplied)
extern FArray1D< Real64 > MoisturePredictedRate;
extern FArray1D< Real64 > ListSNLoadHeatEnergy;
extern FArray1D< Real64 > ListSNLoadCoolEnergy;
extern FArray1D< Real64 > ListSNLoadHeatRate;
extern FArray1D< Real64 > ListSNLoadCoolRate;
extern FArray1D< Real64 > GroupSNLoadHeatEnergy;
extern FArray1D< Real64 > GroupSNLoadCoolEnergy;
extern FArray1D< Real64 > GroupSNLoadHeatRate;
extern FArray1D< Real64 > GroupSNLoadCoolRate;
extern FArray1D< Real64 > MRT; // MEAN RADIANT TEMPERATURE (C)
extern FArray1D< Real64 > SUMAI; // 1 over the Sum of zone areas or 1/SumA
extern FArray1D< Real64 > ZoneTransSolar; // Exterior beam plus diffuse solar entering zone;
// sum of WinTransSolar for exterior windows in zone (W)
extern FArray1D< Real64 > ZoneWinHeatGain; // Heat gain to zone from all exterior windows (includes
// ZoneTransSolar); sum of WinHeatGain for exterior
// windows in zone (W)
extern FArray1D< Real64 > ZoneWinHeatGainRep; // = ZoneWinHeatGain when ZoneWinHeatGain >= 0
extern FArray1D< Real64 > ZoneWinHeatLossRep; // = -ZoneWinHeatGain when ZoneWinHeatGain < 0
extern FArray1D< Real64 > ZoneBmSolFrExtWinsRep; // Beam solar into zone from exterior windows [W]
extern FArray1D< Real64 > ZoneBmSolFrIntWinsRep; // Beam solar into zone from interior windows [W]
extern FArray1D< Real64 > InitialZoneDifSolReflW; // Initial diffuse solar in zone from ext and int windows
// reflected from interior surfaces [W]
extern FArray1D< Real64 > ZoneDifSolFrExtWinsRep; // Diffuse solar into zone from exterior windows [W]
extern FArray1D< Real64 > ZoneDifSolFrIntWinsRep; // Diffuse solar into zone from interior windows [W]
extern FArray1D< Real64 > ZoneOpaqSurfInsFaceCond; // Zone inside face opaque surface conduction (W)
extern FArray1D< Real64 > ZoneOpaqSurfInsFaceCondGainRep; // = Zone inside face opaque surface conduction when >= 0
extern FArray1D< Real64 > ZoneOpaqSurfInsFaceCondLossRep; // = -Zone inside face opaque surface conduction when < 0
extern FArray1D< Real64 > ZoneOpaqSurfExtFaceCond; // Zone outside face opaque surface conduction (W)
extern FArray1D< Real64 > ZoneOpaqSurfExtFaceCondGainRep; // = Zone outside face opaque surface conduction when >= 0
extern FArray1D< Real64 > ZoneOpaqSurfExtFaceCondLossRep; // = -Zone outside face opaque surface conduction when < 0
extern FArray1D< Real64 > QRadThermInAbs; // Thermal radiation absorbed on inside surfaces
extern FArray2D< Real64 > QRadSWwinAbs; // Short wave radiation absorbed in window glass layers
extern FArray2D< Real64 > InitialDifSolwinAbs; // Initial diffuse solar absorbed in window glass layers
// from inside(W/m2)
extern FArray1D< Real64 > QRadSWOutIncident; // Exterior beam plus diffuse solar incident on surface (W/m2)
extern FArray1D< Real64 > QRadSWOutIncidentBeam; // Exterior beam solar incident on surface (W/m2)
extern FArray1D< Real64 > BmIncInsSurfIntensRep; // Beam sol irrad from ext wins on inside of surface (W/m2)
extern FArray1D< Real64 > BmIncInsSurfAmountRep; // Beam sol amount from ext wins incident on inside of surface (W)
extern FArray1D< Real64 > IntBmIncInsSurfIntensRep; // Beam sol irrad from int wins on inside of surface (W/m2)
extern FArray1D< Real64 > IntBmIncInsSurfAmountRep; // Beam sol amount from int wins incident on inside of surface (W)
extern FArray1D< Real64 > QRadSWOutIncidentSkyDiffuse; // Exterior sky diffuse solar incident on surface (W/m2)
extern FArray1D< Real64 > QRadSWOutIncidentGndDiffuse; // Exterior ground diffuse solar incident on surface (W/m2)
extern FArray1D< Real64 > QRadSWOutIncBmToDiffReflGnd; // Exterior diffuse solar incident from beam to diffuse
// reflection from ground (W/m2)
extern FArray1D< Real64 > QRadSWOutIncSkyDiffReflGnd; // Exterior diffuse solar incident from sky diffuse
// reflection from ground (W/m2)
extern FArray1D< Real64 > QRadSWOutIncBmToBmReflObs; // Exterior beam solar incident from beam-to-beam
// reflection from obstructions (W/m2)
extern FArray1D< Real64 > QRadSWOutIncBmToDiffReflObs; // Exterior diffuse solar incident from beam-to-diffuse
// reflection from obstructions (W/m2)
extern FArray1D< Real64 > QRadSWOutIncSkyDiffReflObs; // Exterior diffuse solar incident from sky diffuse
// reflection from obstructions (W/m2)
extern FArray1D< Real64 > CosIncidenceAngle; // Cosine of beam solar incidence angle (for reporting)
extern FArray1D_int BSDFBeamDirectionRep; // BSDF beam direction number for given complex fenestration state (for reporting) []
extern FArray1D< Real64 > BSDFBeamThetaRep; // BSDF beam Theta angle (for reporting) [rad]
extern FArray1D< Real64 > BSDFBeamPhiRep; // BSDF beam Phi angle (for reporting) [rad]
extern FArray1D< Real64 > QRadSWwinAbsTot; // Exterior beam plus diffuse solar absorbed in glass layers of window (W)
extern FArray2D< Real64 > QRadSWwinAbsLayer; // Exterior beam plus diffuse solar absorbed in glass layers of window (W)
extern FArray2D< Real64 > FenLaySurfTempFront; // Front surface temperatures of fenestration layers
extern FArray2D< Real64 > FenLaySurfTempBack; // Back surface temperatures of fenestration layers
extern FArray1D< Real64 > ZoneTransSolarEnergy; // Energy of ZoneTransSolar [J]
extern FArray1D< Real64 > ZoneWinHeatGainRepEnergy; // Energy of ZoneWinHeatGainRep [J]
extern FArray1D< Real64 > ZoneWinHeatLossRepEnergy; // Energy of ZoneWinHeatLossRep [J]
extern FArray1D< Real64 > ZoneBmSolFrExtWinsRepEnergy; // Energy of ZoneBmSolFrExtWinsRep [J]
extern FArray1D< Real64 > ZoneBmSolFrIntWinsRepEnergy; // Energy of ZoneBmSolFrIntWinsRep [J]
extern FArray1D< Real64 > ZoneDifSolFrExtWinsRepEnergy; // Energy of ZoneDifSolFrExtWinsRep [J]
extern FArray1D< Real64 > ZoneDifSolFrIntWinsRepEnergy; // Energy of ZoneDifSolFrIntWinsRep [J]
extern FArray1D< Real64 > ZnOpqSurfInsFaceCondGnRepEnrg; // Energy of ZoneOpaqSurfInsFaceCondGainRep [J]
extern FArray1D< Real64 > ZnOpqSurfInsFaceCondLsRepEnrg; // Energy of ZoneOpaqSurfInsFaceCondLossRep [J]
extern FArray1D< Real64 > ZnOpqSurfExtFaceCondGnRepEnrg; // Energy of ZoneOpaqSurfInsFaceCondGainRep [J]
extern FArray1D< Real64 > ZnOpqSurfExtFaceCondLsRepEnrg; // Energy of ZoneOpaqSurfInsFaceCondLossRep [J]
extern FArray1D< Real64 > BmIncInsSurfAmountRepEnergy; // energy of BmIncInsSurfAmountRep [J]
extern FArray1D< Real64 > IntBmIncInsSurfAmountRepEnergy; // energy of IntBmIncInsSurfAmountRep [J]
extern FArray1D< Real64 > QRadSWwinAbsTotEnergy; // Energy of QRadSWwinAbsTot [J]
extern FArray1D< Real64 > SWwinAbsTotalReport; // Report - Total interior/exterior shortwave
//absorbed in all glass layers of window (W)
extern FArray1D< Real64 > InitialDifSolInAbsReport; // Report - Initial transmitted diffuse solar
//absorbed on inside of surface (W)
extern FArray1D< Real64 > InitialDifSolInTransReport; // Report - Initial transmitted diffuse solar
//transmitted out through inside of window surface (W)
extern FArray1D< Real64 > SWInAbsTotalReport; // Report - Total interior/exterior shortwave
//absorbed on inside of surface (W)
extern FArray1D< Real64 > SWOutAbsTotalReport; // Report - Total exterior shortwave/solar
//absorbed on outside of surface (W)
extern FArray1D< Real64 > SWOutAbsEnergyReport; // Report - Total exterior shortwave/solar
//absorbed on outside of surface (j)
extern FArray1D< Real64 > NominalR; // Nominal R value of each material -- used in matching interzone surfaces
extern FArray1D< Real64 > NominalRforNominalUCalculation; // Nominal R values are summed to calculate NominalU values for constructions
extern FArray1D< Real64 > NominalU; // Nominal U value for each construction -- used in matching interzone surfaces
// removed variables (these were all arrays):
//REAL(r64), ALLOCATABLE, :: DifIncInsSurfIntensRep !Diffuse sol irradiance from ext wins on inside of surface (W/m2)
//REAL(r64), ALLOCATABLE, :: DifIncInsSurfAmountRep !Diffuse sol amount from ext wins on inside of surface (W)
//REAL(r64), ALLOCATABLE, :: IntDifIncInsSurfIntensRep !Diffuse sol irradiance from int wins on inside of surface (W/m2)
//REAL(r64), ALLOCATABLE, :: IntDifIncInsSurfAmountRep !Diffuse sol amount from int wins on inside of surface (W)
//REAL(r64), ALLOCATABLE, :: DifIncInsSurfAmountRepEnergy !energy of DifIncInsSurfAmountRep [J]
//REAL(r64), ALLOCATABLE, :: IntDifIncInsSurfAmountRepEnergy !energy of IntDifIncInsSurfAmountRep [J]
// Variables moved from HeatBalanceSurfaceManager and SolarShading
// to avoid conflict with their use in WindowManager
extern FArray1D< Real64 > TempEffBulkAir; // air temperature adjacent to the surface used for
// inside surface heat balances
extern FArray1D< Real64 > HConvIn; // INSIDE CONVECTION COEFFICIENT
extern FArray1D< Real64 > AnisoSkyMult; // Multiplier on exterior-surface sky view factor to
// account for anisotropy of sky radiance; = 1.0 for
// for isotropic sky
// Moved from SolarShading to avoid conflicts in DaylightingDevices
extern FArray1D< Real64 > DifShdgRatioIsoSky; // Diffuse shading ratio (WithShdgIsoSky/WoShdgIsoSky)
extern FArray3D< Real64 > DifShdgRatioIsoSkyHRTS; // Diffuse shading ratio (WithShdgIsoSky/WoShdgIsoSky)
extern FArray1D< Real64 > curDifShdgRatioIsoSky; // Diffuse shading ratio (WithShdgIsoSky/WoShdgIsoSky)
extern FArray1D< Real64 > DifShdgRatioHoriz; // Horizon shading ratio (WithShdgHoriz/WoShdgHoriz)
extern FArray3D< Real64 > DifShdgRatioHorizHRTS; // Horizon shading ratio (WithShdgHoriz/WoShdgHoriz)
extern FArray1D< Real64 > WithShdgIsoSky; // Diffuse solar irradiance from sky on surface, with shading
extern FArray1D< Real64 > WoShdgIsoSky; // Diffuse solar from sky on surface, without shading
extern FArray1D< Real64 > WithShdgHoriz; // Diffuse solar irradiance from horizon portion of sky on surface,
// with shading
extern FArray1D< Real64 > WoShdgHoriz; // Diffuse solar irradiance from horizon portion of sky on surface,
// without shading
extern FArray1D< Real64 > MultIsoSky; // Contribution to eff sky view factor from isotropic sky
extern FArray1D< Real64 > MultCircumSolar; // Contribution to eff sky view factor from circumsolar brightening
extern FArray1D< Real64 > MultHorizonZenith; // Contribution to eff sky view factor from horizon or zenith brightening
extern FArray1D< Real64 > QS; // Zone short-wave flux density; used to calculate short-wave
// radiation absorbed on inside surfaces of zone
extern FArray1D< Real64 > QSLights; // Like QS, but Lights short-wave only.
extern FArray1D< Real64 > QSDifSol; // Like QS, but diffuse solar short-wave only.
extern FArray1D< Real64 > ITABSF; // FRACTION OF THERMAL FLUX ABSORBED (PER UNIT AREA)
extern FArray1D< Real64 > TMULT; // TMULT - MULTIPLIER TO COMPUTE 'ITABSF'
extern FArray1D< Real64 > QL; // TOTAL THERMAL RADIATION ADDED TO ZONE
extern FArray2D< Real64 > SunlitFracHR; // Hourly fraction of heat transfer surface that is sunlit
extern FArray2D< Real64 > CosIncAngHR; // Hourly cosine of beam radiation incidence angle on surface
extern FArray3D< Real64 > SunlitFrac; // TimeStep fraction of heat transfer surface that is sunlit
extern FArray3D< Real64 > SunlitFracWithoutReveal; // For a window with reveal, the sunlit fraction
// without shadowing by the reveal
extern FArray3D< Real64 > CosIncAng; // TimeStep cosine of beam radiation incidence angle on surface
extern FArray4D_int BackSurfaces; // For a given hour and timestep, a list of up to 20 surfaces receiving
// beam solar radiation from a given exterior window
extern FArray4D< Real64 > OverlapAreas; // For a given hour and timestep, the areas of the exterior window sending
// beam solar radiation to the surfaces listed in BackSurfaces
// Air Argon Krypton Xenon
extern FArray2D< Real64 > const GasCoeffsCon; // Gas conductivity coefficients for gases in a mixture
// Air Argon Krypton Xenon
extern FArray2D< Real64 > const GasCoeffsVis; // Gas viscosity coefficients for gases in a mixture
// Air Argon Krypton Xenon
extern FArray2D< Real64 > const GasCoeffsCp; // Gas specific heat coefficients for gases in a mixture
// Air Argon Krypton Xenon
extern FArray1D< Real64 > const GasWght; // Gas molecular weights for gases in a mixture
extern FArray1D< Real64 > const GasSpecificHeatRatio; // Gas specific heat ratios. Used for gasses in low pressure
//Variables Dimensioned to Number of Zones
extern FArray1D< Real64 > MVFC; // Design Mixing Flow Rate [m3/s] (Cross Zone Mixing)
extern FArray1D< Real64 > MTC; // Control Temperature For Mixing [C] (Cross Zone Mixing)
extern Real64 ZeroPointerVal;
// SUBROUTINE SPECIFICATIONS FOR MODULE DataHeatBalance:
// Types
struct MaterialProperties
{
// Members
std::string Name; // Name of material layer
int Group; // Material group type (see Material Parameters above. Currently
// active: RegularMaterial, Shade, Air, WindowGlass,
// WindowGas, WindowBlind, WindowGasMixture, Screen, EcoRoof,
// IRTMaterial, WindowSimpleGlazing, ComplexWindowShade, ComplexWindowGap)
int Roughness; // Surface roughness index (See Surface Roughness parameters
// above. Current: VerySmooth, Smooth, MediumSmooth,
// MediumRough, Rough, VeryRough)
// Thermo-physical material properties
Real64 Conductivity; // Thermal conductivity of layer (W/m2K)
Real64 Density; // Layer density (kg/m3)
Real64 IsoMoistCap; // Isothermal moisture capacity on water vapor density (m3/kg)
Real64 Porosity; // Layer porosity
Real64 Resistance; // Layer thermal resistance (alternative to Density,
// Conductivity, Thickness, and Specific Heat; K/W)
bool ROnly; // Material defined with "R" only
Real64 SpecHeat; // Layer specific heat (J/kgK)
Real64 ThermGradCoef; // Thermal-gradient coefficient for moisture capacity
// based on the water vapor density (kg/kgK)
Real64 Thickness; // Layer thickness (m)
Real64 VaporDiffus; // Layer vapor diffusivity
FArray1D_int GasType; // Gas type (air=1, argon=2, krypton=3, xenon=4, custom=0) for
// up to 5 gases in a mixture [Window gas only]. It is defined as parameter (GasCoefs)
int GlassSpectralDataPtr; // Number of a spectral data set associated with a window glass material
int NumberOfGasesInMixture; // Number of gases in a window gas mixture
FArray2D< Real64 > GasCon; // Gas conductance coefficients for up to 5 gases in a mixture
FArray2D< Real64 > GasVis; // Gas viscosity coefficients for up to 5 gases in a mixture
FArray2D< Real64 > GasCp; // Gas specific-heat coefficients for up to 5 gases in a mixture
FArray1D< Real64 > GasWght; // Gas molecular weight for up to 5 gases in a mixture
FArray1D< Real64 > GasSpecHeatRatio; // Gas specific heat ratio (used for low pressure calculations)
FArray1D< Real64 > GasFract; // Gas fractions for up to 5 gases in a mixture
// Radiation parameters
Real64 AbsorpSolar; // Layer solar absorptance
Real64 AbsorpSolarInput; // Layer solar absorptance input by user
bool AbsorpSolarEMSOverrideOn; // if true, then EMS calling to override value for solar absorptance
Real64 AbsorpSolarEMSOverride; // value to use when EMS calling to override value for solar absorptance
Real64 AbsorpThermal; // Layer thermal absorptance
Real64 AbsorpThermalInput; // Layer thermal absorptance input by user
bool AbsorpThermalEMSOverrideOn; // if true, then EMS calling to override value for thermal absorptance
Real64 AbsorpThermalEMSOverride; // value to use when EMS calling to override value for thermal absorptance
Real64 AbsorpVisible; // Layer Visible Absorptance
Real64 AbsorpVisibleInput; // Layer Visible Absorptance input by user
bool AbsorpVisibleEMSOverrideOn; // if true, then EMS calling to override value for visible absorptance
Real64 AbsorpVisibleEMSOverride; // value to use when EMS calling to override value for visible absorptance
// Window-related radiation parameters
Real64 Trans; // Transmittance of layer (glass, shade)
Real64 TransVis; // Visible transmittance (at normal incidence)
Real64 GlassTransDirtFactor; // Multiplier on glass transmittance due to dirt
bool SolarDiffusing; // True if glass diffuses beam solar radiation
Real64 ReflectShade; // Shade or screen reflectance (interior shade only)
Real64 ReflectShadeVis; // Shade reflectance for visible radiation
Real64 AbsorpThermalBack; // Infrared radiation back absorption
Real64 AbsorpThermalFront; // Infrared radiation front absorption
Real64 ReflectSolBeamBack; // Solar back reflectance (beam to everything)
Real64 ReflectSolBeamFront; // Solar front reflectance (beam to everything)
Real64 ReflectSolDiffBack; // Solar back diffuse reflectance
Real64 ReflectSolDiffFront; // Solar front diffuse reflectance
Real64 ReflectVisBeamBack; // Visible back reflectance (beam to everything)
Real64 ReflectVisBeamFront; // Visible front reflectance (beam to everything)
Real64 ReflectVisDiffBack; // Visible back diffuse reflectance
Real64 ReflectVisDiffFront; // Visible front diffuse reflectance
std::string ReflectanceModeling; // method used to account for screen scattering
Real64 TransSolBeam; // Solar transmittance (beam to everything)
Real64 TransThermal; // Infrared radiation transmittance
Real64 TransVisBeam; // Visible transmittance (beam to everything)
int BlindDataPtr; // Pointer to window blind data
int ScreenDataPtr; // Pointer to window screen data
int ScreenMapResolution; // Resolution of azimuth and altitude angles to print in transmittance map
// Complex fenestration parameters
Real64 YoungModulus; // Young's modulus (Pa) - used in window deflection calculations
Real64 PoissonsRatio; // Poisson's ratio - used in window deflection calculations
Real64 DeflectedThickness; // Minimum gap thickness in deflected state (m). Used with measured deflection
Real64 Pressure; // Window Gap pressure (Pa)
int SupportPillarPtr; // Pointer to support pillar data
int DeflectionStatePtr; // Pointer to deflection state
int ComplexShadePtr; // Pointer to complex shade data
int GasPointer; // Pointer to gas or gas mixture used in the gap
// Window-shade thermal model parameters
Real64 WinShadeToGlassDist; // Distance between window shade and adjacent glass (m)
Real64 WinShadeTopOpeningMult; // Area of air-flow opening at top of shade, expressed as a fraction
// of the shade-to-glass opening area at the top of the shade
Real64 WinShadeBottomOpeningMult; // Area of air-flow opening at bottom of shade, expressed as a fraction
// of the shade-to-glass opening area at the bottom of the shade
Real64 WinShadeLeftOpeningMult; // Area of air-flow opening at left side of shade, expressed as a fraction
// of the shade-to-glass opening area at the left side of the shade
Real64 WinShadeRightOpeningMult; // Area of air-flow opening at right side of shade, expressed as a fraction
// of the shade-to-glass opening area at the right side of the shade
Real64 WinShadeAirFlowPermeability; // The effective area of openings in the shade itself, expressed as a
// fraction of the shade area
bool EMPDMaterialProps; // True if EMPD properties have been assigned
Real64 EMPDVALUE;
Real64 MoistACoeff;
Real64 MoistBCoeff;
Real64 MoistCCoeff;
Real64 MoistDCoeff;
Real64 EMPDaCoeff;
Real64 EMPDbCoeff;
Real64 EMPDcCoeff;
Real64 EMPDdCoeff;
// EcoRoof-Related properties, essentially for the plant layer,
// the soil layer uses the same resource as a regular material
int EcoRoofCalculationMethod; // 1-Simple, 2-SchaapGenuchten
Real64 HeightOfPlants; // plants' height
Real64 LAI; // LeafAreaIndex (Dimensionless???)
Real64 Lreflectivity; // LeafReflectivity
Real64 LEmissitivity; // LeafEmissivity
Real64 InitMoisture; // Initial soil moisture DJS
Real64 MinMoisture; // Minimum moisture allowed DJS
Real64 RStomata; // Minimum stomatal resistance DJS
//***--- PlantCoverage, VWC_FieldCapacity, SW_ExtCoeff, and LW_ExtCoeff are added for
//***--- the 'GreenRoof_with_PlantCoverage' model (Neda Yaghoobian 2014)
Real64 PlantCoverage; //= 0.0d0 //Plant coverage
Real64 VWC_FieldCapacity; //= 0.0d0 //VWC at field capacity
Real64 SW_ExtCoeff; //= 0.0d0 //SW extinction coefficient
Real64 LW_ExtCoeff; //= 0.0d0 //LW extinction coefficient
// HAMT
int niso; // Number of data points
FArray1D< Real64 > isodata; // isotherm values
FArray1D< Real64 > isorh; // isotherm RH values
int nsuc; // Number of data points
FArray1D< Real64 > sucdata; // suction values
FArray1D< Real64 > sucwater; // suction water values
int nred; // Number of data points
FArray1D< Real64 > reddata; // redistribution values
FArray1D< Real64 > redwater; // redistribution water values
int nmu; // Number of data points
FArray1D< Real64 > mudata; // mu values
FArray1D< Real64 > murh; // mu rh values
int ntc; // Number of data points
FArray1D< Real64 > tcdata; // thermal conductivity values
FArray1D< Real64 > tcwater; // thermal conductivity water values
Real64 itemp; // initial Temperature
Real64 irh; // Initial RH
Real64 iwater; // Initial water content kg/kg
int divs; // Number of divisions
Real64 divsize; // Average Cell Size
int divmin; // Minimum number of cells
int divmax; // Maximum number of cells
// Added 12/22/2008 for thermochromic window glazing material
Real64 SpecTemp; // Temperature corresponding to the specified material properties
int TCParent; // Reference to the parent object WindowMaterial:Glazing:Thermochromic
// Simple Glazing System
Real64 SimpleWindowUfactor; // user input for simple window U-factor with film coefs (W/m2-k)
Real64 SimpleWindowSHGC; // user input for simple window Solar Heat Gain Coefficient (non-dimensional)
Real64 SimpleWindowVisTran; // (optional) user input for simple window Visual Transmittance (non-dimensional)
bool SimpleWindowVTinputByUser; // false means not input, true means user provide VT input
bool WarnedForHighDiffusivity; // used to limit error messaging to just the first instance
// Equivalent Layer (ASHWAT) Model
Real64 ReflFrontBeamBeam; // Beam-Beam solar reflectance front at zero incident
Real64 ReflBackBeamBeam; // Beam-Beam solar reflectance back at zero incident
Real64 TausFrontBeamBeam; // Beam-Beam solar transmittance front at zero incident
Real64 TausBackBeamBeam; // Beam-Beam solar transmittance back at zero incident
Real64 ReflFrontBeamBeamVis; // Beam-Beam visible reflectance front at zero incident
Real64 ReflBackBeamBeamVis; // Beam-Beam visible reflectance back at zero incident
Real64 TausFrontBeamBeamVis; // Beam-Beam visible transmittance front at zero incident
Real64 TausBackBeamBeamVis; // Beam-Beam visible transmittance back at zero incident
Real64 ReflFrontBeamDiff; // Beam-Diffuse solar reflectance front at zero incident
Real64 ReflBackBeamDiff; // Beam-Diffuse solar reflectance back at zero incident
Real64 TausFrontBeamDiff; // Beam-Diffuse solar transmittance front at zero incident
Real64 TausBackBeamDiff; // Beam-Diffuse solar transmittance back at zero incident
Real64 ReflFrontBeamDiffVis; // Beam-Diffuse visible reflectance front at zero incident
Real64 ReflBackBeamDiffVis; // Beam-Diffuse visible reflectance back at zero incident
Real64 TausFrontBeamDiffVis; // Beam-Diffuse visible transmittance front at zero incident
Real64 TausBackBeamDiffVis; // Beam-Diffuse visible transmittance back at zero incident
Real64 ReflFrontDiffDiff; // Diffuse-Diffuse solar reflectance front
Real64 ReflBackDiffDiff; // Diffuse-Diffuse solar reflectance back
Real64 TausDiffDiff; // Diffuse-Diffuse solar transmittance (front and back)
Real64 ReflFrontDiffDiffVis; // Diffuse-Diffuse visible reflectance front
Real64 ReflBackDiffDiffVis; // Diffuse-Diffuse visible reflectance back
Real64 TausDiffDiffVis; // Diffuse-Diffuse visible transmittance (front and back)
Real64 EmissThermalFront; // Front side thermal or infrared Emissivity
Real64 EmissThermalBack; // Back side thermal or infrared Emissivity
Real64 TausThermal; // Thermal transmittance (front and back)
int GapVentType; // Gap Ven type for equivalent Layer window model
bool ISPleatedDrape; // if pleated drape= true, if nonpleated drape = false
Real64 PleatedDrapeWidth; // width of the pleated drape fabric section
Real64 PleatedDrapeLength; // length of the pleated drape fabric section
Real64 ScreenWireSpacing; // insect screen wire spacing
Real64 ScreenWireDiameter; // insect screen wire diameter
Real64 SlatWidth; // slat width
Real64 SlatSeparation; // slat seperation
Real64 SlatCrown; // slat crown
Real64 SlatAngle; // slat angle
int SlatAngleType; // slat angle control type, 0=fixed, 1=maximize solar, 2=block beam
int SlatOrientation; // horizontal or veritical
std::string GasName; // Name of gas type ("Air", "Argon", "Krypton", "Xenon")
// Default Constructor
MaterialProperties() :
Group( -1 ),
Roughness( 0 ),
Conductivity( 0.0 ),
Density( 0.0 ),
IsoMoistCap( 0.0 ),
Porosity( 0.0 ),
Resistance( 0.0 ),
ROnly( false ),
SpecHeat( 0.0 ),
ThermGradCoef( 0.0 ),
Thickness( 0.0 ),
VaporDiffus( 0.0 ),
GasType( 5, 0 ),
GlassSpectralDataPtr( 0 ),
NumberOfGasesInMixture( 0 ),
GasCon( 5, 3, 0.0 ),
GasVis( 5, 3, 0.0 ),
GasCp( 5, 3, 0.0 ),
GasWght( 5, 0.0 ),
GasSpecHeatRatio( 5, 0.0 ),
GasFract( 5, 0.0 ),
AbsorpSolar( 0.0 ),
AbsorpSolarInput( 0.0 ),
AbsorpSolarEMSOverrideOn( false ),
AbsorpSolarEMSOverride( 0.0 ),
AbsorpThermal( 0.0 ),
AbsorpThermalInput( 0.0 ),
AbsorpThermalEMSOverrideOn( false ),
AbsorpThermalEMSOverride( 0.0 ),
AbsorpVisible( 0.0 ),
AbsorpVisibleInput( 0.0 ),
AbsorpVisibleEMSOverrideOn( false ),
AbsorpVisibleEMSOverride( 0.0 ),
Trans( 0.0 ),
TransVis( 0.0 ),
GlassTransDirtFactor( 1.0 ),
SolarDiffusing( false ),
ReflectShade( 0.0 ),
ReflectShadeVis( 0.0 ),
AbsorpThermalBack( 0.0 ),
AbsorpThermalFront( 0.0 ),
ReflectSolBeamBack( 0.0 ),
ReflectSolBeamFront( 0.0 ),
ReflectSolDiffBack( 0.0 ),
ReflectSolDiffFront( 0.0 ),
ReflectVisBeamBack( 0.0 ),
ReflectVisBeamFront( 0.0 ),
ReflectVisDiffBack( 0.0 ),
ReflectVisDiffFront( 0.0 ),
TransSolBeam( 0.0 ),
TransThermal( 0.0 ),
TransVisBeam( 0.0 ),
BlindDataPtr( 0 ),
ScreenDataPtr( 0 ),
ScreenMapResolution( 0 ),
YoungModulus( 0.0 ),
PoissonsRatio( 0.0 ),
DeflectedThickness( 0.0 ),
Pressure( 0.0 ),
SupportPillarPtr( 0 ),
DeflectionStatePtr( 0 ),
ComplexShadePtr( 0 ),
GasPointer( 0 ),
WinShadeToGlassDist( 0.0 ),
WinShadeTopOpeningMult( 0.0 ),
WinShadeBottomOpeningMult( 0.0 ),
WinShadeLeftOpeningMult( 0.0 ),
WinShadeRightOpeningMult( 0.0 ),
WinShadeAirFlowPermeability( 0.0 ),
EMPDMaterialProps( false ),
EMPDVALUE( 0.0 ),
MoistACoeff( 0.0 ),
MoistBCoeff( 0.0 ),
MoistCCoeff( 0.0 ),
MoistDCoeff( 0.0 ),
EMPDaCoeff( 0.0 ),
EMPDbCoeff( 0.0 ),
EMPDcCoeff( 0.0 ),
EMPDdCoeff( 0.0 ),
EcoRoofCalculationMethod( 0 ),
HeightOfPlants( 0.0 ),
LAI( 0.0 ),
Lreflectivity( 0.0 ),
LEmissitivity( 0.0 ),
InitMoisture( 0.0 ),
MinMoisture( 0.0 ),
RStomata( 0.0 ),
//New properties added for green roof with plant coverage
PlantCoverage( 0.0 ), //Plant coverage
VWC_FieldCapacity( 0.0 ), //VWC at field capacity
SW_ExtCoeff( 0.0 ), //SW extinction coefficient
LW_ExtCoeff( 0.0 ), //LW extinction coefficient
// End of change
niso( -1 ),
isodata( 27, 0.0 ),
isorh( 27, 0.0 ),
nsuc( -1 ),
sucdata( 27, 0.0 ),
sucwater( 27, 0.0 ),
nred( -1 ),
reddata( 27, 0.0 ),
redwater( 27, 0.0 ),
nmu( -1 ),
mudata( 27, 0.0 ),
murh( 27, 0.0 ),
ntc( -1 ),
tcdata( 27, 0.0 ),
tcwater( 27, 0.0 ),
itemp( 10.0 ),
irh( 0.5 ),
iwater( 0.2 ),
divs( 3 ),
divsize( 0.005 ),
divmin( 3 ),
divmax( 10 ),
SpecTemp( 0.0 ),
TCParent( 0 ),
SimpleWindowUfactor( 0.0 ),
SimpleWindowSHGC( 0.0 ),
SimpleWindowVisTran( 0.0 ),
SimpleWindowVTinputByUser( false ),
WarnedForHighDiffusivity( false ),
ReflFrontBeamBeam( 0.0 ),
ReflBackBeamBeam( 0.0 ),
TausFrontBeamBeam( 0.0 ),
TausBackBeamBeam( 0.0 ),
ReflFrontBeamBeamVis( 0.0 ),
ReflBackBeamBeamVis( 0.0 ),
TausFrontBeamBeamVis( 0.0 ),
TausBackBeamBeamVis( 0.0 ),
ReflFrontBeamDiff( 0.0 ),
ReflBackBeamDiff( 0.0 ),
TausFrontBeamDiff( 0.0 ),
TausBackBeamDiff( 0.0 ),
ReflFrontBeamDiffVis( 0.0 ),
ReflBackBeamDiffVis( 0.0 ),
TausFrontBeamDiffVis( 0.0 ),
TausBackBeamDiffVis( 0.0 ),
ReflFrontDiffDiff( 0.0 ),
ReflBackDiffDiff( 0.0 ),
TausDiffDiff( 0.0 ),
ReflFrontDiffDiffVis( 0.0 ),
ReflBackDiffDiffVis( 0.0 ),
TausDiffDiffVis( 0.0 ),
EmissThermalFront( 0.0 ),
EmissThermalBack( 0.0 ),
TausThermal( 0.0 ),
GapVentType( 0 ),
ISPleatedDrape( false ),
PleatedDrapeWidth( 0.0 ),
PleatedDrapeLength( 0.0 ),
ScreenWireSpacing( 0.0 ),
ScreenWireDiameter( 0.0 ),
SlatWidth( 0.0 ),
SlatSeparation( 0.0 ),
SlatCrown( 0.0 ),
SlatAngle( 0.0 ),
SlatAngleType( 0 ),
SlatOrientation( 0 )
{}
// Member Constructor
MaterialProperties(
std::string const & Name, // Name of material layer
int const Group, // Material group type (see Material Parameters above. Currently
int const Roughness, // Surface roughness index (See Surface Roughness parameters
Real64 const Conductivity, // Thermal conductivity of layer (W/m2K)
Real64 const Density, // Layer density (kg/m3)
Real64 const IsoMoistCap, // Isothermal moisture capacity on water vapor density (m3/kg)
Real64 const Porosity, // Layer porosity
Real64 const Resistance, // Layer thermal resistance (alternative to Density,
bool const ROnly, // Material defined with "R" only
Real64 const SpecHeat, // Layer specific heat (J/kgK)
Real64 const ThermGradCoef, // Thermal-gradient coefficient for moisture capacity
Real64 const Thickness, // Layer thickness (m)
Real64 const VaporDiffus, // Layer vapor diffusivity
FArray1_int const & GasType, // Gas type (air=1, argon=2, krypton=3, xenon=4, custom=0) for
int const GlassSpectralDataPtr, // Number of a spectral data set associated with a window glass material
int const NumberOfGasesInMixture, // Number of gases in a window gas mixture
FArray2< Real64 > const & GasCon, // Gas conductance coefficients for up to 5 gases in a mixture
FArray2< Real64 > const & GasVis, // Gas viscosity coefficients for up to 5 gases in a mixture
FArray2< Real64 > const & GasCp, // Gas specific-heat coefficients for up to 5 gases in a mixture
FArray1< Real64 > const & GasWght, // Gas molecular weight for up to 5 gases in a mixture
FArray1< Real64 > const & GasSpecHeatRatio, // Gas specific heat ratio (used for low pressure calculations)
FArray1< Real64 > const & GasFract, // Gas fractions for up to 5 gases in a mixture
Real64 const AbsorpSolar, // Layer solar absorptance
Real64 const AbsorpSolarInput, // Layer solar absorptance input by user
bool const AbsorpSolarEMSOverrideOn, // if true, then EMS calling to override value for solar absorptance
Real64 const AbsorpSolarEMSOverride, // value to use when EMS calling to override value for solar absorptance
Real64 const AbsorpThermal, // Layer thermal absorptance
Real64 const AbsorpThermalInput, // Layer thermal absorptance input by user
bool const AbsorpThermalEMSOverrideOn, // if true, then EMS calling to override value for thermal absorptance
Real64 const AbsorpThermalEMSOverride, // value to use when EMS calling to override value for thermal absorptance
Real64 const AbsorpVisible, // Layer Visible Absorptance
Real64 const AbsorpVisibleInput, // Layer Visible Absorptance input by user
bool const AbsorpVisibleEMSOverrideOn, // if true, then EMS calling to override value for visible absorptance
Real64 const AbsorpVisibleEMSOverride, // value to use when EMS calling to override value for visible absorptance
Real64 const Trans, // Transmittance of layer (glass, shade)
Real64 const TransVis, // Visible transmittance (at normal incidence)
Real64 const GlassTransDirtFactor, // Multiplier on glass transmittance due to dirt
bool const SolarDiffusing, // True if glass diffuses beam solar radiation
Real64 const ReflectShade, // Shade or screen reflectance (interior shade only)
Real64 const ReflectShadeVis, // Shade reflectance for visible radiation
Real64 const AbsorpThermalBack, // Infrared radiation back absorption
Real64 const AbsorpThermalFront, // Infrared radiation front absorption
Real64 const ReflectSolBeamBack, // Solar back reflectance (beam to everything)
Real64 const ReflectSolBeamFront, // Solar front reflectance (beam to everything)
Real64 const ReflectSolDiffBack, // Solar back diffuse reflectance
Real64 const ReflectSolDiffFront, // Solar front diffuse reflectance
Real64 const ReflectVisBeamBack, // Visible back reflectance (beam to everything)
Real64 const ReflectVisBeamFront, // Visible front reflectance (beam to everything)
Real64 const ReflectVisDiffBack, // Visible back diffuse reflectance
Real64 const ReflectVisDiffFront, // Visible front diffuse reflectance
std::string const & ReflectanceModeling, // method used to account for screen scattering
Real64 const TransSolBeam, // Solar transmittance (beam to everything)
Real64 const TransThermal, // Infrared radiation transmittance
Real64 const TransVisBeam, // Visible transmittance (beam to everything)
int const BlindDataPtr, // Pointer to window blind data
int const ScreenDataPtr, // Pointer to window screen data
int const ScreenMapResolution, // Resolution of azimuth and altitude angles to print in transmittance map
Real64 const YoungModulus, // Young's modulus (Pa) - used in window deflection calculations
Real64 const PoissonsRatio, // Poisson's ratio - used in window deflection calculations
Real64 const DeflectedThickness, // Minimum gap thickness in deflected state (m). Used with measured deflection
Real64 const Pressure, // Window Gap pressure (Pa)
int const SupportPillarPtr, // Pointer to support pillar data
int const DeflectionStatePtr, // Pointer to deflection state
int const ComplexShadePtr, // Pointer to complex shade data
int const GasPointer, // Pointer to gas or gas mixture used in the gap
Real64 const WinShadeToGlassDist, // Distance between window shade and adjacent glass (m)
Real64 const WinShadeTopOpeningMult, // Area of air-flow opening at top of shade, expressed as a fraction
Real64 const WinShadeBottomOpeningMult, // Area of air-flow opening at bottom of shade, expressed as a fraction
Real64 const WinShadeLeftOpeningMult, // Area of air-flow opening at left side of shade, expressed as a fraction
Real64 const WinShadeRightOpeningMult, // Area of air-flow opening at right side of shade, expressed as a fraction
Real64 const WinShadeAirFlowPermeability, // The effective area of openings in the shade itself, expressed as a
bool const EMPDMaterialProps, // True if EMPD properties have been assigned
Real64 const EMPDVALUE,
Real64 const MoistACoeff,
Real64 const MoistBCoeff,
Real64 const MoistCCoeff,
Real64 const MoistDCoeff,
Real64 const EMPDaCoeff,
Real64 const EMPDbCoeff,
Real64 const EMPDcCoeff,
Real64 const EMPDdCoeff,
int const EcoRoofCalculationMethod, // 1-Simple, 2-SchaapGenuchten
Real64 const HeightOfPlants, // plants' height
Real64 const LAI, // LeafAreaIndex (Dimensionless???)
Real64 const Lreflectivity, // LeafReflectivity
Real64 const LEmissitivity, // LeafEmissivity
Real64 const InitMoisture, // Initial soil moisture DJS
Real64 const MinMoisture, // Minimum moisture allowed DJS
Real64 const RStomata, // Minimum stomatal resistance DJS
//New properties added for green roof with plant coverage
Real64 const PlantCoverage, //Plant coverage
Real64 const VWC_FieldCapacity, //VWC at field capacity
Real64 const SW_ExtCoeff, //SW extinction coefficient