lib/openstudio-standards/qaqc/envelope.rb in openstudio-standards-0.6.0.rc2 vs lib/openstudio-standards/qaqc/envelope.rb in openstudio-standards-0.6.3
- old
+ new
@@ -156,19 +156,19 @@
intended_surface_type = 'ExteriorFloor'
end
end
film_coefficients_r_value = OpenstudioStandards::Constructions.film_coefficients_r_value(intended_surface_type, includes_int_film = true, includes_ext_film = true)
thermal_conductance = surface_detail[:construction].thermalConductance.get
- r_value_with_film = 1 / thermal_conductance + film_coefficients_r_value
+ r_value_with_film = (1 / thermal_conductance) + film_coefficients_r_value
source_units = 'm^2*K/W'
target_units = 'ft^2*h*R/Btu'
r_value_ip = OpenStudio.convert(r_value_with_film, source_units, target_units).get
solar_reflectance = surface_detail[:construction].to_LayeredConstruction.get.layers[0].to_OpaqueMaterial.get.solarReflectance.get
# @todo check with exterior air wall
# stop if didn't find values (0 or infinity)
- next if target_r_value_ip[surface_detail[:surface_type]] == 0.0
+ next if target_r_value_ip[surface_detail[:surface_type]] < 0.01
next if target_r_value_ip[surface_detail[:surface_type]] == Float::INFINITY
# check r avlues
if r_value_ip < target_r_value_ip[surface_detail[:surface_type]] * (1.0 - min_pass_pct)
check_elems << OpenStudio::Attribute.new('flag', "R value of #{r_value_ip.round(2)} (#{target_units}) for #{surface_detail[:construction].name} in #{space_type.name} is more than #{min_pass_pct * 100} % below the expected value of #{target_r_value_ip[surface_detail[:surface_type]].round(2)} (#{target_units}) for #{display_standard}.")
@@ -198,11 +198,11 @@
u_factor_si = OpenstudioStandards::Constructions.construction_get_conductance(surface_construction)
u_factor_ip = OpenStudio.convert(u_factor_si, source_units, target_units).get
shgc = OpenstudioStandards::Constructions.construction_get_solar_transmittance(surface_construction)
# stop if didn't find values (0 or infinity)
- next if target_u_value_ip[sub_surface_detail[:surface_type]] == 0.0
+ next if target_u_value_ip[sub_surface_detail[:surface_type]] < 0.01
next if target_u_value_ip[sub_surface_detail[:surface_type]] == Float::INFINITY
# check u avlues
if u_factor_ip < target_u_value_ip[sub_surface_detail[:surface_type]] * (1.0 - min_pass_pct)
check_elems << OpenStudio::Attribute.new('flag', "U value of #{u_factor_ip.round(2)} (#{target_units}) for #{sub_surface_detail[:construction].name} in #{space_type.name} is more than #{min_pass_pct * 100} % below the expected value of #{target_u_value_ip[sub_surface_detail[:surface_type]].round(2)} (#{target_units}) for #{display_standard}.")
@@ -230,19 +230,19 @@
if surface_type.to_s == 'Door' then intended_surface_type = 'ExteriorDoor' end
end
film_coefficients_r_value = OpenstudioStandards::Constructions.film_coefficients_r_value(intended_surface_type, includes_int_film = true, includes_ext_film = true)
thermal_conductance = sub_surface_detail[:construction].thermalConductance.get
- r_value_with_film = 1 / thermal_conductance + film_coefficients_r_value
+ r_value_with_film = (1 / thermal_conductance) + film_coefficients_r_value
source_units = 'm^2*K/W'
target_units = 'ft^2*h*R/Btu'
r_value_ip = OpenStudio.convert(r_value_with_film, source_units, target_units).get
solar_reflectance = sub_surface_detail[:construction].to_LayeredConstruction.get.layers[0].to_OpaqueMaterial.get.solarReflectance.get
# @todo check what happens with exterior air wall
# stop if didn't find values (0 or infinity)
- next if target_r_value_ip[sub_surface_detail[:surface_type]] == 0.0
+ next if target_r_value_ip[sub_surface_detail[:surface_type]] < 0.01
next if target_r_value_ip[sub_surface_detail[:surface_type]] == Float::INFINITY
# check r avlues
if r_value_ip < target_r_value_ip[sub_surface_detail[:surface_type]] * (1.0 - min_pass_pct)
check_elems << OpenStudio::Attribute.new('flag', "R value of #{r_value_ip.round(2)} (#{target_units}) for #{sub_surface_detail[:construction].name} in #{space_type.name} is more than #{min_pass_pct * 100} % below the expected value of #{target_r_value_ip[sub_surface_detail[:surface_type]].round(2)} (#{target_units}) for #{display_standard}.")
@@ -321,11 +321,11 @@
standards_construction_type = 'Mass'
end
end
film_coefficients_r_value = OpenstudioStandards::Constructions.film_coefficients_r_value(intended_surface_type, includes_int_film = true, includes_ext_film = true)
thermal_conductance = surface_detail[:construction].thermalConductance.get
- r_value_with_film = 1 / thermal_conductance + film_coefficients_r_value
+ r_value_with_film = (1 / thermal_conductance) + film_coefficients_r_value
source_units = 'm^2*K/W'
target_units = 'ft^2*h*R/Btu'
r_value_ip = OpenStudio.convert(r_value_with_film, source_units, target_units).get
solar_reflectance = surface_detail[:construction].to_LayeredConstruction.get.layers[0].to_OpaqueMaterial.get.solarReflectance.get
# @todo check what happens with exterior air wall
@@ -348,10 +348,10 @@
assembly_maximum_solar_heat_gain_coefficient = data['assembly_maximum_solar_heat_gain_coefficient']
end
assembly_maximum_r_value_ip = 1 / assembly_maximum_u_value
# stop if didn't find values (0 or infinity)
- next if assembly_maximum_r_value_ip == 0.0
+ next if assembly_maximum_r_value_ip < 0.01
next if assembly_maximum_r_value_ip == Float::INFINITY
# check r avlues
if r_value_ip < assembly_maximum_r_value_ip * (1.0 - min_pass_pct)
check_elems << OpenStudio::Attribute.new('flag', "R value of #{r_value_ip.round(2)} (#{target_units}) for #{surface_detail[:construction].name} in #{space.name} is more than #{min_pass_pct * 100} % below the expected value of #{assembly_maximum_r_value_ip.round(2)} (#{target_units}) for #{display_standard}.")