urbanopt-cli 0.8.2 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +5 -6
- data/CHANGELOG.md +21 -0
- data/CMakeLists.txt +7 -7
- data/Gemfile +3 -1
- data/README.md +9 -0
- data/example_files/Gemfile +23 -16
- data/example_files/Gemfile.lock +177 -0
- data/example_files/base_workflow_res.osw +57 -14
- data/example_files/class_project_coincident.json +1322 -0
- data/example_files/class_project_diverse.json +1322 -0
- data/example_files/disco/config.json +42 -0
- data/example_files/disco/cost_database.xlsx +0 -0
- data/example_files/disco/technical_catalog.json +12126 -0
- data/example_files/mappers/Baseline.rb +10 -7
- data/example_files/mappers/ChilledWaterStorage.rb +98 -0
- data/example_files/mappers/ClassProject.rb +110 -0
- data/example_files/mappers/CreateBar.rb +1 -0
- data/example_files/mappers/HighEfficiency.rb +13 -11
- data/example_files/mappers/PeakHoursMelsShedding.rb +72 -0
- data/example_files/mappers/PeakHoursThermostatAdjust.rb +78 -0
- data/example_files/mappers/ThermalStorage.rb +1 -0
- data/example_files/mappers/base_workflow.osw +55 -14
- data/example_files/mappers/class_project_workflow.osw +328 -0
- data/example_files/mappers/createbar_workflow.osw +16 -16
- data/example_files/measures/BuildResidentialModel/measure.rb +7 -1
- data/example_files/measures/BuildResidentialModel/measure.xml +1313 -706
- data/example_files/opendss/electrical_database.json +1446 -1446
- data/example_files/python_deps/dependencies.json +5 -0
- data/example_files/python_deps/install_python.ps1 +96 -0
- data/example_files/python_deps/install_python.sh +120 -0
- data/example_files/residential/clothes_dryer.tsv +11 -11
- data/example_files/residential/clothes_washer.tsv +3 -3
- data/example_files/residential/dishwasher.tsv +3 -3
- data/example_files/resources/hpxml-measures/.github/pull_request_template.md +0 -1
- data/example_files/resources/hpxml-measures/.github/workflows/config.yml +8 -21
- data/example_files/resources/hpxml-measures/.gitignore +2 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.rb +1272 -1094
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.xml +978 -659
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/geometry.rb +52 -74
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb +77 -140
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/measure.rb +30 -27
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/measure.xml +32 -13
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/schedules.rb +55 -51
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/tests/build_residential_schedule_file_test.rb +89 -16
- data/example_files/resources/hpxml-measures/Changelog.md +65 -0
- data/example_files/resources/hpxml-measures/Gemfile +2 -4
- data/example_files/resources/hpxml-measures/Gemfile.lock +2 -13
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.rb +276 -300
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.xml +221 -215
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/airflow.rb +215 -170
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/battery.rb +108 -16
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb +24 -44
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constructions.rb +564 -197
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data/cambium/README.md +8 -8
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/energyplus.rb +1 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/geometry.rb +7 -55
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hotwater_appliances.rb +24 -19
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml.rb +541 -211
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +300 -172
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/HPXML.xsd +0 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/HPXMLBaseElements.xsd +230 -141
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/HPXMLDataTypes.xsd +145 -137
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schematron/EPvalidator.xml +191 -97
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schematron/iso-schematron.xsd +391 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac.rb +194 -198
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac_sizing.rb +140 -145
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/lighting.rb +11 -11
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/location.rb +33 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/materials.rb +4 -4
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/meta_measure.rb +17 -9
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/misc_loads.rb +14 -12
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/output.rb +39 -17
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/psychrometrics.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/battery.csv +8761 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedules.rb +114 -57
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/simcontrols.rb +1 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/utility_bills.rb +148 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/version.rb +2 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/waterheater.rb +85 -127
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/weather.rb +26 -32
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlhelper.rb +2 -14
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlvalidator.rb +67 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_airflow.rb +117 -56
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_battery.rb +141 -14
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_defaults.rb +453 -344
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_enclosure.rb +124 -20
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_generator.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hotwater_appliance.rb +28 -32
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac.rb +172 -79
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac_sizing.rb +54 -8
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_lighting.rb +3 -3
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_location.rb +4 -4
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_miscloads.rb +7 -7
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_pv.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_schedules.rb +6 -9
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_simcontrols.rb +8 -8
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_validation.rb +213 -95
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_water_heater.rb +1 -10
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_weather.rb +76 -0
- data/example_files/resources/hpxml-measures/README.md +2 -3
- data/example_files/resources/hpxml-measures/ReportSimulationOutput/measure.rb +585 -287
- data/example_files/resources/hpxml-measures/ReportSimulationOutput/measure.xml +304 -352
- data/example_files/resources/hpxml-measures/ReportSimulationOutput/tests/output_report_test.rb +404 -279
- data/example_files/resources/hpxml-measures/ReportUtilityBills/measure.rb +222 -501
- data/example_files/resources/hpxml-measures/ReportUtilityBills/measure.xml +137 -200
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Flat Rate Min Annual Charge.json +649 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Flat Rate Min Monthly Charge.json +649 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Flat Rate.json +647 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Real-Time Pricing Rate Min Annual Charge.json +8776 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Real-Time Pricing Rate Min Monthly Charge.json +8776 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Real-Time Pricing Rate.json +8774 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Tiered Rate Min Annual Charge.json +659 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Tiered Rate Min Monthly Charge.json +659 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Tiered Rate.json +657 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Tiered Time-of-Use Rate Min Annual Charge.json +670 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Tiered Time-of-Use Rate Min Monthly Charge.json +670 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Tiered Time-of-Use Rate.json +668 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Time-of-Use Rate Min Annual Charge.json +655 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Time-of-Use Rate Min Monthly Charge.json +655 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Time-of-Use Rate.json +653 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/openei_rates.zip +0 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/{Data/UtilityRates → simple_rates}/Average_retail_price_of_electricity.csv +0 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/{Data/UtilityRates → simple_rates}/HouseholdConsumption.csv +0 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/{Data/UtilityRates → simple_rates}/NG_PRI_SUM_A_EPG0_PRS_DMCF_A.csv +0 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/{Data/UtilityRates → simple_rates}/PET_PRI_WFR_A_EPD2F_PRS_DPGAL_W.csv +0 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/{Data/UtilityRates → simple_rates}/PET_PRI_WFR_A_EPLLPA_PRS_DPGAL_W.csv +0 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/{Data/UtilityRates → simple_rates}/README.md +0 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/util.rb +506 -25
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/Contains Demand Charges.json +1312 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/Invalid Fixed Charge Units.json +657 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/Invalid Min Charge Units.json +659 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/JacksonElectricMemberCorp-ResidentialSeniorCitizenLowIncomeAssistance.json +681 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/Missing Required Fields.json +54 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/data.csv +8761 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/utility_bills_test.rb +1006 -235
- data/example_files/resources/hpxml-measures/docs/source/conf.py +1 -1
- data/example_files/resources/hpxml-measures/docs/source/intro.rst +0 -1
- data/example_files/resources/hpxml-measures/docs/source/usage_instructions.rst +2 -2
- data/example_files/resources/hpxml-measures/docs/source/workflow_inputs.rst +461 -261
- data/example_files/resources/hpxml-measures/docs/source/workflow_outputs.rst +146 -152
- data/example_files/resources/hpxml-measures/tasks.rb +616 -802
- data/example_files/resources/hpxml-measures/workflow/real_homes/house001.xml +19 -11
- data/example_files/resources/hpxml-measures/workflow/real_homes/house002.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house003.xml +12 -7
- data/example_files/resources/hpxml-measures/workflow/real_homes/house004.xml +12 -7
- data/example_files/resources/hpxml-measures/workflow/real_homes/house005.xml +19 -11
- data/example_files/resources/hpxml-measures/workflow/real_homes/house006.xml +12 -7
- data/example_files/resources/hpxml-measures/workflow/real_homes/house007.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house008.xml +28 -16
- data/example_files/resources/hpxml-measures/workflow/real_homes/house009.xml +28 -17
- data/example_files/resources/hpxml-measures/workflow/real_homes/house010.xml +28 -16
- data/example_files/resources/hpxml-measures/workflow/real_homes/house011.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house012.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house013.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house014.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house015.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house016.xml +22 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house017.xml +19 -11
- data/example_files/resources/hpxml-measures/workflow/real_homes/house018.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house019.xml +13 -7
- data/example_files/resources/hpxml-measures/workflow/real_homes/house020.xml +12 -7
- data/example_files/resources/hpxml-measures/workflow/real_homes/house021.xml +31 -16
- data/example_files/resources/hpxml-measures/workflow/real_homes/house022.xml +22 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house023.xml +21 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house024.xml +37 -22
- data/example_files/resources/hpxml-measures/workflow/real_homes/house025.xml +24 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house026.xml +33 -21
- data/example_files/resources/hpxml-measures/workflow/real_homes/house027.xml +28 -16
- data/example_files/resources/hpxml-measures/workflow/real_homes/house028.xml +28 -16
- data/example_files/resources/hpxml-measures/workflow/real_homes/house029.xml +30 -17
- data/example_files/resources/hpxml-measures/workflow/real_homes/house030.xml +10 -7
- data/example_files/resources/hpxml-measures/workflow/real_homes/house031.xml +22 -11
- data/example_files/resources/hpxml-measures/workflow/real_homes/house032.xml +12 -7
- data/example_files/resources/hpxml-measures/workflow/real_homes/house033.xml +18 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house034.xml +25 -16
- data/example_files/resources/hpxml-measures/workflow/real_homes/house035.xml +22 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house036.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house037.xml +26 -17
- data/example_files/resources/hpxml-measures/workflow/real_homes/house038.xml +19 -11
- data/example_files/resources/hpxml-measures/workflow/real_homes/house039.xml +25 -16
- data/example_files/resources/hpxml-measures/workflow/real_homes/house040.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house041.xml +35 -21
- data/example_files/resources/hpxml-measures/workflow/real_homes/house042.xml +28 -17
- data/example_files/resources/hpxml-measures/workflow/real_homes/house043.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house044.xml +35 -21
- data/example_files/resources/hpxml-measures/workflow/real_homes/house045.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house046.xml +20 -13
- data/example_files/resources/hpxml-measures/workflow/real_homes/house047.xml +12 -9
- data/example_files/resources/hpxml-measures/workflow/real_homes/house048.xml +25 -14
- data/example_files/resources/hpxml-measures/workflow/real_homes/house049.xml +10 -7
- data/example_files/resources/hpxml-measures/workflow/real_homes/house050.xml +20 -11
- data/example_files/resources/hpxml-measures/workflow/run_simulation.rb +91 -88
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-coal.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-portable.xml +546 -535
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-whole-home.xml +546 -535
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-multiple.xml +555 -544
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-gas.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-modified.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-none.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil-location-miami-fl.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane-location-portland-or.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-wood.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-cathedral.xml +7 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-conditioned.xml +17 -6
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-flat.xml +7 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-radiant-barrier.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-unvented-insulated-roof.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-vented.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-battery-scheduled.xml +600 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-battery.xml +598 -587
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multifamily-buffer-space.xml +494 -485
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multiple.xml +606 -593
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-non-freezing-space.xml +494 -485
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-heated-space.xml +494 -485
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml +494 -485
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-calctype-operational.xml +480 -471
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-baseboard.xml +464 -457
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil-ducted.xml +496 -487
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml +466 -459
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml +518 -509
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.xml +513 -504
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-baseboard.xml +445 -438
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-ducted.xml +476 -467
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.xml +443 -436
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml +446 -439
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml +494 -485
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-baseboard.xml +445 -438
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil-ducted.xml +476 -467
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml +446 -439
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml +494 -485
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.xml +489 -480
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-generator.xml +499 -490
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml +491 -482
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room-multiple-water-heaters.xml +510 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room.xml +495 -486
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-multiple.xml +709 -695
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-preconditioning.xml +528 -519
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent.xml +512 -503
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-pv.xml +504 -495
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater-recirc.xml +497 -488
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater.xml +490 -481
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily.xml +487 -478
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-single-family-attached-2stories.xml +639 -628
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-single-family-attached-atticroof-cathedral.xml +587 -580
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-single-family-attached.xml +639 -628
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-calctype-operational-misc-defaults.xml +539 -528
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-calctype-operational-misc-loads-large-uncommon.xml +644 -633
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-calctype-operational-misc-loads-large-uncommon2.xml +644 -633
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-calctype-operational.xml +575 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless-outside.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-2-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-gshp.xml +585 -574
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-hpwh.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-tankless.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-var-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-dwhr.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-detailed-setpoints.xml +536 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-dse.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-outside.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-standbyloss.xml +20 -8
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-with-solar-fraction.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-electric.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-gas.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-hpwh.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-indirect.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-low-flow-fixtures.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-multiple.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-none.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-demand.xml +19 -8
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-manual.xml +19 -8
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-nocontrol.xml +19 -8
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-temperature.xml +19 -8
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-timer.xml +19 -8
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-evacuated-tube.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-flat-plate.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-ics.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-fraction.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-indirect-flat-plate.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-thermosyphon-flat-plate.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-coal.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-detailed-setpoints.xml +582 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-elec-uef.xml +583 -572
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-outside.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef-fhr.xml +584 -573
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef.xml +584 -573
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-detailed-schedules.xml +583 -572
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-operating-mode-heat-pump-only.xml +585 -574
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-outside.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-uef.xml +582 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar-fraction.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-model-type-stratified-detailed-occupancy-stochastic.xml +586 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-model-type-stratified.xml +585 -574
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-oil.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-wood.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-detailed-setpoints.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-outside.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-uef.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-uef.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar-fraction.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-propane.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories-garage.xml +28 -11
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories.xml +20 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-1.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-2.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-4.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-5.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-ceilingtypes.xml +607 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-floortypes.xml +550 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-garage.xml +27 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ach-house-pressure.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm-house-pressure.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm50.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-flue.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-ach.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-orientations.xml +589 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-overhangs.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-rooftypes.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-physical-properties.xml +619 -608
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-shading.xml +620 -609
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-storms.xml +618 -607
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-level.xml +537 -526
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces.xml +90 -43
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces2.xml +2507 -2460
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-thermal-mass.xml +595 -584
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-walltypes.xml +19 -8
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-natural-ventilation-availability.xml +584 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-none.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-physical-properties.xml +594 -583
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-shading.xml +597 -586
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-storms.xml +598 -587
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-ambient.xml +27 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-basement-garage.xml +671 -656
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-complex.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-slab-insulation.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-foundation-conditioned-basement-wall-interior-insulation.xml → base-foundation-conditioned-basement-wall-insulation.xml} +585 -574
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-crawlspace.xml +582 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-multiple.xml +35 -16
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-slab.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-above-grade.xml +27 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-assembly-r.xml +27 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-wall-insulation.xml +27 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement.xml +27 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unvented-crawlspace.xml +27 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-vented-crawlspace.xml +27 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-walkout-basement.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-backup-lockout-temperature.xml +586 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml +573 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-seer2-hspf2.xml +583 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-2-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-boiler-switchover-temperature.xml +600 -589
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-boiler.xml +599 -588
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-furnace.xml +629 -616
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-cooling-only.xml +573 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-heating-only.xml +579 -568
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-acca.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-hers.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-maxload-miami-fl.xml +582 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-maxload.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-acca.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-hers.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-maxload.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-backup-boiler.xml +598 -587
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-backup-furnace.xml +628 -615
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-acca.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-hers.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-maxload.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-elec-only.xml +535 -526
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-gas-central-ac-1-speed.xml +589 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-gas-only.xml +536 -527
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-1-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-2-speed.xml +565 -554
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-var-speed.xml +565 -554
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-plus-air-to-air-heat-pump-heating.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed-sizing-methodology-acca.xml +582 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed-sizing-methodology-hers.xml +582 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed-sizing-methodology-maxload.xml +582 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-mini-split-heat-pump-ducted.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-elec-resistance-only.xml +526 -517
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-evap-cooler-furnace-gas.xml +573 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-floor-furnace-propane-only.xml +529 -520
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-elec-only.xml +565 -554
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-2-speed.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-var-speed.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-only.xml +565 -554
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-room-ac.xml +578 -567
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-cooling-only.xml +575 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-heating-only.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-acca.xml +583 -572
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-hers.xml +583 -572
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-maxload.xml +583 -572
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-air-conditioner-only-ducted.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-cooling-only.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-heating-only.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-acca.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-hers.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-maxload.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ductless-backup-stove.xml +551 -542
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ptac-with-heating.xml +532 -530
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ptac.xml +525 -516
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp-sizing-methodology-acca.xml +541 -532
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp-sizing-methodology-hers.xml +541 -532
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp-sizing-methodology-maxload.xml +541 -532
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-only.xml +525 -516
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-heating.xml +533 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-acca.xml +542 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-hers.xml +542 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-maxload.xml +542 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-stove-oil-only.xml +529 -520
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-wall-furnace-elec-only.xml +529 -520
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-coal-only.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-elec-only.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-central-ac-1-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-oil-only.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-propane-only.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-wood-only.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed-seer2.xml +567 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-2-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-var-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dse.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-area-fractions.xml +611 -598
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-area-multipliers.xml +589 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-cfm50.xml +582 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-percent.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-elec-resistance-only.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-furnace-gas.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only-ducted.xml +17 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fireplace-wood-only.xml +530 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fixed-heater-gas-only.xml +530 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-floor-furnace-propane-only.xml +530 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-coal-only.xml +566 -555
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-central-ac-1-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-only.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-2-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-var-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only-detailed-setpoints.xml +566 -555
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only.xml +566 -555
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-room-ac.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-oil-only.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-propane-only.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-wood-only.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-x3-dse.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-cooling-only.xml +574 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-heating-only.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump.xml +583 -572
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-air-to-air-heat-pump-1-speed.xml +587 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-air-to-air-heat-pump-2-speed.xml +587 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-air-to-air-heat-pump-var-speed.xml +587 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-central-ac-1-speed.xml +591 -580
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-central-ac-2-speed.xml +591 -580
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-central-ac-var-speed.xml +591 -580
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-only.xml +570 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-ground-to-air-heat-pump.xml +586 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-mini-split-air-conditioner-only-ducted.xml +570 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-mini-split-heat-pump-ducted.xml +586 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ductless.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-cooling-only.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-heating-only.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless-backup-stove.xml +552 -543
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple.xml +963 -938
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-none.xml +33 -69
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-portable-heater-gas-only.xml +530 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ptac-with-heating-electricity.xml +535 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-ptac-with-heating.xml → base-hvac-ptac-with-heating-natural-gas.xml} +23 -21
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ptac.xml +526 -517
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-pthp.xml +541 -532
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-33percent.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-ceer.xml +526 -517
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-detailed-setpoints.xml +526 -517
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-with-heating.xml +535 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-with-reverse-cycle.xml +542 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-seasons.xml +594 -583
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints-daily-schedules.xml +586 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints-daily-setbacks.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-oil-only.xml +530 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-wood-pellets-only.xml +530 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized-allow-increased-fixed-capacities.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-wall-furnace-elec-only.xml +530 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-ceiling-fans.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-holiday.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-AMY-2012.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-baltimore-md.xml +27 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-capetown-zaf.xml +591 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-dallas-tx.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-duluth-mn.xml +27 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-helena-mt.xml +582 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-honolulu-hi.xml +537 -526
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-miami-fl.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-phoenix-az.xml +537 -526
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-portland-or.xml +601 -586
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-balanced.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-bath-kitchen-fans.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-airflow-fraction-zero.xml +601 -587
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-dse.xml +19 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-evap-cooler-only-ducted.xml +20 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-supplemental-fan-exhaust.xml +607 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-supplemental-fan-supply.xml +607 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis.xml +21 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv-atre-asre.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust-rated-flow-rate.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv-asre.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-multiple.xml +37 -19
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-supply.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-whole-house-fan.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-additional-properties.xml +590 -579
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-none.xml +578 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-pv-detailed-only.xml +632 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-pv-mixed.xml +614 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-pv.xml +677 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills.xml +593 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-defaults.xml +27 -9
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-emissions.xml +676 -665
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators-battery-scheduled.xml +616 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators-battery.xml +615 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators.xml +598 -587
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-ground-conductivity.xml +586 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon2.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-none.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-shielding-of-home.xml +583 -572
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-usage-multiplier.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-multiple-buildings.xml +1700 -1677
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-ah.xml +622 -611
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-garage.xml +697 -682
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-pv-battery-lifetime-model.xml → base-pv-battery-round-trip-efficiency.xml} +20 -11
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-scheduled.xml +624 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery.xml +622 -611
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-generators-battery-scheduled.xml +640 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-generators-battery.xml +639 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-generators.xml +623 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv.xml +606 -595
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-all-10-mins.xml +582 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-smooth.xml +583 -572
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic-10-mins.xml +584 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic-vacancy.xml +583 -572
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic.xml +583 -572
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-setpoints-daily-schedules.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-setpoints-daily-setbacks.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-setpoints.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple.xml +636 -625
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-calendar-year-custom.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-custom.xml +27 -14
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-disabled.xml +21 -10
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-runperiod-1-month.xml +21 -10
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-dhw-tank-heat-pump-detailed-operating-modes.xml → base-simcontrol-temperature-capacitance-multiplier.xml} +25 -13
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins-occupancy-stochastic-10-mins.xml +584 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins-occupancy-stochastic-60-mins.xml +584 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-dhw-tank-heat-pump-detailed-setpoints.xml → base-simcontrol-timestep-30-mins.xml} +25 -14
- data/example_files/resources/hpxml-measures/workflow/sample_files/base.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/template-build-and-run-hpxml-with-stochastic-occupancy.osw +18 -13
- data/example_files/resources/hpxml-measures/workflow/template-run-hpxml-with-stochastic-occupancy.osw +12 -7
- data/example_files/resources/hpxml-measures/workflow/template-run-hpxml.osw +8 -24
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AC.xml +366 -358
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AL.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AC.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AL.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AC.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AL.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AC.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AL.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AC.xml +311 -303
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AL.xml +311 -303
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AC.xml +327 -319
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AL.xml +327 -319
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AC.xml +332 -324
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AL.xml +332 -324
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AC.xml +341 -333
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AL.xml +341 -333
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AC.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AL.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AC.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AL.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AC.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AL.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L302XC.xml +383 -379
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L304XC.xml +383 -379
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L322XC.xml +538 -534
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L324XC.xml +550 -546
- data/example_files/resources/hpxml-measures/workflow/tests/base_results/results.csv +444 -410
- data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_ashrae_140.csv +8 -8
- data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_bills.csv +444 -410
- data/example_files/resources/hpxml-measures/workflow/tests/compare.py +18 -4
- data/example_files/resources/hpxml-measures/workflow/tests/hpxml_translator_test.rb +133 -288
- data/example_files/scripts/convert_urbanopt_to_disco.py +130 -0
- data/example_files/scripts/default_control_changes.csv +8 -0
- data/example_files/scripts/default_voltage_regulators.csv +3 -0
- data/example_files/scripts/read_data.py +331 -0
- data/example_files/visualization/input_visualization_feature.html +172 -81
- data/example_files/visualization/input_visualization_scenario.html +178 -82
- data/example_files/xml_building/17/README.md +2 -2
- data/example_files/xml_building/17/unit 1.xml +40 -41
- data/example_files/xml_building/17/unit 2.xml +35 -36
- data/example_files/xml_building/17/unit 3.xml +35 -36
- data/example_files/xml_building/17/unit 4.xml +41 -42
- data/lib/uo_cli/version.rb +1 -1
- data/lib/uo_cli.rb +601 -101
- data/scripts/setup-env.bat +6 -7
- data/uo_cli.gemspec +6 -5
- metadata +121 -36
- data/example_files/residential/exhaust.tsv +0 -3
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data/hvac_equipment_efficiency.csv +0 -493
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data/water_heater_efficiency.csv +0 -157
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schematron/HPXMLvalidator.xml +0 -620
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/validator.rb +0 -107
- data/example_files/resources/hpxml-measures/ReportHPXMLOutput/measure.rb +0 -450
- data/example_files/resources/hpxml-measures/ReportHPXMLOutput/measure.xml +0 -85
- data/example_files/resources/hpxml-measures/ReportHPXMLOutput/resources/constants.rb +0 -72
- data/example_files/resources/hpxml-measures/ReportHPXMLOutput/tests/hpxml_output_report_test.rb +0 -290
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/PV_10kW.csv +0 -8761
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/PV_1kW.csv +0 -8761
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/PV_None.csv +0 -8761
- data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_hvac_sizing.csv +0 -410
@@ -30,57 +30,39 @@ class HVACSizing
|
|
30
30
|
# Calculate loads for the conditioned thermal zone
|
31
31
|
bldg_design_loads = DesignLoads.new
|
32
32
|
process_load_windows_skylights(bldg_design_loads, weather)
|
33
|
-
process_load_doors(bldg_design_loads
|
33
|
+
process_load_doors(bldg_design_loads)
|
34
34
|
process_load_walls(bldg_design_loads, weather)
|
35
35
|
process_load_roofs(bldg_design_loads, weather)
|
36
|
-
process_load_ceilings(bldg_design_loads
|
37
|
-
process_load_floors(bldg_design_loads
|
38
|
-
process_load_slabs(bldg_design_loads
|
36
|
+
process_load_ceilings(bldg_design_loads)
|
37
|
+
process_load_floors(bldg_design_loads)
|
38
|
+
process_load_slabs(bldg_design_loads)
|
39
39
|
process_load_infiltration_ventilation(bldg_design_loads, weather)
|
40
40
|
process_load_internal_gains(bldg_design_loads)
|
41
41
|
|
42
42
|
# Aggregate zone loads into initial loads
|
43
43
|
aggregate_loads(bldg_design_loads)
|
44
44
|
|
45
|
-
# Get HVAC information for each HVAC system.
|
46
|
-
hvac_infos = {}
|
47
|
-
hvac_systems.each do |hvac_system|
|
48
|
-
hvac_infos[hvac_system] = get_hvac_information(hvac_system)
|
49
|
-
end
|
50
|
-
|
51
|
-
# Loop through each HVAC system and apply duct loads
|
52
|
-
# to calculate total building design loads.
|
53
|
-
total_ducts_heat_load = 0.0
|
54
|
-
total_ducts_cool_load_sens = 0.0
|
55
|
-
total_ducts_cool_load_lat = 0.0
|
56
|
-
hvac_systems.each do |hvac_system|
|
57
|
-
hvac = hvac_infos[hvac_system]
|
58
|
-
next if is_system_to_skip(hvac)
|
59
|
-
|
60
|
-
apply_hvac_temperatures(hvac, bldg_design_loads)
|
61
|
-
ducts_heat_load = calculate_load_ducts_heating(bldg_design_loads, weather, hvac)
|
62
|
-
ducts_cool_load_sens, ducts_cool_load_lat = calculate_load_ducts_cooling(bldg_design_loads, weather, hvac)
|
63
|
-
|
64
|
-
total_ducts_heat_load += ducts_heat_load.to_f
|
65
|
-
total_ducts_cool_load_sens += ducts_cool_load_sens.to_f
|
66
|
-
total_ducts_cool_load_lat += ducts_cool_load_lat.to_f
|
67
|
-
end
|
68
|
-
apply_load_ducts(bldg_design_loads, total_ducts_heat_load, total_ducts_cool_load_sens, total_ducts_cool_load_lat)
|
69
|
-
|
70
45
|
# Loop through each HVAC system and calculate equipment values.
|
71
46
|
all_hvac_sizing_values = {}
|
47
|
+
system_design_loads = bldg_design_loads.dup
|
72
48
|
hvac_systems.each do |hvac_system|
|
73
|
-
hvac =
|
49
|
+
hvac = get_hvac_information(hvac_system)
|
74
50
|
next if is_system_to_skip(hvac)
|
75
51
|
|
52
|
+
# Apply duct loads as needed
|
53
|
+
apply_hvac_temperatures(hvac, system_design_loads)
|
54
|
+
ducts_heat_load = calculate_load_ducts_heating(system_design_loads, hvac)
|
55
|
+
ducts_cool_load_sens, ducts_cool_load_lat = calculate_load_ducts_cooling(system_design_loads, weather, hvac)
|
56
|
+
apply_load_ducts(bldg_design_loads, ducts_heat_load, ducts_cool_load_sens, ducts_cool_load_lat) # Update duct loads in reported building design loads
|
57
|
+
|
76
58
|
hvac_sizing_values = HVACSizingValues.new
|
77
|
-
apply_hvac_loads(hvac, hvac_sizing_values,
|
59
|
+
apply_hvac_loads(hvac, hvac_sizing_values, system_design_loads, ducts_heat_load, ducts_cool_load_sens, ducts_cool_load_lat)
|
78
60
|
apply_hvac_heat_pump_logic(hvac_sizing_values, hvac)
|
79
61
|
apply_hvac_equipment_adjustments(hvac_sizing_values, weather, hvac)
|
80
62
|
apply_hvac_installation_quality(hvac_sizing_values, weather, hvac)
|
81
63
|
apply_hvac_fixed_capacities(hvac_sizing_values, hvac)
|
82
64
|
apply_hvac_ground_loop(hvac_sizing_values, weather, hvac)
|
83
|
-
apply_hvac_finalize_airflows(hvac_sizing_values,
|
65
|
+
apply_hvac_finalize_airflows(hvac_sizing_values, hvac)
|
84
66
|
|
85
67
|
all_hvac_sizing_values[hvac_system] = hvac_sizing_values
|
86
68
|
end
|
@@ -147,7 +129,7 @@ class HVACSizing
|
|
147
129
|
@heat_design_temps = {}
|
148
130
|
|
149
131
|
locations = []
|
150
|
-
(@hpxml.roofs + @hpxml.rim_joists + @hpxml.walls + @hpxml.foundation_walls + @hpxml.
|
132
|
+
(@hpxml.roofs + @hpxml.rim_joists + @hpxml.walls + @hpxml.foundation_walls + @hpxml.floors + @hpxml.slabs).each do |surface|
|
151
133
|
locations << surface.interior_adjacent_to
|
152
134
|
locations << surface.exterior_adjacent_to
|
153
135
|
end
|
@@ -186,7 +168,7 @@ class HVACSizing
|
|
186
168
|
|
187
169
|
elsif (location == HPXML::LocationAtticUnvented) || (location == HPXML::LocationAtticVented)
|
188
170
|
|
189
|
-
attic_floors = @hpxml.
|
171
|
+
attic_floors = @hpxml.floors.select { |f| f.is_ceiling && [f.interior_adjacent_to, f.exterior_adjacent_to].include?(location) }
|
190
172
|
avg_floor_rvalue = calculate_average_r_value(attic_floors)
|
191
173
|
|
192
174
|
attic_roofs = @hpxml.roofs.select { |r| r.interior_adjacent_to == location }
|
@@ -227,11 +209,11 @@ class HVACSizing
|
|
227
209
|
|
228
210
|
area_total += roof.area
|
229
211
|
end
|
230
|
-
@hpxml.
|
231
|
-
next unless [
|
212
|
+
@hpxml.floors.each do |floor|
|
213
|
+
next unless [floor.interior_adjacent_to, floor.exterior_adjacent_to].include? location
|
232
214
|
|
233
|
-
area_total +=
|
234
|
-
area_conditioned +=
|
215
|
+
area_total += floor.area
|
216
|
+
area_conditioned += floor.area if floor.is_thermal_boundary
|
235
217
|
end
|
236
218
|
if area_total == 0
|
237
219
|
garage_frac_under_conditioned = 0.5
|
@@ -257,7 +239,7 @@ class HVACSizing
|
|
257
239
|
|
258
240
|
elsif (location == HPXML::LocationAtticUnvented) || (location == HPXML::LocationAtticVented)
|
259
241
|
|
260
|
-
attic_floors = @hpxml.
|
242
|
+
attic_floors = @hpxml.floors.select { |f| f.is_ceiling && [f.interior_adjacent_to, f.exterior_adjacent_to].include?(location) }
|
261
243
|
avg_floor_rvalue = calculate_average_r_value(attic_floors)
|
262
244
|
|
263
245
|
attic_roofs = @hpxml.roofs.select { |r| r.interior_adjacent_to == location }
|
@@ -704,7 +686,7 @@ class HVACSizing
|
|
704
686
|
bldg_design_loads.Cool_Skylights = alp_load + eal
|
705
687
|
end
|
706
688
|
|
707
|
-
def self.process_load_doors(bldg_design_loads
|
689
|
+
def self.process_load_doors(bldg_design_loads)
|
708
690
|
'''
|
709
691
|
Heating and Cooling Loads: Doors
|
710
692
|
'''
|
@@ -812,7 +794,7 @@ class HVACSizing
|
|
812
794
|
@hpxml.foundation_walls.each do |foundation_wall|
|
813
795
|
next unless foundation_wall.is_exterior_thermal_boundary
|
814
796
|
|
815
|
-
u_wall_with_soil,
|
797
|
+
u_wall_with_soil, _u_wall_without_soil = get_foundation_wall_properties(foundation_wall)
|
816
798
|
bldg_design_loads.Heat_Walls += u_wall_with_soil * foundation_wall.net_area * @htd
|
817
799
|
end
|
818
800
|
end
|
@@ -871,7 +853,7 @@ class HVACSizing
|
|
871
853
|
end
|
872
854
|
end
|
873
855
|
|
874
|
-
def self.process_load_ceilings(bldg_design_loads
|
856
|
+
def self.process_load_ceilings(bldg_design_loads)
|
875
857
|
'''
|
876
858
|
Heating and Cooling Loads: Ceilings
|
877
859
|
'''
|
@@ -879,22 +861,22 @@ class HVACSizing
|
|
879
861
|
bldg_design_loads.Heat_Ceilings = 0.0
|
880
862
|
bldg_design_loads.Cool_Ceilings = 0.0
|
881
863
|
|
882
|
-
@hpxml.
|
883
|
-
next unless
|
884
|
-
next unless
|
864
|
+
@hpxml.floors.each do |floor|
|
865
|
+
next unless floor.is_ceiling
|
866
|
+
next unless floor.is_thermal_boundary
|
885
867
|
|
886
|
-
if
|
887
|
-
bldg_design_loads.Cool_Ceilings += (1.0 /
|
888
|
-
bldg_design_loads.Heat_Ceilings += (1.0 /
|
868
|
+
if floor.is_exterior
|
869
|
+
bldg_design_loads.Cool_Ceilings += (1.0 / floor.insulation_assembly_r_value) * floor.area * (@ctd - 5.0 + @daily_range_temp_adjust[@daily_range_num])
|
870
|
+
bldg_design_loads.Heat_Ceilings += (1.0 / floor.insulation_assembly_r_value) * floor.area * @htd
|
889
871
|
else
|
890
|
-
adjacent_space =
|
891
|
-
bldg_design_loads.Cool_Ceilings += (1.0 /
|
892
|
-
bldg_design_loads.Heat_Ceilings += (1.0 /
|
872
|
+
adjacent_space = floor.exterior_adjacent_to
|
873
|
+
bldg_design_loads.Cool_Ceilings += (1.0 / floor.insulation_assembly_r_value) * floor.area * (@cool_design_temps[adjacent_space] - @cool_setpoint)
|
874
|
+
bldg_design_loads.Heat_Ceilings += (1.0 / floor.insulation_assembly_r_value) * floor.area * (@heat_setpoint - @heat_design_temps[adjacent_space])
|
893
875
|
end
|
894
876
|
end
|
895
877
|
end
|
896
878
|
|
897
|
-
def self.process_load_floors(bldg_design_loads
|
879
|
+
def self.process_load_floors(bldg_design_loads)
|
898
880
|
'''
|
899
881
|
Heating and Cooling Loads: Floors
|
900
882
|
'''
|
@@ -902,24 +884,24 @@ class HVACSizing
|
|
902
884
|
bldg_design_loads.Heat_Floors = 0.0
|
903
885
|
bldg_design_loads.Cool_Floors = 0.0
|
904
886
|
|
905
|
-
@hpxml.
|
906
|
-
next unless
|
907
|
-
next unless
|
887
|
+
@hpxml.floors.each do |floor|
|
888
|
+
next unless floor.is_floor
|
889
|
+
next unless floor.is_thermal_boundary
|
908
890
|
|
909
|
-
if
|
910
|
-
bldg_design_loads.Cool_Floors += (1.0 /
|
911
|
-
bldg_design_loads.Heat_Floors += (1.0 /
|
891
|
+
if floor.is_exterior
|
892
|
+
bldg_design_loads.Cool_Floors += (1.0 / floor.insulation_assembly_r_value) * floor.area * (@ctd - 5.0 + @daily_range_temp_adjust[@daily_range_num])
|
893
|
+
bldg_design_loads.Heat_Floors += (1.0 / floor.insulation_assembly_r_value) * floor.area * @htd
|
912
894
|
else # Partition floor
|
913
|
-
adjacent_space =
|
914
|
-
if
|
915
|
-
u_floor = 1.0 /
|
895
|
+
adjacent_space = floor.exterior_adjacent_to
|
896
|
+
if floor.is_floor && [HPXML::LocationCrawlspaceVented, HPXML::LocationCrawlspaceUnvented, HPXML::LocationBasementUnconditioned].include?(adjacent_space)
|
897
|
+
u_floor = 1.0 / floor.insulation_assembly_r_value
|
916
898
|
|
917
899
|
sum_ua_wall = 0.0
|
918
900
|
sum_a_wall = 0.0
|
919
901
|
@hpxml.foundation_walls.each do |foundation_wall|
|
920
902
|
next unless foundation_wall.is_exterior && foundation_wall.interior_adjacent_to == adjacent_space
|
921
903
|
|
922
|
-
|
904
|
+
_u_wall_with_soil, u_wall_without_soil = get_foundation_wall_properties(foundation_wall)
|
923
905
|
|
924
906
|
sum_a_wall += foundation_wall.net_area
|
925
907
|
sum_ua_wall += (u_wall_without_soil * foundation_wall.net_area)
|
@@ -946,17 +928,17 @@ class HVACSizing
|
|
946
928
|
ptdh_floor = u_wall * @htd / (4.0 * u_floor + u_wall)
|
947
929
|
end
|
948
930
|
|
949
|
-
bldg_design_loads.Cool_Floors += (1.0 /
|
950
|
-
bldg_design_loads.Heat_Floors += (1.0 /
|
931
|
+
bldg_design_loads.Cool_Floors += (1.0 / floor.insulation_assembly_r_value) * floor.area * ptdc_floor
|
932
|
+
bldg_design_loads.Heat_Floors += (1.0 / floor.insulation_assembly_r_value) * floor.area * ptdh_floor
|
951
933
|
else # E.g., floor over garage
|
952
|
-
bldg_design_loads.Cool_Floors += (1.0 /
|
953
|
-
bldg_design_loads.Heat_Floors += (1.0 /
|
934
|
+
bldg_design_loads.Cool_Floors += (1.0 / floor.insulation_assembly_r_value) * floor.area * (@cool_design_temps[adjacent_space] - @cool_setpoint)
|
935
|
+
bldg_design_loads.Heat_Floors += (1.0 / floor.insulation_assembly_r_value) * floor.area * (@heat_setpoint - @heat_design_temps[adjacent_space])
|
954
936
|
end
|
955
937
|
end
|
956
938
|
end
|
957
939
|
end
|
958
940
|
|
959
|
-
def self.process_load_slabs(bldg_design_loads
|
941
|
+
def self.process_load_slabs(bldg_design_loads)
|
960
942
|
'''
|
961
943
|
Heating and Cooling Loads: Floors
|
962
944
|
'''
|
@@ -967,12 +949,12 @@ class HVACSizing
|
|
967
949
|
next unless slab.is_thermal_boundary
|
968
950
|
|
969
951
|
if slab.interior_adjacent_to == HPXML::LocationLivingSpace # Slab-on-grade
|
970
|
-
f_value = calc_slab_f_value(slab)
|
952
|
+
f_value = calc_slab_f_value(slab, @hpxml.site.ground_conductivity)
|
971
953
|
bldg_design_loads.Heat_Slabs += f_value * slab.exposed_perimeter * @htd
|
972
954
|
elsif HPXML::conditioned_below_grade_locations.include? slab.interior_adjacent_to
|
973
955
|
# Based on MJ 8th Ed. A12-7 and ASHRAE HoF 2013 pg 18.31 Eq 40
|
974
956
|
# FIXME: Assumes slab is uninsulated?
|
975
|
-
k_soil =
|
957
|
+
k_soil = @hpxml.site.ground_conductivity
|
976
958
|
r_other = Material.Concrete(4.0).rvalue + Material.AirFilmFloorAverage.rvalue
|
977
959
|
foundation_walls = @hpxml.foundation_walls.select { |fw| fw.is_thermal_boundary }
|
978
960
|
z_f = foundation_walls.map { |fw| fw.depth_below_grade }.sum(0.0) / foundation_walls.size # Average below-grade depth
|
@@ -1082,7 +1064,7 @@ class HVACSizing
|
|
1082
1064
|
bldg_design_loads.Cool_Ducts_Lat = 0.0
|
1083
1065
|
end
|
1084
1066
|
|
1085
|
-
def self.apply_hvac_temperatures(hvac,
|
1067
|
+
def self.apply_hvac_temperatures(hvac, system_design_loads)
|
1086
1068
|
'''
|
1087
1069
|
HVAC Temperatures
|
1088
1070
|
'''
|
@@ -1093,7 +1075,7 @@ class HVACSizing
|
|
1093
1075
|
hvac.LeavingAirTemp = @cool_design_temps[HPXML::LocationOutside] - td
|
1094
1076
|
else
|
1095
1077
|
# Calculate Leaving Air Temperature
|
1096
|
-
shr = [
|
1078
|
+
shr = [system_design_loads.Cool_Sens / system_design_loads.Cool_Tot, 1.0].min
|
1097
1079
|
# Determine the Leaving Air Temperature (LAT) based on Manual S Table 1-4
|
1098
1080
|
if shr < 0.80
|
1099
1081
|
hvac.LeavingAirTemp = 54.0 # F
|
@@ -1111,7 +1093,8 @@ class HVACSizing
|
|
1111
1093
|
HPXML::HVACTypeHeatPumpMiniSplit,
|
1112
1094
|
HPXML::HVACTypeHeatPumpGroundToAir,
|
1113
1095
|
HPXML::HVACTypeHeatPumpWaterLoopToAir,
|
1114
|
-
HPXML::HVACTypeHeatPumpPTHP
|
1096
|
+
HPXML::HVACTypeHeatPumpPTHP,
|
1097
|
+
HPXML::HVACTypeHeatPumpRoom].include? hvac.HeatType
|
1115
1098
|
hvac.SupplyAirTemp = 105.0 # F
|
1116
1099
|
hvac.BackupSupplyAirTemp = 120.0 # F
|
1117
1100
|
else
|
@@ -1119,21 +1102,29 @@ class HVACSizing
|
|
1119
1102
|
end
|
1120
1103
|
end
|
1121
1104
|
|
1122
|
-
def self.apply_hvac_loads(hvac,
|
1105
|
+
def self.apply_hvac_loads(hvac, system_design_loads, bldg_design_loads, ducts_heat_load, ducts_cool_load_sens, ducts_cool_load_lat)
|
1123
1106
|
# Calculate design loads that this HVAC system serves
|
1124
1107
|
|
1125
1108
|
# Heating
|
1126
|
-
|
1109
|
+
system_design_loads.Heat_Load = bldg_design_loads.Heat_Tot * hvac.HeatingLoadFraction
|
1127
1110
|
if hvac.HeatType == HPXML::HVACTypeHeatPumpWaterLoopToAir
|
1128
1111
|
# Size to meet original fraction load served (not adjusted value from HVAC.apply_shared_heating_systems()
|
1129
1112
|
# This ensures, e.g., that an appropriate heating airflow is used for duct losses.
|
1130
|
-
|
1113
|
+
system_design_loads.Heat_Load = system_design_loads.Heat_Load / (1.0 / hvac.HeatingCOP)
|
1131
1114
|
end
|
1115
|
+
system_design_loads.Heat_Load_Supp = system_design_loads.Heat_Load
|
1132
1116
|
|
1133
1117
|
# Cooling
|
1134
|
-
|
1135
|
-
|
1136
|
-
|
1118
|
+
system_design_loads.Cool_Load_Tot = bldg_design_loads.Cool_Tot * hvac.CoolingLoadFraction
|
1119
|
+
system_design_loads.Cool_Load_Sens = bldg_design_loads.Cool_Sens * hvac.CoolingLoadFraction
|
1120
|
+
system_design_loads.Cool_Load_Lat = bldg_design_loads.Cool_Lat * hvac.CoolingLoadFraction
|
1121
|
+
|
1122
|
+
# After applying load fraction to building design loads (w/o ducts), add duct load specific to this HVAC system
|
1123
|
+
system_design_loads.Heat_Load += ducts_heat_load.to_f
|
1124
|
+
system_design_loads.Heat_Load_Supp += ducts_heat_load.to_f
|
1125
|
+
system_design_loads.Cool_Load_Sens += ducts_cool_load_sens.to_f
|
1126
|
+
system_design_loads.Cool_Load_Lat += ducts_cool_load_lat.to_f
|
1127
|
+
system_design_loads.Cool_Load_Tot += ducts_cool_load_sens.to_f + ducts_cool_load_lat.to_f
|
1137
1128
|
end
|
1138
1129
|
|
1139
1130
|
def self.apply_hvac_heat_pump_logic(hvac_sizing_values, hvac)
|
@@ -1142,8 +1133,10 @@ class HVACSizing
|
|
1142
1133
|
HPXML::HVACTypeHeatPumpMiniSplit,
|
1143
1134
|
HPXML::HVACTypeHeatPumpGroundToAir,
|
1144
1135
|
HPXML::HVACTypeHeatPumpWaterLoopToAir,
|
1145
|
-
HPXML::HVACTypeHeatPumpPTHP
|
1136
|
+
HPXML::HVACTypeHeatPumpPTHP,
|
1137
|
+
HPXML::HVACTypeHeatPumpRoom].include? hvac.CoolType
|
1146
1138
|
if (@hpxml.header.heat_pump_sizing_methodology != HPXML::HeatPumpSizingACCA) && (hvac.CoolingLoadFraction > 0) && (hvac.HeatingLoadFraction > 0)
|
1139
|
+
# Note: Heat_Load_Supp should NOT be adjusted; we only want to adjust the HP capacity, not the HP backup heating capacity.
|
1147
1140
|
max_load = [hvac_sizing_values.Heat_Load, hvac_sizing_values.Cool_Load_Tot].max
|
1148
1141
|
hvac_sizing_values.Heat_Load = max_load
|
1149
1142
|
hvac_sizing_values.Cool_Load_Sens *= max_load / hvac_sizing_values.Cool_Load_Tot
|
@@ -1173,7 +1166,7 @@ class HVACSizing
|
|
1173
1166
|
|
1174
1167
|
elsif [HPXML::LocationBasementUnconditioned, HPXML::LocationCrawlspaceVented, HPXML::LocationCrawlspaceUnvented].include? duct.Location
|
1175
1168
|
|
1176
|
-
ceilings = @hpxml.
|
1169
|
+
ceilings = @hpxml.floors.select { |f| f.is_floor && [f.interior_adjacent_to, f.exterior_adjacent_to].include?(duct.Location) }
|
1177
1170
|
avg_ceiling_rvalue = calculate_average_r_value(ceilings)
|
1178
1171
|
ceiling_insulated = (avg_ceiling_rvalue > 4)
|
1179
1172
|
|
@@ -1227,14 +1220,14 @@ class HVACSizing
|
|
1227
1220
|
return dse_Fregain
|
1228
1221
|
end
|
1229
1222
|
|
1230
|
-
def self.calculate_load_ducts_heating(
|
1223
|
+
def self.calculate_load_ducts_heating(system_design_loads, hvac)
|
1231
1224
|
'''
|
1232
1225
|
Heating Duct Loads
|
1233
1226
|
'''
|
1234
1227
|
|
1235
|
-
return if (
|
1228
|
+
return if (system_design_loads.Heat_Tot == 0) || (hvac.HeatingLoadFraction == 0) || hvac.Ducts.empty?
|
1236
1229
|
|
1237
|
-
init_heat_load =
|
1230
|
+
init_heat_load = system_design_loads.Heat_Tot * hvac.HeatingLoadFraction
|
1238
1231
|
|
1239
1232
|
# Distribution system efficiency (DSE) calculations based on ASHRAE Standard 152
|
1240
1233
|
dse_As, dse_Ar = calc_ducts_areas(hvac.Ducts)
|
@@ -1280,14 +1273,14 @@ class HVACSizing
|
|
1280
1273
|
return ducts_heat_load
|
1281
1274
|
end
|
1282
1275
|
|
1283
|
-
def self.calculate_load_ducts_cooling(
|
1276
|
+
def self.calculate_load_ducts_cooling(system_design_loads, weather, hvac)
|
1284
1277
|
'''
|
1285
1278
|
Cooling Duct Loads
|
1286
1279
|
'''
|
1287
|
-
return if (
|
1280
|
+
return if (system_design_loads.Cool_Sens == 0) || (hvac.CoolingLoadFraction == 0) || hvac.Ducts.empty?
|
1288
1281
|
|
1289
|
-
init_cool_load_sens =
|
1290
|
-
init_cool_load_lat =
|
1282
|
+
init_cool_load_sens = system_design_loads.Cool_Sens * hvac.CoolingLoadFraction
|
1283
|
+
init_cool_load_lat = system_design_loads.Cool_Lat * hvac.CoolingLoadFraction
|
1291
1284
|
|
1292
1285
|
# Distribution system efficiency (DSE) calculations based on ASHRAE Standard 152
|
1293
1286
|
dse_As, dse_Ar = calc_ducts_areas(hvac.Ducts)
|
@@ -1314,7 +1307,7 @@ class HVACSizing
|
|
1314
1307
|
cool_load_tot_next = init_cool_load_sens + init_cool_load_lat
|
1315
1308
|
|
1316
1309
|
cool_cfm = calc_airflow_rate_manual_s(init_cool_load_sens, (@cool_setpoint - hvac.LeavingAirTemp))
|
1317
|
-
|
1310
|
+
_dse_Qs, dse_Qr = calc_ducts_leakages(hvac.Ducts, cool_cfm)
|
1318
1311
|
|
1319
1312
|
for _iter in 1..50
|
1320
1313
|
break if delta.abs <= 0.001
|
@@ -1329,7 +1322,7 @@ class HVACSizing
|
|
1329
1322
|
|
1330
1323
|
dse_Qs, dse_Qr = calc_ducts_leakages(hvac.Ducts, cool_cfm)
|
1331
1324
|
|
1332
|
-
dse_DE,
|
1325
|
+
dse_DE, _dse_dTe_cooling, _cool_duct_sens = calc_delivery_effectiveness_cooling(dse_Qs, dse_Qr, hvac.LeavingAirTemp, cool_cfm, cool_load_sens, dse_Tamb_cooling_s, dse_Tamb_cooling_r, dse_As, dse_Ar, @cool_setpoint, dse_Fregain_s, dse_Fregain_r, cool_load_tot, dse_h_r, supply_r, return_r)
|
1333
1326
|
|
1334
1327
|
cool_load_tot_next = (init_cool_load_sens + init_cool_load_lat) / dse_DE
|
1335
1328
|
|
@@ -1343,13 +1336,13 @@ class HVACSizing
|
|
1343
1336
|
end
|
1344
1337
|
|
1345
1338
|
def self.apply_load_ducts(bldg_design_loads, total_ducts_heat_load, total_ducts_cool_load_sens, total_ducts_cool_load_lat)
|
1346
|
-
bldg_design_loads.Heat_Ducts += total_ducts_heat_load
|
1347
|
-
bldg_design_loads.Heat_Tot += total_ducts_heat_load
|
1348
|
-
bldg_design_loads.Cool_Ducts_Sens += total_ducts_cool_load_sens
|
1349
|
-
bldg_design_loads.Cool_Sens += total_ducts_cool_load_sens
|
1350
|
-
bldg_design_loads.Cool_Ducts_Lat += total_ducts_cool_load_lat
|
1351
|
-
bldg_design_loads.Cool_Lat += total_ducts_cool_load_lat
|
1352
|
-
bldg_design_loads.Cool_Tot += total_ducts_cool_load_sens + total_ducts_cool_load_lat
|
1339
|
+
bldg_design_loads.Heat_Ducts += total_ducts_heat_load.to_f
|
1340
|
+
bldg_design_loads.Heat_Tot += total_ducts_heat_load.to_f
|
1341
|
+
bldg_design_loads.Cool_Ducts_Sens += total_ducts_cool_load_sens.to_f
|
1342
|
+
bldg_design_loads.Cool_Sens += total_ducts_cool_load_sens.to_f
|
1343
|
+
bldg_design_loads.Cool_Ducts_Lat += total_ducts_cool_load_lat.to_f
|
1344
|
+
bldg_design_loads.Cool_Lat += total_ducts_cool_load_lat.to_f
|
1345
|
+
bldg_design_loads.Cool_Tot += total_ducts_cool_load_sens.to_f + total_ducts_cool_load_lat.to_f
|
1353
1346
|
end
|
1354
1347
|
|
1355
1348
|
def self.apply_hvac_equipment_adjustments(hvac_sizing_values, weather, hvac)
|
@@ -1485,7 +1478,8 @@ class HVACSizing
|
|
1485
1478
|
|
1486
1479
|
elsif [HPXML::HVACTypeRoomAirConditioner,
|
1487
1480
|
HPXML::HVACTypePTAC,
|
1488
|
-
HPXML::HVACTypeHeatPumpPTHP
|
1481
|
+
HPXML::HVACTypeHeatPumpPTHP,
|
1482
|
+
HPXML::HVACTypeHeatPumpRoom].include? hvac.CoolType
|
1489
1483
|
|
1490
1484
|
enteringTemp = weather.design.CoolingDrybulb
|
1491
1485
|
totalCap_CurveValue = MathTools.biquadratic(@wetbulb_indoor_cooling, enteringTemp, hvac.COOL_CAP_FT_SPEC[hvac.SizingSpeed])
|
@@ -1571,9 +1565,10 @@ class HVACSizing
|
|
1571
1565
|
|
1572
1566
|
elsif [HPXML::HVACTypeHeatPumpAirToAir,
|
1573
1567
|
HPXML::HVACTypeHeatPumpMiniSplit,
|
1574
|
-
HPXML::HVACTypeHeatPumpPTHP
|
1568
|
+
HPXML::HVACTypeHeatPumpPTHP,
|
1569
|
+
HPXML::HVACTypeHeatPumpRoom].include? hvac.HeatType
|
1575
1570
|
process_heat_pump_adjustment(hvac_sizing_values, weather, hvac, totalCap_CurveValue)
|
1576
|
-
hvac_sizing_values.Heat_Capacity_Supp = hvac_sizing_values.
|
1571
|
+
hvac_sizing_values.Heat_Capacity_Supp = hvac_sizing_values.Heat_Load_Supp
|
1577
1572
|
if hvac.HeatType == HPXML::HVACTypeHeatPumpAirToAir
|
1578
1573
|
hvac_sizing_values.Heat_Airflow = calc_airflow_rate_manual_s(hvac_sizing_values.Heat_Capacity, (hvac.SupplyAirTemp - @heat_setpoint))
|
1579
1574
|
else
|
@@ -1585,14 +1580,12 @@ class HVACSizing
|
|
1585
1580
|
|
1586
1581
|
if hvac_sizing_values.Cool_Capacity > 0
|
1587
1582
|
hvac_sizing_values.Heat_Capacity = hvac_sizing_values.Heat_Load
|
1588
|
-
hvac_sizing_values.Heat_Capacity_Supp = hvac_sizing_values.
|
1583
|
+
hvac_sizing_values.Heat_Capacity_Supp = hvac_sizing_values.Heat_Load_Supp
|
1589
1584
|
|
1590
1585
|
# For single stage compressor, when heating capacity is much larger than cooling capacity,
|
1591
1586
|
# in order to avoid frequent cycling in cooling mode, heating capacity is derated to 75%.
|
1592
1587
|
if hvac_sizing_values.Heat_Capacity >= 1.5 * hvac_sizing_values.Cool_Capacity
|
1593
1588
|
hvac_sizing_values.Heat_Capacity = hvac_sizing_values.Heat_Load * 0.75
|
1594
|
-
elsif hvac_sizing_values.Heat_Capacity < hvac_sizing_values.Cool_Capacity
|
1595
|
-
hvac_sizing_values.Heat_Capacity_Supp = hvac_sizing_values.Heat_Capacity
|
1596
1589
|
end
|
1597
1590
|
|
1598
1591
|
hvac_sizing_values.Cool_Capacity = [hvac_sizing_values.Cool_Capacity, hvac_sizing_values.Heat_Capacity].max
|
@@ -1605,7 +1598,7 @@ class HVACSizing
|
|
1605
1598
|
hvac_sizing_values.Cool_Airflow = calc_airflow_rate_manual_s(cool_Load_SensCap_Design, (@cool_setpoint - hvac.LeavingAirTemp))
|
1606
1599
|
else
|
1607
1600
|
hvac_sizing_values.Heat_Capacity = hvac_sizing_values.Heat_Load
|
1608
|
-
hvac_sizing_values.Heat_Capacity_Supp = hvac_sizing_values.
|
1601
|
+
hvac_sizing_values.Heat_Capacity_Supp = hvac_sizing_values.Heat_Load_Supp
|
1609
1602
|
end
|
1610
1603
|
hvac_sizing_values.Heat_Airflow = calc_airflow_rate_manual_s(hvac_sizing_values.Heat_Capacity, (hvac.SupplyAirTemp - @heat_setpoint))
|
1611
1604
|
hvac_sizing_values.Heat_Airflow_Supp = calc_airflow_rate_manual_s(hvac_sizing_values.Heat_Capacity_Supp, (hvac.BackupSupplyAirTemp - @heat_setpoint))
|
@@ -1613,12 +1606,12 @@ class HVACSizing
|
|
1613
1606
|
elsif [HPXML::HVACTypeHeatPumpWaterLoopToAir].include? hvac.HeatType
|
1614
1607
|
|
1615
1608
|
hvac_sizing_values.Heat_Capacity = hvac_sizing_values.Heat_Load
|
1616
|
-
hvac_sizing_values.Heat_Capacity_Supp = hvac_sizing_values.
|
1609
|
+
hvac_sizing_values.Heat_Capacity_Supp = hvac_sizing_values.Heat_Load_Supp
|
1617
1610
|
|
1618
1611
|
hvac_sizing_values.Heat_Airflow = calc_airflow_rate_manual_s(hvac_sizing_values.Heat_Capacity, (hvac.SupplyAirTemp - @heat_setpoint))
|
1619
1612
|
hvac_sizing_values.Heat_Airflow_Supp = calc_airflow_rate_manual_s(hvac_sizing_values.Heat_Capacity_Supp, (hvac.BackupSupplyAirTemp - @heat_setpoint))
|
1620
1613
|
|
1621
|
-
elsif
|
1614
|
+
elsif (hvac.HeatType == HPXML::HVACTypeFurnace) || hvac.HasIntegratedHeating
|
1622
1615
|
|
1623
1616
|
hvac_sizing_values.Heat_Capacity = hvac_sizing_values.Heat_Load
|
1624
1617
|
hvac_sizing_values.Heat_Capacity_Supp = 0.0
|
@@ -1680,8 +1673,6 @@ class HVACSizing
|
|
1680
1673
|
return if (hvac.ChargeDefectRatio.to_f.abs < 0.001) && (hvac.AirflowDefectRatioCooling.to_f.abs < 0.001) && (hvac.AirflowDefectRatioHeating.to_f.abs < 0.001)
|
1681
1674
|
|
1682
1675
|
tin_cool = UnitConversions.convert(@cool_setpoint, 'F', 'C')
|
1683
|
-
tin_heat = UnitConversions.convert(@heat_setpoint, 'F', 'C')
|
1684
|
-
|
1685
1676
|
tout_cool = UnitConversions.convert(weather.design.CoolingDrybulb, 'F', 'C')
|
1686
1677
|
tout_heat = UnitConversions.convert(weather.design.HeatingDrybulb, 'F', 'C')
|
1687
1678
|
|
@@ -1710,12 +1701,12 @@ class HVACSizing
|
|
1710
1701
|
cap_clg_ratios = []
|
1711
1702
|
for speed in 0..(hvac.NumSpeedsCooling - 1)
|
1712
1703
|
# NOTE: heat pump (cooling) curves don't exhibit expected trends at extreme faults;
|
1713
|
-
clg_fff_cap_coeff,
|
1704
|
+
clg_fff_cap_coeff, _clg_fff_eir_coeff = HVAC.get_airflow_fault_cooling_coeff()
|
1714
1705
|
a1_AF_Qgr_c = clg_fff_cap_coeff[0]
|
1715
1706
|
a2_AF_Qgr_c = clg_fff_cap_coeff[1]
|
1716
1707
|
a3_AF_Qgr_c = clg_fff_cap_coeff[2]
|
1717
1708
|
|
1718
|
-
|
1709
|
+
qgr_values, _p_values, ff_chg_values = HVAC.get_charge_fault_cooling_coeff(f_ch)
|
1719
1710
|
|
1720
1711
|
a1_CH_Qgr_c = qgr_values[0]
|
1721
1712
|
a2_CH_Qgr_c = qgr_values[1]
|
@@ -1776,12 +1767,12 @@ class HVACSizing
|
|
1776
1767
|
if not heat_airflow_rated_defect_ratio.empty?
|
1777
1768
|
cap_htg_ratios = []
|
1778
1769
|
for speed in 0..(hvac.NumSpeedsHeating - 1)
|
1779
|
-
htg_fff_cap_coeff,
|
1770
|
+
htg_fff_cap_coeff, _htg_fff_eir_coeff = HVAC.get_airflow_fault_heating_coeff()
|
1780
1771
|
a1_AF_Qgr_h = htg_fff_cap_coeff[0]
|
1781
1772
|
a2_AF_Qgr_h = htg_fff_cap_coeff[1]
|
1782
1773
|
a3_AF_Qgr_h = htg_fff_cap_coeff[2]
|
1783
1774
|
|
1784
|
-
|
1775
|
+
qgr_values, _p_values, ff_chg_values = HVAC.get_charge_fault_heating_coeff(f_ch)
|
1785
1776
|
|
1786
1777
|
a1_CH_Qgr_h = qgr_values[0]
|
1787
1778
|
a2_CH_Qgr_h = qgr_values[2]
|
@@ -1874,7 +1865,7 @@ class HVACSizing
|
|
1874
1865
|
bore_depth = (bore_length / num_bore_holes).floor # ft
|
1875
1866
|
min_bore_depth = 0.15 * bore_spacing # 0.15 is the maximum Spacing2DepthRatio defined for the G-function
|
1876
1867
|
|
1877
|
-
|
1868
|
+
for _i in 0..4
|
1878
1869
|
if (bore_depth < min_bore_depth) && (num_bore_holes > 1)
|
1879
1870
|
num_bore_holes -= 1
|
1880
1871
|
bore_depth = (bore_length / num_bore_holes).floor
|
@@ -1886,8 +1877,6 @@ class HVACSizing
|
|
1886
1877
|
|
1887
1878
|
bore_depth = (bore_length / num_bore_holes).floor + 5
|
1888
1879
|
|
1889
|
-
bore_length = bore_depth * num_bore_holes
|
1890
|
-
|
1891
1880
|
if num_bore_holes == 1
|
1892
1881
|
bore_config = 'single'
|
1893
1882
|
elsif num_bore_holes == 2
|
@@ -1947,7 +1936,7 @@ class HVACSizing
|
|
1947
1936
|
hvac_sizing_values.GSHP_G_Functions = [lntts, gfnc_coeff]
|
1948
1937
|
end
|
1949
1938
|
|
1950
|
-
def self.apply_hvac_finalize_airflows(hvac_sizing_values,
|
1939
|
+
def self.apply_hvac_finalize_airflows(hvac_sizing_values, hvac)
|
1951
1940
|
'''
|
1952
1941
|
Finalize Sizing Calculations
|
1953
1942
|
'''
|
@@ -1974,10 +1963,10 @@ class HVACSizing
|
|
1974
1963
|
end
|
1975
1964
|
|
1976
1965
|
if (not hvac.SwitchoverTemperature.nil?) && (hvac.SwitchoverTemperature > weather.design.HeatingDrybulb)
|
1977
|
-
# Calculate the heating load at the switchover temperature to limit
|
1978
|
-
switchover_weather = weather
|
1966
|
+
# Calculate the heating load at the switchover temperature to limit uninitialized capacity
|
1967
|
+
switchover_weather = Marshal.load(Marshal.dump(weather))
|
1979
1968
|
switchover_weather.design.HeatingDrybulb = hvac.SwitchoverTemperature
|
1980
|
-
|
1969
|
+
_switchover_bldg_design_loads, switchover_all_hvac_sizing_values = calculate(switchover_weather, @hpxml, @cfa, @nbeds, [hvac.hvac_system])
|
1981
1970
|
heating_load = switchover_all_hvac_sizing_values[hvac.hvac_system].Heat_Load
|
1982
1971
|
heating_db = switchover_weather.design.HeatingDrybulb
|
1983
1972
|
else
|
@@ -2020,7 +2009,9 @@ class HVACSizing
|
|
2020
2009
|
end
|
2021
2010
|
|
2022
2011
|
def self.get_ventilation_rates()
|
2023
|
-
|
2012
|
+
# If CFIS w/ supplemental fan, assume air handler is running most of the hour and can provide
|
2013
|
+
# all ventilation needs (i.e., supplemental fan does not need to run), so skip supplement fan
|
2014
|
+
vent_fans_mech = @hpxml.ventilation_fans.select { |f| f.used_for_whole_building_ventilation && !f.is_cfis_supplemental_fan? && f.flow_rate > 0 && f.hours_in_operation > 0 }
|
2024
2015
|
if vent_fans_mech.empty?
|
2025
2016
|
return [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
|
2026
2017
|
end
|
@@ -2054,10 +2045,10 @@ class HVACSizing
|
|
2054
2045
|
tot_unbal_cfm = (tot_sup_cfm - tot_exh_cfm).abs
|
2055
2046
|
tot_bal_cfm = [tot_exh_cfm, tot_sup_cfm].min
|
2056
2047
|
|
2057
|
-
# Calculate
|
2048
|
+
# Calculate effectiveness for all ERV/HRV and store results in a hash
|
2058
2049
|
hrv_erv_effectiveness_map = Airflow.calc_hrv_erv_effectiveness(vent_mech_erv_hrv_tot)
|
2059
2050
|
|
2060
|
-
# Calculate cfm weighted average
|
2051
|
+
# Calculate cfm weighted average effectiveness for the combined balanced airflow
|
2061
2052
|
weighted_vent_mech_lat_eff = 0.0
|
2062
2053
|
weighted_vent_mech_apparent_sens_eff = 0.0
|
2063
2054
|
vent_mech_erv_hrv_unprecond = vent_mech_erv_hrv_tot.select { |vent_mech| vent_mech.preheating_efficiency_cop.nil? && vent_mech.precooling_efficiency_cop.nil? }
|
@@ -2148,7 +2139,7 @@ class HVACSizing
|
|
2148
2139
|
'''
|
2149
2140
|
Calculate the Delivery Effectiveness for cooling (using the method of ASHRAE Standard 152).
|
2150
2141
|
'''
|
2151
|
-
dse_Bs, dse_Br, dse_a_s, dse_a_r, dse_dTe,
|
2142
|
+
dse_Bs, dse_Br, dse_a_s, dse_a_r, dse_dTe, _dse_dT_s, dse_dT_r = _calc_dse_init(system_cfm, load_sens, dse_Tamb_s, dse_Tamb_r, dse_As, dse_Ar, t_setpoint, dse_Qs, dse_Qr, supply_r, return_r, air_dens, air_cp)
|
2152
2143
|
dse_dTe *= -1.0
|
2153
2144
|
dse_DE, coolingLoad_Ducts_Sens = _calc_dse_DE_cooling(dse_a_s, system_cfm, load_total, dse_a_r, dse_h_r, dse_Br, dse_dT_r, dse_Bs, leavingAirTemp, dse_Tamb_s, load_sens, air_dens, air_cp, h_in)
|
2154
2145
|
dse_DEcorr = _calc_dse_DEcorr(dse_DE, dse_Fregain_s, dse_Fregain_r, dse_Br, dse_a_r, dse_dT_r, dse_dTe)
|
@@ -2352,6 +2343,13 @@ class HVACSizing
|
|
2352
2343
|
end
|
2353
2344
|
end
|
2354
2345
|
|
2346
|
+
# Integrated heating systems
|
2347
|
+
if hpxml_hvac.is_a?(HPXML::CoolingSystem) && hpxml_hvac.has_integrated_heating
|
2348
|
+
hvac.HasIntegratedHeating = true
|
2349
|
+
hvac.HeatingLoadFraction = hpxml_hvac.integrated_heating_system_fraction_heat_load_served
|
2350
|
+
hvac.FixedHeatingCapacity = hpxml_hvac.integrated_heating_system_capacity
|
2351
|
+
end
|
2352
|
+
|
2355
2353
|
# HP Switchover Temperature
|
2356
2354
|
if hpxml_hvac.is_a?(HPXML::HeatPump)
|
2357
2355
|
hvac.SwitchoverTemperature = hpxml_hvac.backup_heating_switchover_temp
|
@@ -2485,7 +2483,6 @@ class HVACSizing
|
|
2485
2483
|
hvac.GSHP_pipe_od = hpxml_hvac_ap.pipe_od
|
2486
2484
|
hvac.GSHP_pipe_id = hpxml_hvac_ap.pipe_id
|
2487
2485
|
hvac.GSHP_pipe_cond = hpxml_hvac_ap.pipe_cond
|
2488
|
-
hvac.GSHP_ground_k = hpxml_hvac_ap.ground_conductivity
|
2489
2486
|
hvac.GSHP_grout_k = hpxml_hvac_ap.grout_conductivity
|
2490
2487
|
end
|
2491
2488
|
|
@@ -2525,7 +2522,7 @@ class HVACSizing
|
|
2525
2522
|
d = DuctInfo.new
|
2526
2523
|
d.Side = duct.duct_type
|
2527
2524
|
d.Location = duct.duct_location
|
2528
|
-
d.Area = duct.duct_surface_area
|
2525
|
+
d.Area = duct.duct_surface_area * duct.duct_surface_area_multiplier
|
2529
2526
|
|
2530
2527
|
# Calculate R-value w/ air film
|
2531
2528
|
d.Rvalue = Airflow.get_duct_insulation_rvalue(duct.duct_insulation_r_value, d.Side)
|
@@ -2620,7 +2617,7 @@ class HVACSizing
|
|
2620
2617
|
HPXML::LocationLivingSpace => 0.0 }
|
2621
2618
|
|
2622
2619
|
# Surface UAs
|
2623
|
-
(@hpxml.roofs + @hpxml.
|
2620
|
+
(@hpxml.roofs + @hpxml.floors + @hpxml.walls + @hpxml.foundation_walls).each do |surface|
|
2624
2621
|
next unless ((location == surface.interior_adjacent_to && space_UAs.keys.include?(surface.exterior_adjacent_to)) ||
|
2625
2622
|
(location == surface.exterior_adjacent_to && space_UAs.keys.include?(surface.interior_adjacent_to)))
|
2626
2623
|
|
@@ -2630,14 +2627,13 @@ class HVACSizing
|
|
2630
2627
|
space_UAs[HPXML::LocationLivingSpace] += (1.0 / surface.insulation_assembly_r_value) * surface.area
|
2631
2628
|
elsif [surface.interior_adjacent_to, surface.exterior_adjacent_to].include? HPXML::LocationGround
|
2632
2629
|
if surface.is_a? HPXML::FoundationWall
|
2633
|
-
|
2630
|
+
_u_wall_with_soil, u_wall_without_soil = get_foundation_wall_properties(surface)
|
2634
2631
|
space_UAs[HPXML::LocationGround] += u_wall_without_soil * surface.area
|
2635
2632
|
end
|
2636
2633
|
end
|
2637
2634
|
end
|
2638
2635
|
|
2639
2636
|
# Infiltration UA
|
2640
|
-
infiltration_cfm = nil
|
2641
2637
|
ach = nil
|
2642
2638
|
if [HPXML::LocationCrawlspaceVented, HPXML::LocationAtticVented].include? location
|
2643
2639
|
# Vented space
|
@@ -2663,7 +2659,7 @@ class HVACSizing
|
|
2663
2659
|
|
2664
2660
|
# Total UA
|
2665
2661
|
total_UA = 0.0
|
2666
|
-
space_UAs.each do |
|
2662
|
+
space_UAs.values.each do |ua|
|
2667
2663
|
total_UA += ua
|
2668
2664
|
end
|
2669
2665
|
space_UAs['total'] = total_UA
|
@@ -2936,7 +2932,7 @@ class HVACSizing
|
|
2936
2932
|
beta_1 = -0.94467
|
2937
2933
|
end
|
2938
2934
|
|
2939
|
-
r_value_ground = Math.log(bore_spacing / hvac.GSHP_bore_d * 12.0) / 2.0 / Math::PI /
|
2935
|
+
r_value_ground = Math.log(bore_spacing / hvac.GSHP_bore_d * 12.0) / 2.0 / Math::PI / @hpxml.site.ground_conductivity
|
2940
2936
|
r_value_grout = 1.0 / hvac.GSHP_grout_k / beta_0 / ((hvac.GSHP_bore_d / hvac.GSHP_pipe_od)**beta_1)
|
2941
2937
|
r_value_bore = r_value_grout + pipe_r_value / 2.0 # Note: Convection resistance is negligible when calculated against Glhepro (Jeffrey D. Spitler, 2000)
|
2942
2938
|
|
@@ -3302,7 +3298,7 @@ class HVACSizing
|
|
3302
3298
|
wall_ins_heights = [foundation_wall.insulation_interior_distance_to_bottom - foundation_wall.insulation_interior_distance_to_top,
|
3303
3299
|
foundation_wall.insulation_exterior_distance_to_bottom - foundation_wall.insulation_exterior_distance_to_top]
|
3304
3300
|
end
|
3305
|
-
k_soil =
|
3301
|
+
k_soil = @hpxml.site.ground_conductivity
|
3306
3302
|
|
3307
3303
|
# Calculated based on Manual J 8th Ed. procedure in section A12-4 (15% decrease due to soil thermal storage)
|
3308
3304
|
u_wall_with_soil = 0.0
|
@@ -3330,26 +3326,25 @@ class HVACSizing
|
|
3330
3326
|
return u_wall_with_soil, u_wall_without_soil
|
3331
3327
|
end
|
3332
3328
|
|
3333
|
-
def self.calc_slab_f_value(slab)
|
3329
|
+
def self.calc_slab_f_value(slab, ground_conductivity)
|
3334
3330
|
# Calculation for the F-values in Table 4A for slab foundations.
|
3335
3331
|
# Important pages are the Table values (pg. 344-345) and the software protocols
|
3336
3332
|
# in Appendix 12 (pg. 517-518).
|
3337
3333
|
ins_rvalue = slab.under_slab_insulation_r_value + slab.perimeter_insulation_r_value
|
3338
3334
|
ins_rvalue_edge = slab.perimeter_insulation_r_value
|
3339
|
-
|
3340
|
-
|
3341
|
-
|
3342
|
-
|
3343
|
-
|
3344
|
-
|
3345
|
-
ins_length += slab.under_slab_insulation_width
|
3346
|
-
end
|
3347
|
-
if slab.perimeter_insulation_r_value > 0
|
3348
|
-
ins_length += slab.perimeter_insulation_depth
|
3349
|
-
end
|
3335
|
+
if slab.under_slab_insulation_spans_entire_slab
|
3336
|
+
ins_length = 1000.0
|
3337
|
+
else
|
3338
|
+
ins_length = 0
|
3339
|
+
if slab.under_slab_insulation_r_value > 0
|
3340
|
+
ins_length += slab.under_slab_insulation_width
|
3350
3341
|
end
|
3342
|
+
if slab.perimeter_insulation_r_value > 0
|
3343
|
+
ins_length += slab.perimeter_insulation_depth
|
3344
|
+
end
|
3345
|
+
end
|
3351
3346
|
|
3352
|
-
soil_r_per_foot =
|
3347
|
+
soil_r_per_foot = ground_conductivity
|
3353
3348
|
slab_r_gravel_per_inch = 0.65 # Based on calibration by Tony Fontanini
|
3354
3349
|
|
3355
3350
|
# Because of uncertainty pertaining to the effective path radius, F-values are calculated
|
@@ -3410,7 +3405,7 @@ class HVACSizingValues
|
|
3410
3405
|
end
|
3411
3406
|
attr_accessor(:Cool_Load_Sens, :Cool_Load_Lat, :Cool_Load_Tot,
|
3412
3407
|
:Cool_Capacity, :Cool_Capacity_Sens, :Cool_Airflow,
|
3413
|
-
:Heat_Load, :Heat_Capacity, :Heat_Capacity_Supp,
|
3408
|
+
:Heat_Load, :Heat_Load_Supp, :Heat_Capacity, :Heat_Capacity_Supp,
|
3414
3409
|
:Heat_Airflow, :Heat_Airflow_Supp,
|
3415
3410
|
:GSHP_Loop_flow, :GSHP_Bore_Holes, :GSHP_Bore_Depth, :GSHP_G_Functions)
|
3416
3411
|
end
|
@@ -3444,7 +3439,7 @@ class HVACInfo
|
|
3444
3439
|
:GSHP_SpacingType, :EvapCoolerEffectiveness, :SwitchoverTemperature, :LeavingAirTemp,
|
3445
3440
|
:HeatingLoadFraction, :CoolingLoadFraction, :SupplyAirTemp, :BackupSupplyAirTemp,
|
3446
3441
|
:GSHP_design_chw, :GSHP_design_delta_t, :GSHP_design_hw, :GSHP_bore_d,
|
3447
|
-
:GSHP_pipe_od, :GSHP_pipe_id, :GSHP_pipe_cond, :
|
3442
|
+
:GSHP_pipe_od, :GSHP_pipe_id, :GSHP_pipe_cond, :GSHP_grout_k, :HasIntegratedHeating)
|
3448
3443
|
end
|
3449
3444
|
|
3450
3445
|
class DuctInfo
|