Skip to content

Commit 573a64e

Browse files
authored
Merge pull request #2092 from NREL/gshp_sizing_error
Fix possible GSHP sizing error
2 parents 19c1c9d + a451b18 commit 573a64e

File tree

8 files changed

+77
-65
lines changed

8 files changed

+77
-65
lines changed

Changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ __Bugfixes__
3030
- Fixes zero mech vent fan energy when CFIS system w/ `AdditionalRuntimeOperatingMode="air handler fan"` has the airflow rate set to zero.
3131
- Fixes requested EnergyPlus timeseries output variables/meters not displayed in DView if they don't have units.
3232
- Fixes possible errors when small water flow rates for variable-speed experimental ground-source heat pump model.
33+
- Fixes possible ground-source heat pump sizing error if the heating or cooling design temperature differences are zero.
3334

3435
## OpenStudio-HPXML v1.10.0
3536

HPXMLtoOpenStudio/measure.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
<schema_version>3.1</schema_version>
44
<name>hpxm_lto_openstudio</name>
55
<uid>b1543b30-9465-45ff-ba04-1d1f85e763bc</uid>
6-
<version_id>ebf347a8-a3b8-4096-a72c-078aa24e7d59</version_id>
7-
<version_modified>2025-10-31T18:46:56Z</version_modified>
6+
<version_id>136fac64-f9c0-4cbd-b9ef-18324d2691c6</version_id>
7+
<version_modified>2025-10-31T22:09:18Z</version_modified>
88
<xml_checksum>D8922A73</xml_checksum>
99
<class_name>HPXMLtoOpenStudio</class_name>
1010
<display_name>HPXML to OpenStudio Translator</display_name>
@@ -420,7 +420,7 @@
420420
<filename>hvac_sizing.rb</filename>
421421
<filetype>rb</filetype>
422422
<usage_type>resource</usage_type>
423-
<checksum>AFA48130</checksum>
423+
<checksum>AE488BAC</checksum>
424424
</file>
425425
<file>
426426
<filename>internal_gains.rb</filename>
@@ -768,7 +768,7 @@
768768
<filename>test_hvac_sizing.rb</filename>
769769
<filetype>rb</filetype>
770770
<usage_type>test</usage_type>
771-
<checksum>3E300829</checksum>
771+
<checksum>8F446353</checksum>
772772
</file>
773773
<file>
774774
<filename>test_lighting.rb</filename>

HPXMLtoOpenStudio/resources/hvac_sizing.rb

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3409,11 +3409,22 @@ def self.get_geothermal_loop_borefield_ft_per_ton(mj, hpxml_bldg, geothermal_loo
34093409
cooling_month = 6 # July
34103410
end
34113411

3412-
rtf_DesignMon_Heat = [0.25, (71.0 - weather.data.MonthlyAvgDrybulbs[heating_month]) / mj.htd].max
3413-
rtf_DesignMon_Cool = [0.25, (weather.data.MonthlyAvgDrybulbs[cooling_month] - 76.0) / mj.ctd].max
3412+
# Runtime fraction average in heating/cooling months, assumed
3413+
if mj.htd > 0
3414+
rtf_design_mon_heat = (mj.heat_setpoint - weather.data.MonthlyAvgDrybulbs[heating_month]) / mj.htd
3415+
else
3416+
rtf_design_mon_heat = 0
3417+
end
3418+
if mj.ctd > 0
3419+
rtf_design_mon_cool = (weather.data.MonthlyAvgDrybulbs[cooling_month] - mj.cool_setpoint) / mj.ctd
3420+
else
3421+
rtf_design_mon_cool = 0
3422+
end
3423+
rtf_design_mon_heat = [[rtf_design_mon_heat, 0.25].max, 1.0].min
3424+
rtf_design_mon_cool = [[rtf_design_mon_cool, 0.25].max, 1.0].min
34143425

3415-
nom_length_heat = (1.0 - 1.0 / clg_ap.heat_rated_cops[0]) * (r_value_bore + r_value_ground * rtf_DesignMon_Heat) / (weather.data.DeepGroundAnnualTemp - (2.0 * clg_ap.design_hw - clg_ap.design_delta_t) / 2.0) * UnitConversions.convert(1.0, 'ton', 'Btu/hr')
3416-
nom_length_cool = (1.0 + 1.0 / clg_ap.cool_rated_cops[0]) * (r_value_bore + r_value_ground * rtf_DesignMon_Cool) / ((2.0 * clg_ap.design_chw + clg_ap.design_delta_t) / 2.0 - weather.data.DeepGroundAnnualTemp) * UnitConversions.convert(1.0, 'ton', 'Btu/hr')
3426+
nom_length_heat = (1.0 - 1.0 / clg_ap.heat_rated_cops[0]) * (r_value_bore + r_value_ground * rtf_design_mon_heat) / (weather.data.DeepGroundAnnualTemp - (2.0 * clg_ap.design_hw - clg_ap.design_delta_t) / 2.0) * UnitConversions.convert(1.0, 'ton', 'Btu/hr')
3427+
nom_length_cool = (1.0 + 1.0 / clg_ap.cool_rated_cops[0]) * (r_value_bore + r_value_ground * rtf_design_mon_cool) / ((2.0 * clg_ap.design_chw + clg_ap.design_delta_t) / 2.0 - weather.data.DeepGroundAnnualTemp) * UnitConversions.convert(1.0, 'ton', 'Btu/hr')
34173428

34183429
return nom_length_heat, nom_length_cool
34193430
end

HPXMLtoOpenStudio/tests/test_hvac_sizing.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1784,15 +1784,15 @@ def test_gshp_geothermal_loop
17841784
XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path)
17851785
_model, _test_hpxml, test_hpxml_bldg = _test_measure(args_hash)
17861786
assert_equal(3, test_hpxml_bldg.geothermal_loops[0].num_bore_holes)
1787-
assert_in_delta(194.0, test_hpxml_bldg.geothermal_loops[0].bore_length, 1.0)
1787+
assert_in_delta(190.0, test_hpxml_bldg.geothermal_loops[0].bore_length, 1.0)
17881788

17891789
# Bore depth greater than the max -> increase number of boreholes
17901790
hpxml, hpxml_bldg = _create_hpxml(ghp_filename)
17911791
hpxml_bldg.site.ground_conductivity = 0.18
17921792
XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path)
17931793
_model, _test_hpxml, test_hpxml_bldg = _test_measure(args_hash)
17941794
assert_equal(5, test_hpxml_bldg.geothermal_loops[0].num_bore_holes)
1795-
assert_in_delta(442.0, test_hpxml_bldg.geothermal_loops[0].bore_length, 1.0)
1795+
assert_in_delta(431.0, test_hpxml_bldg.geothermal_loops[0].bore_length, 1.0)
17961796

17971797
# Bore depth greater than the max -> increase number of boreholes until the max, set depth to the max, and issue warning
17981798
hpxml, hpxml_bldg = _create_hpxml(ghp_filename)

workflow/tests/base_results/results_simulations_bills.csv

Lines changed: 14 additions & 14 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)