Skip to content

Commit

Permalink
Squashed 'resources/hpxml-measures/' changes from 4d634565bce..319f86…
Browse files Browse the repository at this point in the history
…0c55f

319f860c55f Merge pull request #1543 from NREL/build-res-hpxml-doc-defaults
af0b8c67010 Merge pull request #1544 from NREL/docs_formatting
111190f2692 Fix a few typos.
7d0241f9626 Add dashes to the rest. [ci skip]
ee7c106c158 Test [ci skip]
d29c06dba79 Try unicode character to preserve dashes. [ci skip]
eef65300680 Use paragraphs in footnotes to work around readthedocs/sphinx_rtd_theme#1472
2cd420ca1ee Few more href updates.
445d7a40a43 Replace all measure descriptions with href.
6daa7ce3a56 Test [ci skip]
529975bb3ad Test [ci skip]
4b4903fdfed Test [ci skip]
1f8868465ee Test [ci skip]
356f1e743cf Test [ci skip]
eb328e35be3 Test [ci skip]
0605b62d893 Attempt to fix docs formatting, which changed in recent weeks. [ci skip]
a2fcdf2c809 Update readme erb to convert href to markdown.
1c6fd3dce40 Try an argument description with href.
3e68033aabe Merge pull request #1526 from NREL/ducted_mshp_sizing
31b63e97229 Latest results.
fae91e33231 Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into ducted_mshp_sizing
8bfc8c4eb32 Merge pull request #1541 from NREL/balance_workflow_tests
f16d845e89a Merge branch 'balance_workflow_tests' of https://github.com/NREL/OpenStudio-HPXML into balance_workflow_tests
e44ad71caac Latest results.
46007f49b4d Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into balance_workflow_tests
5aef27a6ae1 Merge pull request #1542 from NREL/fix_msgpack_hourly
0656b5a5211 🤦
e4788c4f5ab Update build measure argument descriptions with links to docs.
f4fcb5a921a Missed one update.
1e59ff5253f Fix use of hourly msgpack file. Hit this error in a BEopt test now that most of our end uses are derived from Output:Meters instead of Output:Variables.
3dd4cba484f Better balance the runtime across the two workflow CI jobs.
02207f7a83c Merge pull request #1540 from NREL/deprecation-msgs
b251c34b737 Adds error messages for all extension elements that have been moved/deprecated since v1.0, so that the input is not silently ignored. No need to do this for non-extension elements since the XSD Schema will report errors for these situations.
5889de415f7 Update unit tests.
0f813a83fe1 Hotfix for recirc energy when multiple water heaters.
51f9d2fde58 Merge pull request #1537 from NREL/ground_temperatures2
c45fa9de0fb Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into ground_temperatures2
6598ab6059d Merge pull request #1539 from NREL/fix_system_use
053e9130f24 Fix CI failures.
54280437497 Run update_measures.
fb2bf8fb803 Merge branch 'ground_temperatures2' of github.com:NREL/OpenStudio-HPXML into ground_temperatures2
4063887f5d0 Accept nearest station in xing lookup.
9d9ad3647d7 Add comment [ci skip]
1043ac2d1b9 Fix comment [ci skip]
2b0d89bf4ba Fix possible incorrect value for system use, bug introduced in #1456. Adds error-checking to prevent this going forward. Some other minor misc cleanup.
d4ed83b6688 Merge branch 'ground_temperatures2' of github.com:NREL/OpenStudio-HPXML into ground_temperatures2
54d28d2ce6b Skip deep ground temp calcs if no gshp.
b00bb924031 Add test for defaulting xing values.
3a783ad4a25 Respond to review.
23f6e542ea5 Latest results.
71ac84dff44 Merge branch 'master' into ground_temperatures2
98ace8d4ac0 Update the changelog. [ci skip]
9cd53e49d11 Merge pull request #1538 from NREL/misc_cleanup
e24568fd749 Latest results.
951dc933449 Misc cleanup.
092d4981415 Latest results.
3370a534320 Convert new csv to utf8.
cde1f9aaab2 Get the units right.
27148f692cf Missed a return.
533d2926d78 Update the changelog.
4a6174d571f Assign deep ground variables and use throughout.
1fbc7087565 Add deep temperature lookup based on xing model.
6c91ec33ac5 Revert shallow and deep ground temperature conflation.
4127a5dcb4a Merge pull request #1536 from NREL/split_workflow_tests
00b8d21b992 Remove old files. [ci skip]
fd88b9696ce Latest results.
004c05172b3 Fix CI failure
d2a87c7e3aa Update pull_request_template.md [ci skip]
ab259ce187a Split workflow tests, so they can be parallelized on the CI for faster turnaround time.
08087e56e1b Latest results.
91b20b687a1 Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML into ducted_mshp_sizing
8768fdd2d4f Latest results.
a890bb11c51 Merge branch 'ducted_mshp_sizing' of https://github.com/NREL/OpenStudio-HPXML into ducted_mshp_sizing
db9528575ba Add airflow rates to CI artifact.
2b7363b3820 Latest results.
790b177584a Treat ducted MSHPs like ASHPs for equipment adjustments in sizing.

git-subtree-dir: resources/hpxml-measures
git-subtree-split: 319f860c55f4bc56a21a1c119a6c365a29169f2d
  • Loading branch information
joseph-robertson committed Nov 8, 2023
1 parent df15d1b commit 6023ee2
Show file tree
Hide file tree
Showing 99 changed files with 8,314 additions and 3,442 deletions.
4 changes: 2 additions & 2 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ PR Author: Check these when they're done. Not all may apply. ~~strikethrough~~ a
PR Reviewer: Verify each has been completed.

- [ ] Schematron validator (`EPvalidator.xml`) has been updated
- [ ] Sample files have been added/updated (via `tasks.rb`)
- [ ] Tests have been added/updated (e.g., `HPXMLtoOpenStudio/tests` and/or `workflow/tests/hpxml_translator_test.rb`)
- [ ] Sample files have been added/updated (`openstudio tasks.rb update_hpxmls`)
- [ ] Tests have been added/updated (e.g., `HPXMLtoOpenStudio/tests/test*.rb` and/or `workflow/tests/test*.rb`)
- [ ] Documentation has been updated
- [ ] Changelog has been updated
- [ ] `openstudio tasks.rb update_measures` has been run
Expand Down
31 changes: 27 additions & 4 deletions .github/workflows/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ jobs:
name: documentation
path: docs/_build/html/

run-workflow-tests:
run-workflow1-tests:
runs-on: ubuntu-latest
container:
image: docker://nrel/openstudio:3.7.0-rc1
Expand All @@ -75,7 +75,30 @@ jobs:
- name: Run workflow tests
run: |
bundle exec rake test_workflow
bundle exec rake test_workflow1
- name: Store results
uses: actions/upload-artifact@v3
with:
path: workflow/tests/results
name: results

run-workflow2-tests:
runs-on: ubuntu-latest
container:
image: docker://nrel/openstudio:3.7.0-rc1
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.head_ref }}

- name: Install software
run: |
rm -f Gemfile.lock && bundle install
- name: Run workflow tests
run: |
bundle exec rake test_workflow2
- name: Store results
uses: actions/upload-artifact@v3
Expand All @@ -101,7 +124,7 @@ jobs:
compare-results:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
needs: [run-workflow-tests, run-unit-tests]
needs: [run-workflow1-tests, run-workflow2-tests, run-unit-tests]
steps:
- uses: actions/checkout@v3
with:
Expand Down Expand Up @@ -153,7 +176,7 @@ jobs:

update-results:
runs-on: ubuntu-latest
needs: [run-workflow-tests, run-unit-tests]
needs: [run-workflow1-tests, run-workflow2-tests, run-unit-tests]
steps:
- uses: actions/checkout@v3
with:
Expand Down
348 changes: 174 additions & 174 deletions BuildResidentialHPXML/README.md

Large diffs are not rendered by default.

350 changes: 176 additions & 174 deletions BuildResidentialHPXML/measure.rb

Large diffs are not rendered by default.

358 changes: 179 additions & 179 deletions BuildResidentialHPXML/measure.xml

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions BuildResidentialScheduleFile/measure.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<schema_version>3.1</schema_version>
<name>build_residential_schedule_file</name>
<uid>f770b2db-1a9f-4e99-99a7-7f3161a594b1</uid>
<version_id>2c589b36-e096-4d7b-bccd-3880fb9624fe</version_id>
<version_modified>2023-10-31T23:05:37Z</version_modified>
<version_id>48439a72-2880-4934-b216-38a24bf684b7</version_id>
<version_modified>2023-11-02T14:39:58Z</version_modified>
<xml_checksum>03F02484</xml_checksum>
<class_name>BuildResidentialScheduleFile</class_name>
<display_name>Schedule File Builder</display_name>
Expand Down Expand Up @@ -909,7 +909,7 @@
<checksum>5FC694CF</checksum>
</file>
<file>
<filename>build_residential_schedule_file_test.rb</filename>
<filename>test_build_residential_schedule_file.rb</filename>
<filetype>rb</filetype>
<usage_type>test</usage_type>
<checksum>BF7A1992</checksum>
Expand Down
14 changes: 4 additions & 10 deletions Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,7 @@ __New Features__
- `SchedulesFilePath`
- `NaturalVentilationAvailabilityDaysperWeek`
- Allows `NumberofUnits` to be used as a multiplier on dwelling unit simulation results to reduce simulation runtime.
- Notes:
- Each dwelling unit is described by a separate `Building` element in the HPXML file.
- To run the single simulation, specify the Building ID as 'ALL' in the run_simulation.rb script or OpenStudio workflow.
- Adjacent SFA/MF common spaces are still modeled using assumed temperature profiles, not as separate thermal zones, as described in the documentation.
- Shared systems are still modeled as individual systems, not shared systems connected to multiple dwelling unit, as described in the documentation.
- Batteries are not currently supported. Dehumidifiers and ground-source heat pumps are only supported if `NumberofUnits` is 1.
- Utility bill calculations using detailed rates are not supported.
- Simulation results will be for the entire building; results for individual dwelling units are not available.
- See the [OpenStudio-HPXML documentation](https://openstudio-hpxml.readthedocs.io/en/v1.7.0/workflow_inputs.html#whole-sfa-mf-buildings) for more detail.
- Adds manufactured home belly as a foundation type and allows modeling ducts in a manufactured home belly.
- Output updates:
- **Breaking change**: "Hot Tub" outputs renamed to "Permanent Spa".
Expand All @@ -36,7 +29,7 @@ __New Features__
- Always validate the HPXML file before applying defaults and only optionally validate the final HPXML file.
- Battery losses now split between charging and discharging.
- Interior/exterior window shading multipliers are now modeled using the EnergyPlus incident solar multiplier.
- Updates ground temperatures using a correlation based on L. Xing's simplified design model (2014).
- Updates deep ground temperatures (used for modeling ground-source heat pumps) using L. Xing's simplified design model (2014).
- Improvements to HERS & MaxLoad heat pump sizing methodologies.
- Allows `WaterFixture/FlowRate` as an alternative to `LowFlow`; hot water credit is now calculated based on fraction of low flow fixtures.
- Added README.md documentation for all OpenStudio measures.
Expand All @@ -53,6 +46,7 @@ __Bugfixes__
- Fixes ReportSimulationOutput outputs for the Parametric Analysis Tool (PAT).
- Fixes missing radiation exchange between window and sky when an interior/exterior window shading multiplier less than 1 exists.
- Fixes AC/HP cooling bug when applying cooling equipment adjustment.
- Fixes monthly shallow ground temperatures (used primarily in HVAC autosizing) for the southern hemisphere.
- BuildResidentialHPXML measure: Fixes air distribution CFA served when there is not a central system that meets 100% of the load.

## OpenStudio-HPXML v1.6.0
Expand Down Expand Up @@ -279,7 +273,7 @@ __New Features__
- **Breaking change**: Any heat pump backup heating requires `HeatPump/BackupType` ("integrated" or "separate") to be specified.
- **Breaking change**: For homes with multiple PV arrays, all inverter efficiencies must have the same value.
- **Breaking change**: HPXML schema version must now be '4.0' (proposed).
- Moves `ClothesDryer/extension/IsVented` to `ClothesDryer/IsVented`.
- Moves `ClothesDryer/extension/IsVented` to `ClothesDryer/Vented`.
- Moves `ClothesDryer/extension/VentedFlowRate` to `ClothesDryer/VentedFlowRate`.
- Moves `FoundationWall/Insulation/Layer/extension/DistanceToTopOfInsulation` to `FoundationWall/Insulation/Layer/DistanceToTopOfInsulation`.
- Moves `FoundationWall/Insulation/Layer/extension/DistanceToBottomOfInsulation` to `FoundationWall/Insulation/Layer/DistanceToBottomOfInsulation`.
Expand Down
23 changes: 6 additions & 17 deletions HPXMLtoOpenStudio/measure.rb
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ def run(model, runner, user_arguments)

# Process weather once upfront
epw_path = Location.get_epw_path(hpxml.buildings[0], hpxml_path)
weather = WeatherProcess.new(epw_path: epw_path, runner: runner)
weather = WeatherProcess.new(epw_path: epw_path, runner: runner, hpxml: hpxml)
epw_file = OpenStudio::EpwFile.new(epw_path)
hpxml.buildings.each_with_index do |hpxml_bldg, i|
next if i == 0
Expand Down Expand Up @@ -1839,25 +1839,14 @@ def add_lighting(runner, model, epw_file, spaces)
end

def add_pools_and_permanent_spas(runner, model, spaces)
@hpxml_bldg.pools.each do |pool|
next if pool.type == HPXML::TypeNone
(@hpxml_bldg.pools + @hpxml_bldg.permanent_spas).each do |pool_or_spa|
next if pool_or_spa.type == HPXML::TypeNone

MiscLoads.apply_pool_or_permanent_spa_heater(runner, model, pool, Constants.ObjectNameMiscPoolHeater, spaces[HPXML::LocationConditionedSpace],
MiscLoads.apply_pool_or_permanent_spa_heater(runner, model, pool_or_spa, spaces[HPXML::LocationConditionedSpace],
@schedules_file, @hpxml_header.unavailable_periods)
next if pool.pump_type == HPXML::TypeNone
next if pool_or_spa.pump_type == HPXML::TypeNone

MiscLoads.apply_pool_or_permanent_spa_pump(runner, model, pool, Constants.ObjectNameMiscPoolPump, spaces[HPXML::LocationConditionedSpace],
@schedules_file, @hpxml_header.unavailable_periods)
end

@hpxml_bldg.permanent_spas.each do |spa|
next if spa.type == HPXML::TypeNone

MiscLoads.apply_pool_or_permanent_spa_heater(runner, model, spa, Constants.ObjectNameMiscPermanentSpaHeater, spaces[HPXML::LocationConditionedSpace],
@schedules_file, @hpxml_header.unavailable_periods)
next if spa.pump_type == HPXML::TypeNone

MiscLoads.apply_pool_or_permanent_spa_pump(runner, model, spa, Constants.ObjectNameMiscPermanentSpaPump, spaces[HPXML::LocationConditionedSpace],
MiscLoads.apply_pool_or_permanent_spa_pump(runner, model, pool_or_spa, spaces[HPXML::LocationConditionedSpace],
@schedules_file, @hpxml_header.unavailable_periods)
end
end
Expand Down
16 changes: 11 additions & 5 deletions HPXMLtoOpenStudio/measure.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<schema_version>3.1</schema_version>
<name>hpxm_lto_openstudio</name>
<uid>b1543b30-9465-45ff-ba04-1d1f85e763bc</uid>
<version_id>91582761-6b67-4e6e-92c9-5cb85fa5818c</version_id>
<version_modified>2023-11-01T12:53:15Z</version_modified>
<version_id>02fbd449-a6df-4ef4-b0e1-7d3bccc19d0b</version_id>
<version_modified>2023-11-02T02:55:23Z</version_modified>
<xml_checksum>D8922A73</xml_checksum>
<class_name>HPXMLtoOpenStudio</class_name>
<display_name>HPXML to OpenStudio Translator</display_name>
Expand Down Expand Up @@ -292,7 +292,7 @@
<filename>hvac_sizing.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>FEBE48C8</checksum>
<checksum>1303DC8D</checksum>
</file>
<file>
<filename>lighting.rb</filename>
Expand Down Expand Up @@ -334,7 +334,7 @@
<filename>output.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>3DE5829C</checksum>
<checksum>7AC7F779</checksum>
</file>
<file>
<filename>psychrometrics.rb</filename>
Expand Down Expand Up @@ -522,6 +522,12 @@
<usage_type>resource</usage_type>
<checksum>84D0E4E1</checksum>
</file>
<file>
<filename>in.schedules.csv</filename>
<filetype>csv</filetype>
<usage_type>test</usage_type>
<checksum>6244F711</checksum>
</file>
<file>
<filename>test_airflow.rb</filename>
<filetype>rb</filetype>
Expand Down Expand Up @@ -568,7 +574,7 @@
<filename>test_hvac_sizing.rb</filename>
<filetype>rb</filetype>
<usage_type>test</usage_type>
<checksum>0DF1F706</checksum>
<checksum>7784A366</checksum>
</file>
<file>
<filename>test_lighting.rb</filename>
Expand Down
8 changes: 6 additions & 2 deletions HPXMLtoOpenStudio/resources/airflow.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1711,7 +1711,9 @@ def self.calculate_precond_loads(model, infil_program, vent_mech_preheat, vent_m
end
vent_mech_preheat.each_with_index do |f_preheat, i|
infil_program.addLine("If (OASupInTemp < HtgStp) && (#{clg_ssn_sensor.name} < 1)")
htg_energy_actuator = create_other_equipment_object_and_actuator(model: model, name: "shared mech vent preheating energy #{i}", space: @conditioned_space, frac_lat: 0.0, frac_lost: 1.0, hpxml_fuel_type: f_preheat.preheating_fuel, end_use: Constants.ObjectNameMechanicalVentilationPreheating)
cnt = model.getOtherEquipments.select { |e| e.endUseSubcategory.start_with? Constants.ObjectNameMechanicalVentilationPreheating }.size # Ensure unique meter for each preheating system
htg_energy_actuator = create_other_equipment_object_and_actuator(model: model, name: "shared mech vent preheating energy #{i}", space: @conditioned_space, frac_lat: 0.0, frac_lost: 1.0, hpxml_fuel_type: f_preheat.preheating_fuel, end_use: "#{Constants.ObjectNameMechanicalVentilationPreheating}#{cnt + 1}")
htg_energy_actuator.actuatedComponent.get.additionalProperties.setFeature('HPXML_ID', f_preheat.id) # Used by reporting measure
infil_program.addLine(" Set Qpreheat = #{UnitConversions.convert(f_preheat.average_oa_unit_flow_rate, 'cfm', 'm^3/s').round(4)}")
if [HPXML::MechVentTypeERV, HPXML::MechVentTypeHRV].include? f_preheat.fan_type
vent_mech_erv_hrv_tot = [f_preheat]
Expand All @@ -1735,7 +1737,9 @@ def self.calculate_precond_loads(model, infil_program, vent_mech_preheat, vent_m
end
vent_mech_precool.each_with_index do |f_precool, i|
infil_program.addLine("If (OASupInTemp > ClgStp) && (#{clg_ssn_sensor.name} > 0)")
clg_energy_actuator = create_other_equipment_object_and_actuator(model: model, name: "shared mech vent precooling energy #{i}", space: @conditioned_space, frac_lat: 0.0, frac_lost: 1.0, hpxml_fuel_type: f_precool.precooling_fuel, end_use: Constants.ObjectNameMechanicalVentilationPrecooling)
cnt = model.getOtherEquipments.select { |e| e.endUseSubcategory.start_with? Constants.ObjectNameMechanicalVentilationPrecooling }.size # Ensure unique meter for each precooling system
clg_energy_actuator = create_other_equipment_object_and_actuator(model: model, name: "shared mech vent precooling energy #{i}", space: @conditioned_space, frac_lat: 0.0, frac_lost: 1.0, hpxml_fuel_type: f_precool.precooling_fuel, end_use: "#{Constants.ObjectNameMechanicalVentilationPrecooling}#{cnt + 1}")
clg_energy_actuator.actuatedComponent.get.additionalProperties.setFeature('HPXML_ID', f_precool.id) # Used by reporting measure
infil_program.addLine(" Set Qprecool = #{UnitConversions.convert(f_precool.average_oa_unit_flow_rate, 'cfm', 'm^3/s').round(4)}")
if [HPXML::MechVentTypeERV, HPXML::MechVentTypeHRV].include? f_precool.fan_type
vent_mech_erv_hrv_tot = [f_precool]
Expand Down
2 changes: 1 addition & 1 deletion HPXMLtoOpenStudio/resources/constructions.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1535,7 +1535,7 @@ def self.apply_kiva_initial_temp(foundation, slab, weather, conditioned_zone,
initial_temp = indoor_temp
else
# Space temperature assumptions from ASHRAE 152 - Duct Efficiency Calculations.xls, Zone temperatures
ground_temp = weather.data.GroundMonthlyTemps[sim_begin_month - 1]
ground_temp = weather.data.ShallowGroundMonthlyTemps[sim_begin_month - 1]
if slab.interior_adjacent_to == HPXML::LocationBasementUnconditioned
if foundation_ceiling_insulated
# Insulated ceiling: 75% ground, 25% outdoor, 0% indoor
Expand Down

0 comments on commit 6023ee2

Please sign in to comment.