@@ -580,7 +580,7 @@ def self.init_loads(hpxml_bldg)
580
580
all_zone_loads [ zone ] = DesignLoadValues . new
581
581
zone . spaces . each do |space |
582
582
all_space_loads [ space ] = DesignLoadValues . new
583
- space . additional_properties . total_exposed_wall_area = 0.0
583
+ space . additional_properties . total_exposed_wall_area = 0.0 # Wall area in contact with outdoor air
584
584
# Initialize Hourly Aggregate Fenestration Loads (AFL)
585
585
space . additional_properties . afl_hr_windows = [ 0.0 ] * 12 # Data saved for peak load
586
586
space . additional_properties . afl_hr_skylights = [ 0.0 ] * 12 # Data saved for peak load
@@ -1023,55 +1023,45 @@ def self.process_load_walls(mj, hpxml_bldg, all_zone_loads, all_space_loads)
1023
1023
1024
1024
ashrae_wall_group = get_ashrae_wall_group ( wall )
1025
1025
1026
- if wall . azimuth . nil?
1027
- azimuths = [ 0.0 , 90.0 , 180.0 , 270.0 ] # Assume 4 equal surfaces facing every direction
1028
- else
1029
- azimuths = [ wall . azimuth ]
1030
- end
1031
-
1032
- htg_htm = 0.0
1033
- clg_htm = 0.0
1034
- azimuths . each do |_azimuth |
1035
- if wall . is_exterior
1036
- # Store exposed wall gross area for infiltration calculation
1037
- space . additional_properties . total_exposed_wall_area += wall . area / azimuths . size
1038
-
1039
- # Adjust base Cooling Load Temperature Difference (CLTD)
1040
- # Assume absorptivity for light walls < 0.5, medium walls <= 0.75, dark walls > 0.75 (based on MJ8 Table 4B Notes)
1041
- if wall . solar_absorptance <= 0.5
1042
- color_multiplier = 0.65 # MJ8 Table 4B Notes, pg 348
1043
- elsif wall . solar_absorptance <= 0.75
1044
- color_multiplier = 0.83 # MJ8 Appendix 12, pg 519
1045
- else
1046
- color_multiplier = 1.0
1047
- end
1048
-
1049
- # Base Cooling Load Temperature Differences (CLTD's) for dark colored sunlit and shaded walls
1050
- # with 95 degF outside temperature taken from MJ8 Figure A12-8 (intermediate wall groups were
1051
- # determined using linear interpolation). Shaded walls apply to partition walls only.
1052
- cltd_base_sun = { 'G' => 38.0 , 'F-G' => 34.95 , 'F' => 31.9 , 'E-F' => 29.45 , 'E' => 27.0 , 'D-E' => 24.5 , 'D' => 22.0 , 'C-D' => 21.25 , 'C' => 20.5 , 'B-C' => 19.65 , 'B' => 18.8 }
1053
- # cltd_base_shade = { 'G' => 25.0, 'F-G' => 22.5, 'F' => 20.0, 'E-F' => 18.45, 'E' => 16.9, 'D-E' => 15.45, 'D' => 14.0, 'C-D' => 13.55, 'C' => 13.1, 'B-C' => 12.85, 'B' => 12.6 }
1026
+ if wall . is_exterior
1027
+ # Store exposed wall gross area for infiltration calculation
1028
+ space . additional_properties . total_exposed_wall_area += wall . area
1029
+
1030
+ # Adjust base Cooling Load Temperature Difference (CLTD)
1031
+ # Assume absorptivity for light walls < 0.5, medium walls <= 0.75, dark walls > 0.75 (based on MJ8 Table 4B Notes)
1032
+ if wall . solar_absorptance <= 0.5
1033
+ color_multiplier = 0.65 # MJ8 Table 4B Notes, pg 348
1034
+ elsif wall . solar_absorptance <= 0.75
1035
+ color_multiplier = 0.83 # MJ8 Appendix 12, pg 519
1036
+ else
1037
+ color_multiplier = 1.0
1038
+ end
1054
1039
1055
- # Non-directional exterior walls
1056
- cltd_base = cltd_base_sun
1057
- cltd = cltd_base [ ashrae_wall_group ] * color_multiplier
1040
+ # Base Cooling Load Temperature Differences (CLTD's) for dark colored sunlit and shaded walls
1041
+ # with 95 degF outside temperature taken from MJ8 Figure A12-8 (intermediate wall groups were
1042
+ # determined using linear interpolation). Shaded walls apply to partition walls only.
1043
+ cltd_base_sun = { 'G' => 38.0 , 'F-G' => 34.95 , 'F' => 31.9 , 'E-F' => 29.45 , 'E' => 27.0 , 'D-E' => 24.5 , 'D' => 22.0 , 'C-D' => 21.25 , 'C' => 20.5 , 'B-C' => 19.65 , 'B' => 18.8 }
1044
+ # cltd_base_shade = { 'G' => 25.0, 'F-G' => 22.5, 'F' => 20.0, 'E-F' => 18.45, 'E' => 16.9, 'D-E' => 15.45, 'D' => 14.0, 'C-D' => 13.55, 'C' => 13.1, 'B-C' => 12.85, 'B' => 12.6 }
1058
1045
1059
- if mj . ctd >= 10.0
1060
- # Adjust base CLTD for different CTD or DR
1061
- cltd += ( hpxml_bldg . header . manualj_cooling_design_temp - 95.0 ) + mj . daily_range_temp_adjust [ mj . daily_range_num ]
1062
- else
1063
- # Handling cases ctd < 10 is based on A12-18 in MJ8
1064
- cltd_corr = mj . ctd - 20.0 - mj . daily_range_temp_adjust [ mj . daily_range_num ]
1065
- cltd = [ cltd + cltd_corr , 0.0 ] . max # NOTE: The CLTD_Alt equation in A12-18 part 5 suggests CLTD - CLTD_corr, but A12-19 suggests it should be CLTD + CLTD_corr (where CLTD_corr is negative)
1066
- end
1046
+ # Non-directional exterior walls
1047
+ cltd_base = cltd_base_sun
1048
+ cltd = cltd_base [ ashrae_wall_group ] * color_multiplier
1067
1049
1068
- clg_htm += ( 1.0 / wall . insulation_assembly_r_value ) / azimuths . size * cltd
1069
- htg_htm += ( 1.0 / wall . insulation_assembly_r_value ) / azimuths . size * mj . htd
1070
- else # Partition wall
1071
- adjacent_space = wall . exterior_adjacent_to
1072
- clg_htm += ( 1.0 / wall . insulation_assembly_r_value ) / azimuths . size * ( mj . cool_design_temps [ adjacent_space ] - mj . cool_setpoint )
1073
- htg_htm += ( 1.0 / wall . insulation_assembly_r_value ) / azimuths . size * ( mj . heat_setpoint - mj . heat_design_temps [ adjacent_space ] )
1050
+ if mj . ctd >= 10.0
1051
+ # Adjust base CLTD for different CTD or DR
1052
+ cltd += ( hpxml_bldg . header . manualj_cooling_design_temp - 95.0 ) + mj . daily_range_temp_adjust [ mj . daily_range_num ]
1053
+ else
1054
+ # Handling cases ctd < 10 is based on A12-18 in MJ8
1055
+ cltd_corr = mj . ctd - 20.0 - mj . daily_range_temp_adjust [ mj . daily_range_num ]
1056
+ cltd = [ cltd + cltd_corr , 0.0 ] . max # NOTE: The CLTD_Alt equation in A12-18 part 5 suggests CLTD - CLTD_corr, but A12-19 suggests it should be CLTD + CLTD_corr (where CLTD_corr is negative)
1074
1057
end
1058
+
1059
+ clg_htm = ( 1.0 / wall . insulation_assembly_r_value ) * cltd
1060
+ htg_htm = ( 1.0 / wall . insulation_assembly_r_value ) * mj . htd
1061
+ else # Partition wall
1062
+ adjacent_space = wall . exterior_adjacent_to
1063
+ clg_htm = ( 1.0 / wall . insulation_assembly_r_value ) * ( mj . cool_design_temps [ adjacent_space ] - mj . cool_setpoint )
1064
+ htg_htm = ( 1.0 / wall . insulation_assembly_r_value ) * ( mj . heat_setpoint - mj . heat_design_temps [ adjacent_space ] )
1075
1065
end
1076
1066
clg_loads = clg_htm * wall . net_area
1077
1067
htg_loads = htg_htm * wall . net_area
0 commit comments