urbanopt-cli 0.8.3 → 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 +14 -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 +596 -96
- 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
@@ -48,10 +48,12 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
48
48
|
hpxml.header.state_code = 'CA'
|
49
49
|
hpxml.header.time_zone_utc_offset = -8
|
50
50
|
hpxml.header.occupancy_calculation_type = HPXML::OccupancyCalculationTypeOperational
|
51
|
+
hpxml.header.temperature_capacitance_multiplier = 1.5
|
52
|
+
hpxml.header.natvent_days_per_week = 7
|
51
53
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
52
54
|
hpxml_default = _test_measure()
|
53
55
|
_test_default_header_values(hpxml_default, 30, 2, 2, 11, 11, 2009, false, 3, 3, 10, 10, HPXML::HeatPumpSizingMaxLoad,
|
54
|
-
true, 'CA', -8, HPXML::OccupancyCalculationTypeOperational)
|
56
|
+
true, 'CA', -8, HPXML::OccupancyCalculationTypeOperational, 1.5, 7)
|
55
57
|
|
56
58
|
# Test defaults - DST not in weather file
|
57
59
|
hpxml.header.timestep = nil
|
@@ -70,10 +72,12 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
70
72
|
hpxml.header.state_code = nil
|
71
73
|
hpxml.header.time_zone_utc_offset = nil
|
72
74
|
hpxml.header.occupancy_calculation_type = nil
|
75
|
+
hpxml.header.temperature_capacitance_multiplier = nil
|
76
|
+
hpxml.header.natvent_days_per_week = nil
|
73
77
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
74
78
|
hpxml_default = _test_measure()
|
75
79
|
_test_default_header_values(hpxml_default, 60, 1, 1, 12, 31, 2007, true, 3, 12, 11, 5, HPXML::HeatPumpSizingHERS,
|
76
|
-
false, 'CO', -7, HPXML::OccupancyCalculationTypeAsset)
|
80
|
+
false, 'CO', -7, HPXML::OccupancyCalculationTypeAsset, 1.0, 3)
|
77
81
|
|
78
82
|
# Test defaults - DST in weather file
|
79
83
|
hpxml = _create_hpxml('base-location-AMY-2012.xml')
|
@@ -93,17 +97,18 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
93
97
|
hpxml.header.state_code = nil
|
94
98
|
hpxml.header.time_zone_utc_offset = nil
|
95
99
|
hpxml.header.occupancy_calculation_type = nil
|
100
|
+
hpxml.header.temperature_capacitance_multiplier = nil
|
96
101
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
97
102
|
hpxml_default = _test_measure()
|
98
103
|
_test_default_header_values(hpxml_default, 60, 1, 1, 12, 31, 2012, true, 3, 11, 11, 4, nil,
|
99
|
-
false, 'CO', -7, HPXML::OccupancyCalculationTypeAsset)
|
104
|
+
false, 'CO', -7, HPXML::OccupancyCalculationTypeAsset, 1.0, 3)
|
100
105
|
|
101
106
|
# Test defaults - calendar year override by AMY year
|
102
107
|
hpxml.header.sim_calendar_year = 2020
|
103
108
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
104
109
|
hpxml_default = _test_measure()
|
105
110
|
_test_default_header_values(hpxml_default, 60, 1, 1, 12, 31, 2012, true, 3, 11, 11, 4, nil,
|
106
|
-
false, 'CO', -7, HPXML::OccupancyCalculationTypeAsset)
|
111
|
+
false, 'CO', -7, HPXML::OccupancyCalculationTypeAsset, 1.0, 3)
|
107
112
|
|
108
113
|
# Test defaults - invalid state code
|
109
114
|
hpxml = _create_hpxml('base-location-capetown-zaf.xml')
|
@@ -123,15 +128,16 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
123
128
|
hpxml.header.state_code = nil
|
124
129
|
hpxml.header.time_zone_utc_offset = nil
|
125
130
|
hpxml.header.occupancy_calculation_type = nil
|
131
|
+
hpxml.header.temperature_capacitance_multiplier = nil
|
126
132
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
127
133
|
hpxml_default = _test_measure()
|
128
134
|
_test_default_header_values(hpxml_default, 60, 1, 1, 12, 31, 2007, true, 3, 12, 11, 5, nil,
|
129
|
-
false, nil, 2, HPXML::OccupancyCalculationTypeAsset)
|
135
|
+
false, nil, 2, HPXML::OccupancyCalculationTypeAsset, 1.0, 3)
|
130
136
|
end
|
131
137
|
|
132
138
|
def test_emissions_factors
|
133
139
|
# Test inputs not overridden by defaults
|
134
|
-
hpxml = _create_hpxml('base.xml')
|
140
|
+
hpxml = _create_hpxml('base-misc-loads-large-uncommon.xml')
|
135
141
|
for emissions_type in ['CO2e', 'NOx', 'SO2', 'foo']
|
136
142
|
hpxml.header.emissions_scenarios.add(name: emissions_type,
|
137
143
|
emissions_type: emissions_type,
|
@@ -152,6 +158,10 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
152
158
|
wood_pellets_units: HPXML::EmissionsScenario::UnitsLbPerMBtu,
|
153
159
|
wood_pellets_value: 999.0)
|
154
160
|
end
|
161
|
+
hpxml.water_heating_systems[0].fuel_type = HPXML::FuelTypePropane
|
162
|
+
hpxml.clothes_dryers[0].fuel_type = HPXML::FuelTypeOil
|
163
|
+
hpxml.cooking_ranges[0].fuel_type = HPXML::FuelTypeWoodCord
|
164
|
+
hpxml.fuel_loads[0].fuel_type = HPXML::FuelTypeWoodPellets
|
155
165
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
156
166
|
hpxml_default = _test_measure()
|
157
167
|
hpxml_default.header.emissions_scenarios.each do |scenario|
|
@@ -202,21 +212,95 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
202
212
|
end
|
203
213
|
end
|
204
214
|
|
215
|
+
def test_utility_bills
|
216
|
+
# Test inputs not overridden by defaults
|
217
|
+
hpxml = _create_hpxml('base-pv.xml')
|
218
|
+
hpxml.header.utility_bill_scenarios.clear
|
219
|
+
for pv_compensation_type in [HPXML::PVCompensationTypeNetMetering, HPXML::PVCompensationTypeFeedInTariff]
|
220
|
+
hpxml.header.utility_bill_scenarios.add(name: pv_compensation_type,
|
221
|
+
elec_fixed_charge: 8,
|
222
|
+
natural_gas_fixed_charge: 9,
|
223
|
+
propane_fixed_charge: 10,
|
224
|
+
fuel_oil_fixed_charge: 11,
|
225
|
+
coal_fixed_charge: 12,
|
226
|
+
wood_fixed_charge: 13,
|
227
|
+
wood_pellets_fixed_charge: 14,
|
228
|
+
elec_marginal_rate: 0.2,
|
229
|
+
natural_gas_marginal_rate: 0.3,
|
230
|
+
propane_marginal_rate: 0.4,
|
231
|
+
fuel_oil_marginal_rate: 0.5,
|
232
|
+
coal_marginal_rate: 0.6,
|
233
|
+
wood_marginal_rate: 0.7,
|
234
|
+
wood_pellets_marginal_rate: 0.8,
|
235
|
+
pv_compensation_type: pv_compensation_type,
|
236
|
+
pv_net_metering_annual_excess_sellback_rate_type: HPXML::PVAnnualExcessSellbackRateTypeRetailElectricityCost,
|
237
|
+
pv_net_metering_annual_excess_sellback_rate: 0.04,
|
238
|
+
pv_feed_in_tariff_rate: 0.15,
|
239
|
+
pv_monthly_grid_connection_fee_dollars: 3)
|
240
|
+
end
|
241
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
242
|
+
hpxml_default = _test_measure()
|
243
|
+
scenarios = hpxml_default.header.utility_bill_scenarios
|
244
|
+
_test_default_bills_values(scenarios[0], 8, 9, 10, 11, 12, 13, 14, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, HPXML::PVCompensationTypeNetMetering, HPXML::PVAnnualExcessSellbackRateTypeRetailElectricityCost, nil, nil, nil, 3)
|
245
|
+
_test_default_bills_values(scenarios[1], 8, 9, 10, 11, 12, 13, 14, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, HPXML::PVCompensationTypeFeedInTariff, nil, nil, 0.15, nil, 3)
|
246
|
+
|
247
|
+
# Test defaults
|
248
|
+
hpxml.header.utility_bill_scenarios.each do |scenario|
|
249
|
+
scenario.elec_fixed_charge = nil
|
250
|
+
scenario.natural_gas_fixed_charge = nil
|
251
|
+
scenario.propane_fixed_charge = nil
|
252
|
+
scenario.fuel_oil_fixed_charge = nil
|
253
|
+
scenario.coal_fixed_charge = nil
|
254
|
+
scenario.wood_fixed_charge = nil
|
255
|
+
scenario.wood_pellets_fixed_charge = nil
|
256
|
+
scenario.elec_marginal_rate = nil
|
257
|
+
scenario.natural_gas_marginal_rate = nil
|
258
|
+
scenario.propane_marginal_rate = nil
|
259
|
+
scenario.fuel_oil_marginal_rate = nil
|
260
|
+
scenario.coal_marginal_rate = nil
|
261
|
+
scenario.wood_marginal_rate = nil
|
262
|
+
scenario.wood_pellets_marginal_rate = nil
|
263
|
+
scenario.pv_compensation_type = nil
|
264
|
+
scenario.pv_net_metering_annual_excess_sellback_rate_type = nil
|
265
|
+
scenario.pv_net_metering_annual_excess_sellback_rate = nil
|
266
|
+
scenario.pv_feed_in_tariff_rate = nil
|
267
|
+
scenario.pv_monthly_grid_connection_fee_dollars_per_kw = nil
|
268
|
+
scenario.pv_monthly_grid_connection_fee_dollars = nil
|
269
|
+
end
|
270
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
271
|
+
hpxml_default = _test_measure()
|
272
|
+
hpxml_default.header.utility_bill_scenarios.each do |scenario|
|
273
|
+
_test_default_bills_values(scenario, 12, 12, nil, nil, nil, nil, nil, 0.11362695139911635, 0.7169975308418142, nil, nil, nil, nil, nil, HPXML::PVCompensationTypeNetMetering, HPXML::PVAnnualExcessSellbackRateTypeUserSpecified, 0.03, nil, nil, 0)
|
274
|
+
end
|
275
|
+
|
276
|
+
# Test defaults w/ electricity JSON file
|
277
|
+
hpxml.header.utility_bill_scenarios.each do |scenario|
|
278
|
+
scenario.elec_tariff_filepath = File.join(File.dirname(__FILE__), '..', '..', 'ReportUtilityBills', 'resources', 'detailed_rates', 'Sample Tiered Rate.json')
|
279
|
+
end
|
280
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
281
|
+
hpxml_default = _test_measure()
|
282
|
+
hpxml_default.header.utility_bill_scenarios.each do |scenario|
|
283
|
+
_test_default_bills_values(scenario, nil, 12, nil, nil, nil, nil, nil, nil, 0.7169975308418142, nil, nil, nil, nil, nil, HPXML::PVCompensationTypeNetMetering, HPXML::PVAnnualExcessSellbackRateTypeUserSpecified, 0.03, nil, nil, 0)
|
284
|
+
end
|
285
|
+
end
|
286
|
+
|
205
287
|
def test_site
|
206
288
|
# Test inputs not overridden by defaults
|
207
289
|
hpxml = _create_hpxml('base.xml')
|
208
290
|
hpxml.site.site_type = HPXML::SiteTypeRural
|
209
291
|
hpxml.site.shielding_of_home = HPXML::ShieldingExposed
|
292
|
+
hpxml.site.ground_conductivity = 0.8
|
210
293
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
211
294
|
hpxml_default = _test_measure()
|
212
|
-
_test_default_site_values(hpxml_default, HPXML::SiteTypeRural, HPXML::ShieldingExposed)
|
295
|
+
_test_default_site_values(hpxml_default, HPXML::SiteTypeRural, HPXML::ShieldingExposed, 0.8)
|
213
296
|
|
214
297
|
# Test defaults
|
215
298
|
hpxml.site.site_type = nil
|
216
299
|
hpxml.site.shielding_of_home = nil
|
300
|
+
hpxml.site.ground_conductivity = nil
|
217
301
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
218
302
|
hpxml_default = _test_measure()
|
219
|
-
_test_default_site_values(hpxml_default, HPXML::SiteTypeSuburban, HPXML::ShieldingNormal)
|
303
|
+
_test_default_site_values(hpxml_default, HPXML::SiteTypeSuburban, HPXML::ShieldingNormal, 1.0)
|
220
304
|
end
|
221
305
|
|
222
306
|
def test_neighbor_buildings
|
@@ -321,23 +405,20 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
321
405
|
def test_climate_and_risk_zones
|
322
406
|
# Test inputs not overridden by defaults
|
323
407
|
hpxml = _create_hpxml('base.xml')
|
324
|
-
hpxml.climate_and_risk_zones.
|
325
|
-
hpxml.climate_and_risk_zones.
|
408
|
+
hpxml.climate_and_risk_zones.climate_zone_ieccs[0].year = 2009
|
409
|
+
hpxml.climate_and_risk_zones.climate_zone_ieccs[0].zone = '2B'
|
326
410
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
327
411
|
hpxml_default = _test_measure()
|
328
412
|
_test_default_climate_and_risk_zones_values(hpxml_default, 2009, '2B')
|
329
413
|
|
330
414
|
# Test defaults
|
331
|
-
hpxml.climate_and_risk_zones.
|
332
|
-
hpxml.climate_and_risk_zones.iecc_zone = nil
|
415
|
+
hpxml.climate_and_risk_zones.climate_zone_ieccs[0].delete
|
333
416
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
334
417
|
hpxml_default = _test_measure()
|
335
418
|
_test_default_climate_and_risk_zones_values(hpxml_default, 2006, '5B')
|
336
419
|
|
337
420
|
# Test defaults - invalid IECC zone
|
338
421
|
hpxml = _create_hpxml('base-location-capetown-zaf.xml')
|
339
|
-
hpxml.climate_and_risk_zones.iecc_year = nil
|
340
|
-
hpxml.climate_and_risk_zones.iecc_zone = nil
|
341
422
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
342
423
|
hpxml_default = _test_measure()
|
343
424
|
_test_default_climate_and_risk_zones_values(hpxml_default, nil, nil)
|
@@ -559,7 +640,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
559
640
|
hpxml.walls[1].interior_finish_thickness = nil
|
560
641
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
561
642
|
hpxml_default = _test_measure()
|
562
|
-
_test_default_wall_values(hpxml_default.walls[1], HPXML::SidingTypeWood, 0.5, HPXML::ColorLight, 0.90, HPXML::InteriorFinishNone, nil,
|
643
|
+
_test_default_wall_values(hpxml_default.walls[1], HPXML::SidingTypeWood, 0.5, HPXML::ColorLight, 0.90, HPXML::InteriorFinishNone, nil, nil)
|
563
644
|
end
|
564
645
|
|
565
646
|
def test_foundation_walls
|
@@ -617,29 +698,29 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
617
698
|
1000, 0.0, 10.0, 0.0, 10.0, HPXML::FoundationWallTypeSolidConcrete)
|
618
699
|
end
|
619
700
|
|
620
|
-
def
|
701
|
+
def test_floors
|
621
702
|
# Test inputs not overridden by defaults
|
622
703
|
hpxml = _create_hpxml('base.xml')
|
623
|
-
hpxml.
|
624
|
-
hpxml.
|
704
|
+
hpxml.floors[0].interior_finish_type = HPXML::InteriorFinishWood
|
705
|
+
hpxml.floors[0].interior_finish_thickness = 0.375
|
625
706
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
626
707
|
hpxml_default = _test_measure()
|
627
|
-
|
708
|
+
_test_default_floor_values(hpxml_default.floors[0], HPXML::InteriorFinishWood, 0.375)
|
628
709
|
|
629
710
|
# Test defaults w/ ceiling
|
630
|
-
hpxml.
|
631
|
-
hpxml.
|
711
|
+
hpxml.floors[0].interior_finish_type = nil
|
712
|
+
hpxml.floors[0].interior_finish_thickness = nil
|
632
713
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
633
714
|
hpxml_default = _test_measure()
|
634
|
-
|
715
|
+
_test_default_floor_values(hpxml_default.floors[0], HPXML::InteriorFinishGypsumBoard, 0.5)
|
635
716
|
|
636
717
|
# Test defaults w/ floor
|
637
718
|
hpxml = _create_hpxml('base-foundation-vented-crawlspace.xml')
|
638
|
-
hpxml.
|
639
|
-
hpxml.
|
719
|
+
hpxml.floors[0].interior_finish_type = nil
|
720
|
+
hpxml.floors[0].interior_finish_thickness = nil
|
640
721
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
641
722
|
hpxml_default = _test_measure()
|
642
|
-
|
723
|
+
_test_default_floor_values(hpxml_default.floors[0], HPXML::InteriorFinishNone, nil)
|
643
724
|
end
|
644
725
|
|
645
726
|
def test_slabs
|
@@ -962,11 +1043,17 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
962
1043
|
hpxml.cooling_systems[0].charge_defect_ratio = -0.11
|
963
1044
|
hpxml.cooling_systems[0].airflow_defect_ratio = -0.22
|
964
1045
|
hpxml.cooling_systems[0].cooling_capacity = 12345
|
965
|
-
hpxml.cooling_systems[0].cooling_efficiency_seer = 12.
|
966
|
-
hpxml.
|
1046
|
+
hpxml.cooling_systems[0].cooling_efficiency_seer = 12.0
|
1047
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1048
|
+
hpxml_default = _test_measure()
|
1049
|
+
_test_default_central_air_conditioner_values(hpxml_default.cooling_systems[0], 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345, 12.0)
|
1050
|
+
|
1051
|
+
# Test defaults - SEER2
|
1052
|
+
hpxml.cooling_systems[0].cooling_efficiency_seer = nil
|
1053
|
+
hpxml.cooling_systems[0].cooling_efficiency_seer2 = 11.4
|
967
1054
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
968
1055
|
hpxml_default = _test_measure()
|
969
|
-
_test_default_central_air_conditioner_values(hpxml_default.cooling_systems[0], 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345, 12.
|
1056
|
+
_test_default_central_air_conditioner_values(hpxml_default.cooling_systems[0], 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345, 12.0)
|
970
1057
|
|
971
1058
|
# Test defaults
|
972
1059
|
hpxml.cooling_systems[0].cooling_shr = nil
|
@@ -975,11 +1062,9 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
975
1062
|
hpxml.cooling_systems[0].charge_defect_ratio = nil
|
976
1063
|
hpxml.cooling_systems[0].airflow_defect_ratio = nil
|
977
1064
|
hpxml.cooling_systems[0].cooling_capacity = nil
|
978
|
-
hpxml.cooling_systems[0].cooling_efficiency_seer = nil
|
979
|
-
hpxml.cooling_systems[0].year_installed = 2010
|
980
1065
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
981
1066
|
hpxml_default = _test_measure()
|
982
|
-
_test_default_central_air_conditioner_values(hpxml_default.cooling_systems[0], 0.73, HPXML::HVACCompressorTypeSingleStage, 0.
|
1067
|
+
_test_default_central_air_conditioner_values(hpxml_default.cooling_systems[0], 0.73, HPXML::HVACCompressorTypeSingleStage, 0.5, 0, 0, nil, 12.0)
|
983
1068
|
end
|
984
1069
|
|
985
1070
|
def test_room_air_conditioners
|
@@ -987,20 +1072,16 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
987
1072
|
hpxml = _create_hpxml('base-hvac-room-ac-only.xml')
|
988
1073
|
hpxml.cooling_systems[0].cooling_shr = 0.88
|
989
1074
|
hpxml.cooling_systems[0].cooling_capacity = 12345
|
990
|
-
hpxml.cooling_systems[0].cooling_efficiency_eer = 12.5
|
991
|
-
hpxml.cooling_systems[0].year_installed = 2010
|
992
1075
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
993
1076
|
hpxml_default = _test_measure()
|
994
|
-
_test_default_room_air_conditioner_ptac_values(hpxml_default.cooling_systems[0], 0.88, 12345
|
1077
|
+
_test_default_room_air_conditioner_ptac_values(hpxml_default.cooling_systems[0], 0.88, 12345)
|
995
1078
|
|
996
1079
|
# Test defaults
|
997
1080
|
hpxml.cooling_systems[0].cooling_shr = nil
|
998
1081
|
hpxml.cooling_systems[0].cooling_capacity = nil
|
999
|
-
hpxml.cooling_systems[0].cooling_efficiency_eer = nil
|
1000
|
-
hpxml.cooling_systems[0].year_installed = 2010
|
1001
1082
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1002
1083
|
hpxml_default = _test_measure()
|
1003
|
-
_test_default_room_air_conditioner_ptac_values(hpxml_default.cooling_systems[0], 0.65, nil
|
1084
|
+
_test_default_room_air_conditioner_ptac_values(hpxml_default.cooling_systems[0], 0.65, nil)
|
1004
1085
|
end
|
1005
1086
|
|
1006
1087
|
def test_evaporative_coolers
|
@@ -1028,7 +1109,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1028
1109
|
hpxml.cooling_systems[0].cooling_capacity = 12345
|
1029
1110
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1030
1111
|
hpxml_default = _test_measure()
|
1031
|
-
_test_default_mini_split_air_conditioner_values(hpxml_default.cooling_systems[0], 0.78, 0.66, -0.11, -0.22, 12345)
|
1112
|
+
_test_default_mini_split_air_conditioner_values(hpxml_default.cooling_systems[0], 0.78, 0.66, -0.11, -0.22, 12345, 19.0)
|
1032
1113
|
|
1033
1114
|
# Test defaults
|
1034
1115
|
hpxml.cooling_systems[0].cooling_shr = nil
|
@@ -1038,52 +1119,37 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1038
1119
|
hpxml.cooling_systems[0].cooling_capacity = nil
|
1039
1120
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1040
1121
|
hpxml_default = _test_measure()
|
1041
|
-
_test_default_mini_split_air_conditioner_values(hpxml_default.cooling_systems[0], 0.73, 0.18, 0, 0, nil)
|
1122
|
+
_test_default_mini_split_air_conditioner_values(hpxml_default.cooling_systems[0], 0.73, 0.18, 0, 0, nil, 19.0)
|
1042
1123
|
|
1043
1124
|
# Test defaults w/ ductless
|
1044
1125
|
hpxml.cooling_systems[0].distribution_system.delete
|
1045
1126
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1046
1127
|
hpxml_default = _test_measure()
|
1047
|
-
_test_default_mini_split_air_conditioner_values(hpxml_default.cooling_systems[0], 0.73, 0.07, 0, 0, nil)
|
1128
|
+
_test_default_mini_split_air_conditioner_values(hpxml_default.cooling_systems[0], 0.73, 0.07, 0, 0, nil, 19.0)
|
1129
|
+
|
1130
|
+
# Test defaults w/ ductless - SEER2
|
1131
|
+
hpxml.cooling_systems[0].cooling_efficiency_seer = nil
|
1132
|
+
hpxml.cooling_systems[0].cooling_efficiency_seer2 = 13.3
|
1133
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1134
|
+
hpxml_default = _test_measure()
|
1135
|
+
_test_default_mini_split_air_conditioner_values(hpxml_default.cooling_systems[0], 0.73, 0.07, 0, 0, nil, 13.3)
|
1048
1136
|
end
|
1049
1137
|
|
1050
1138
|
def test_ptac
|
1051
1139
|
# Test inputs not overridden by defaults
|
1052
|
-
hpxml = _create_hpxml('base-hvac-ptac-with-heating.xml')
|
1140
|
+
hpxml = _create_hpxml('base-hvac-ptac-with-heating-electricity.xml')
|
1053
1141
|
hpxml.cooling_systems[0].cooling_shr = 0.75
|
1054
1142
|
hpxml.cooling_systems[0].cooling_capacity = 12345
|
1055
|
-
hpxml.cooling_systems[0].cooling_efficiency_eer = 12.5
|
1056
|
-
hpxml.heating_systems[0].heating_efficiency_percent = 0.98
|
1057
1143
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1058
1144
|
hpxml_default = _test_measure()
|
1059
|
-
_test_default_room_air_conditioner_ptac_values(hpxml_default.cooling_systems[0], 0.75, 12345
|
1060
|
-
_test_default_elec_resistance(hpxml_default.heating_systems[0], 0.98)
|
1145
|
+
_test_default_room_air_conditioner_ptac_values(hpxml_default.cooling_systems[0], 0.75, 12345)
|
1061
1146
|
|
1062
1147
|
# Test defaults
|
1063
1148
|
hpxml.cooling_systems[0].cooling_shr = nil
|
1064
1149
|
hpxml.cooling_systems[0].cooling_capacity = nil
|
1065
|
-
hpxml.heating_systems[0].heating_efficiency_percent = nil
|
1066
|
-
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1067
|
-
hpxml_default = _test_measure()
|
1068
|
-
_test_default_room_air_conditioner_ptac_values(hpxml_default.cooling_systems[0], 0.65, nil, 12.5)
|
1069
|
-
_test_default_elec_resistance(hpxml_default.heating_systems[0], 1.0)
|
1070
|
-
end
|
1071
|
-
|
1072
|
-
def test_elec_resistance
|
1073
|
-
# Test inputs not overridden by defaults
|
1074
|
-
hpxml = _create_hpxml('base-hvac-elec-resistance-only.xml')
|
1075
|
-
hpxml.heating_systems[0].heating_efficiency_percent = 0.98
|
1076
|
-
hpxml.heating_systems[0].year_installed = 2010
|
1077
|
-
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1078
|
-
hpxml_default = _test_measure()
|
1079
|
-
_test_default_elec_resistance(hpxml_default.heating_systems[0], 0.98)
|
1080
|
-
|
1081
|
-
# Test defaults
|
1082
|
-
hpxml.heating_systems[0].heating_efficiency_percent = nil
|
1083
|
-
hpxml.heating_systems[0].year_installed = 2010
|
1084
1150
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1085
1151
|
hpxml_default = _test_measure()
|
1086
|
-
|
1152
|
+
_test_default_room_air_conditioner_ptac_values(hpxml_default.cooling_systems[0], 0.65, nil)
|
1087
1153
|
end
|
1088
1154
|
|
1089
1155
|
def test_furnaces
|
@@ -1092,21 +1158,17 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1092
1158
|
hpxml.heating_systems[0].fan_watts_per_cfm = 0.66
|
1093
1159
|
hpxml.heating_systems[0].airflow_defect_ratio = -0.22
|
1094
1160
|
hpxml.heating_systems[0].heating_capacity = 12345
|
1095
|
-
hpxml.heating_systems[0].heating_efficiency_afue = 0.85
|
1096
|
-
hpxml.heating_systems[0].year_installed = 2010
|
1097
1161
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1098
1162
|
hpxml_default = _test_measure()
|
1099
|
-
_test_default_furnace_values(hpxml_default.heating_systems[0], 0.66, -0.22, 12345
|
1163
|
+
_test_default_furnace_values(hpxml_default.heating_systems[0], 0.66, -0.22, 12345)
|
1100
1164
|
|
1101
1165
|
# Test defaults
|
1102
1166
|
hpxml.heating_systems[0].fan_watts_per_cfm = nil
|
1103
1167
|
hpxml.heating_systems[0].airflow_defect_ratio = nil
|
1104
1168
|
hpxml.heating_systems[0].heating_capacity = nil
|
1105
|
-
hpxml.heating_systems[0].heating_efficiency_afue = nil
|
1106
|
-
hpxml.heating_systems[0].year_installed = 2010
|
1107
1169
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1108
1170
|
hpxml_default = _test_measure()
|
1109
|
-
_test_default_furnace_values(hpxml_default.heating_systems[0], 0.
|
1171
|
+
_test_default_furnace_values(hpxml_default.heating_systems[0], 0.375, 0, nil)
|
1110
1172
|
|
1111
1173
|
# Test defaults w/ gravity distribution system
|
1112
1174
|
hpxml = _create_hpxml('base-hvac-furnace-gas-only.xml')
|
@@ -1114,10 +1176,9 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1114
1176
|
hpxml.heating_systems[0].fan_watts_per_cfm = nil
|
1115
1177
|
hpxml.heating_systems[0].airflow_defect_ratio = nil
|
1116
1178
|
hpxml.heating_systems[0].heating_capacity = nil
|
1117
|
-
hpxml.heating_systems[0].year_installed = 2010
|
1118
1179
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1119
1180
|
hpxml_default = _test_measure()
|
1120
|
-
_test_default_furnace_values(hpxml_default.heating_systems[0], 0.0, 0, nil
|
1181
|
+
_test_default_furnace_values(hpxml_default.heating_systems[0], 0.0, 0, nil)
|
1121
1182
|
end
|
1122
1183
|
|
1123
1184
|
def test_wall_furnaces
|
@@ -1125,20 +1186,16 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1125
1186
|
hpxml = _create_hpxml('base-hvac-wall-furnace-elec-only.xml')
|
1126
1187
|
hpxml.heating_systems[0].fan_watts = 22
|
1127
1188
|
hpxml.heating_systems[0].heating_capacity = 12345
|
1128
|
-
hpxml.heating_systems[0].heating_efficiency_afue = 0.60
|
1129
|
-
hpxml.heating_systems[0].year_installed = 2010
|
1130
1189
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1131
1190
|
hpxml_default = _test_measure()
|
1132
|
-
_test_default_wall_furnace_values(hpxml_default.heating_systems[0], 22, 12345
|
1191
|
+
_test_default_wall_furnace_values(hpxml_default.heating_systems[0], 22, 12345)
|
1133
1192
|
|
1134
1193
|
# Test defaults
|
1135
1194
|
hpxml.heating_systems[0].fan_watts = nil
|
1136
1195
|
hpxml.heating_systems[0].heating_capacity = nil
|
1137
|
-
hpxml.heating_systems[0].heating_efficiency_afue = nil
|
1138
|
-
hpxml.heating_systems[0].year_installed = 2010
|
1139
1196
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1140
1197
|
hpxml_default = _test_measure()
|
1141
|
-
_test_default_wall_furnace_values(hpxml_default.heating_systems[0], 0, nil
|
1198
|
+
_test_default_wall_furnace_values(hpxml_default.heating_systems[0], 0, nil)
|
1142
1199
|
end
|
1143
1200
|
|
1144
1201
|
def test_floor_furnaces
|
@@ -1146,19 +1203,15 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1146
1203
|
hpxml = _create_hpxml('base-hvac-floor-furnace-propane-only.xml')
|
1147
1204
|
hpxml.heating_systems[0].fan_watts = 22
|
1148
1205
|
hpxml.heating_systems[0].heating_capacity = 12345
|
1149
|
-
hpxml.heating_systems[0].heating_efficiency_afue = 0.66
|
1150
|
-
hpxml.heating_systems[0].year_installed = 1980
|
1151
1206
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1152
1207
|
hpxml_default = _test_measure()
|
1153
|
-
_test_default_floor_furnace_values(hpxml_default.heating_systems[0], 22, 12345
|
1208
|
+
_test_default_floor_furnace_values(hpxml_default.heating_systems[0], 22, 12345)
|
1154
1209
|
|
1155
1210
|
# Test defaults
|
1156
1211
|
hpxml.heating_systems[0].fan_watts = nil
|
1157
|
-
hpxml.heating_systems[0].heating_efficiency_afue = nil
|
1158
|
-
hpxml.heating_systems[0].year_installed = 1980
|
1159
1212
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1160
1213
|
hpxml_default = _test_measure()
|
1161
|
-
_test_default_floor_furnace_values(hpxml_default.heating_systems[0], 0, nil
|
1214
|
+
_test_default_floor_furnace_values(hpxml_default.heating_systems[0], 0, nil)
|
1162
1215
|
end
|
1163
1216
|
|
1164
1217
|
def test_boilers
|
@@ -1166,38 +1219,30 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1166
1219
|
hpxml = _create_hpxml('base-hvac-boiler-gas-only.xml')
|
1167
1220
|
hpxml.heating_systems[0].electric_auxiliary_energy = 99.9
|
1168
1221
|
hpxml.heating_systems[0].heating_capacity = 12345
|
1169
|
-
hpxml.heating_systems[0].heating_efficiency_afue = 0.85
|
1170
|
-
hpxml.heating_systems[0].year_installed = 2010
|
1171
1222
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1172
1223
|
hpxml_default = _test_measure()
|
1173
|
-
_test_default_boiler_values(hpxml_default.heating_systems[0], 99.9, 12345
|
1224
|
+
_test_default_boiler_values(hpxml_default.heating_systems[0], 99.9, 12345)
|
1174
1225
|
|
1175
1226
|
# Test defaults w/ in-unit boiler
|
1176
1227
|
hpxml.heating_systems[0].electric_auxiliary_energy = nil
|
1177
1228
|
hpxml.heating_systems[0].heating_capacity = nil
|
1178
|
-
hpxml.heating_systems[0].heating_efficiency_afue = nil
|
1179
|
-
hpxml.heating_systems[0].year_installed = 2010
|
1180
1229
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1181
1230
|
hpxml_default = _test_measure()
|
1182
|
-
_test_default_boiler_values(hpxml_default.heating_systems[0], 170.0, nil
|
1231
|
+
_test_default_boiler_values(hpxml_default.heating_systems[0], 170.0, nil)
|
1183
1232
|
|
1184
1233
|
# Test inputs not overridden by defaults (shared boiler)
|
1185
1234
|
hpxml = _create_hpxml('base-bldgtype-multifamily-shared-boiler-only-baseboard.xml')
|
1186
1235
|
hpxml.heating_systems[0].shared_loop_watts = nil
|
1187
1236
|
hpxml.heating_systems[0].electric_auxiliary_energy = 99.9
|
1188
|
-
hpxml.heating_systems[0].heating_efficiency_afue = 0.85
|
1189
|
-
hpxml.heating_systems[0].year_installed = 1980
|
1190
1237
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1191
1238
|
hpxml_default = _test_measure()
|
1192
|
-
_test_default_boiler_values(hpxml_default.heating_systems[0], 99.9, nil
|
1239
|
+
_test_default_boiler_values(hpxml_default.heating_systems[0], 99.9, nil)
|
1193
1240
|
|
1194
1241
|
# Test defaults w/ shared boiler
|
1195
1242
|
hpxml.heating_systems[0].electric_auxiliary_energy = nil
|
1196
|
-
hpxml.heating_systems[0].heating_efficiency_afue = nil
|
1197
|
-
hpxml.heating_systems[0].year_installed = 1980
|
1198
1243
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1199
1244
|
hpxml_default = _test_measure()
|
1200
|
-
_test_default_boiler_values(hpxml_default.heating_systems[0], 220.0, nil
|
1245
|
+
_test_default_boiler_values(hpxml_default.heating_systems[0], 220.0, nil)
|
1201
1246
|
end
|
1202
1247
|
|
1203
1248
|
def test_stoves
|
@@ -1205,27 +1250,16 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1205
1250
|
hpxml = _create_hpxml('base-hvac-stove-oil-only.xml')
|
1206
1251
|
hpxml.heating_systems[0].fan_watts = 22
|
1207
1252
|
hpxml.heating_systems[0].heating_capacity = 12345
|
1208
|
-
hpxml.heating_systems[0].heating_efficiency_percent = 0.70
|
1209
|
-
hpxml.heating_systems[0].year_installed = 1980
|
1210
1253
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1211
1254
|
hpxml_default = _test_measure()
|
1212
|
-
_test_default_stove_values(hpxml_default.heating_systems[0], 22, 12345
|
1255
|
+
_test_default_stove_values(hpxml_default.heating_systems[0], 22, 12345)
|
1213
1256
|
|
1214
1257
|
# Test defaults
|
1215
1258
|
hpxml.heating_systems[0].fan_watts = nil
|
1216
1259
|
hpxml.heating_systems[0].heating_capacity = nil
|
1217
|
-
hpxml.heating_systems[0].heating_efficiency_percent = nil
|
1218
|
-
hpxml.heating_systems[0].year_installed = 1980
|
1219
|
-
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1220
|
-
hpxml_default = _test_measure()
|
1221
|
-
_test_default_stove_values(hpxml_default.heating_systems[0], 40, nil, 0.81)
|
1222
|
-
|
1223
|
-
# Test defaults w/ wood pellets
|
1224
|
-
hpxml.heating_systems[0].year_installed = nil
|
1225
|
-
hpxml.heating_systems[0].heating_system_fuel = HPXML::FuelTypeWoodPellets
|
1226
1260
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1227
1261
|
hpxml_default = _test_measure()
|
1228
|
-
_test_default_stove_values(hpxml_default.heating_systems[0], 40, nil
|
1262
|
+
_test_default_stove_values(hpxml_default.heating_systems[0], 40, nil)
|
1229
1263
|
end
|
1230
1264
|
|
1231
1265
|
def test_portable_heaters
|
@@ -1233,20 +1267,16 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1233
1267
|
hpxml = _create_hpxml('base-hvac-portable-heater-gas-only.xml')
|
1234
1268
|
hpxml.heating_systems[0].fan_watts = 22
|
1235
1269
|
hpxml.heating_systems[0].heating_capacity = 12345
|
1236
|
-
hpxml.heating_systems[0].heating_efficiency_percent = 0.65
|
1237
|
-
hpxml.heating_systems[0].year_installed = 2010
|
1238
1270
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1239
1271
|
hpxml_default = _test_measure()
|
1240
|
-
_test_default_portable_heater_values(hpxml_default.heating_systems[0], 22, 12345
|
1272
|
+
_test_default_portable_heater_values(hpxml_default.heating_systems[0], 22, 12345)
|
1241
1273
|
|
1242
1274
|
# Test defaults
|
1243
1275
|
hpxml.heating_systems[0].fan_watts = nil
|
1244
1276
|
hpxml.heating_systems[0].heating_capacity = nil
|
1245
|
-
hpxml.heating_systems[0].heating_efficiency_percent = nil
|
1246
|
-
hpxml.heating_systems[0].year_installed = 2010
|
1247
1277
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1248
1278
|
hpxml_default = _test_measure()
|
1249
|
-
_test_default_portable_heater_values(hpxml_default.heating_systems[0], 0, nil
|
1279
|
+
_test_default_portable_heater_values(hpxml_default.heating_systems[0], 0, nil)
|
1250
1280
|
end
|
1251
1281
|
|
1252
1282
|
def test_fixed_heaters
|
@@ -1254,20 +1284,16 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1254
1284
|
hpxml = _create_hpxml('base-hvac-fixed-heater-gas-only.xml')
|
1255
1285
|
hpxml.heating_systems[0].fan_watts = 22
|
1256
1286
|
hpxml.heating_systems[0].heating_capacity = 12345
|
1257
|
-
hpxml.heating_systems[0].heating_efficiency_percent = 0.60
|
1258
|
-
hpxml.heating_systems[0].year_installed = 2010
|
1259
1287
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1260
1288
|
hpxml_default = _test_measure()
|
1261
|
-
_test_default_fixed_heater_values(hpxml_default.heating_systems[0], 22, 12345
|
1289
|
+
_test_default_fixed_heater_values(hpxml_default.heating_systems[0], 22, 12345)
|
1262
1290
|
|
1263
1291
|
# Test defaults
|
1264
1292
|
hpxml.heating_systems[0].fan_watts = nil
|
1265
1293
|
hpxml.heating_systems[0].heating_capacity = nil
|
1266
|
-
hpxml.heating_systems[0].heating_efficiency_percent = nil
|
1267
|
-
hpxml.heating_systems[0].year_installed = 2010
|
1268
1294
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1269
1295
|
hpxml_default = _test_measure()
|
1270
|
-
_test_default_fixed_heater_values(hpxml_default.heating_systems[0], 0, nil
|
1296
|
+
_test_default_fixed_heater_values(hpxml_default.heating_systems[0], 0, nil)
|
1271
1297
|
end
|
1272
1298
|
|
1273
1299
|
def test_fireplaces
|
@@ -1275,30 +1301,16 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1275
1301
|
hpxml = _create_hpxml('base-hvac-fireplace-wood-only.xml')
|
1276
1302
|
hpxml.heating_systems[0].fan_watts = 22
|
1277
1303
|
hpxml.heating_systems[0].heating_capacity = 12345
|
1278
|
-
hpxml.heating_systems[0].heating_efficiency_percent = 0.50
|
1279
|
-
hpxml.heating_systems[0].year_installed = 2010
|
1280
1304
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1281
1305
|
hpxml_default = _test_measure()
|
1282
|
-
_test_default_fireplace_values(hpxml_default.heating_systems[0], 22, 12345
|
1306
|
+
_test_default_fireplace_values(hpxml_default.heating_systems[0], 22, 12345)
|
1283
1307
|
|
1284
1308
|
# Test defaults
|
1285
1309
|
hpxml.heating_systems[0].fan_watts = nil
|
1286
1310
|
hpxml.heating_systems[0].heating_capacity = nil
|
1287
|
-
hpxml.heating_systems[0].heating_efficiency_percent = nil
|
1288
|
-
hpxml.heating_systems[0].year_installed = 2010
|
1289
|
-
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1290
|
-
hpxml_default = _test_measure()
|
1291
|
-
_test_default_fireplace_values(hpxml_default.heating_systems[0], 0, nil, 0.60)
|
1292
|
-
|
1293
|
-
# Test defaults with electric fireplace
|
1294
|
-
hpxml.heating_systems[0].heating_system_fuel = HPXML::FuelTypeElectricity
|
1295
|
-
hpxml.heating_systems[0].fan_watts = nil
|
1296
|
-
hpxml.heating_systems[0].heating_capacity = nil
|
1297
|
-
hpxml.heating_systems[0].heating_efficiency_percent = nil
|
1298
|
-
hpxml.heating_systems[0].year_installed = 2010
|
1299
1311
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1300
1312
|
hpxml_default = _test_measure()
|
1301
|
-
_test_default_fireplace_values(hpxml_default.heating_systems[0], 0, nil
|
1313
|
+
_test_default_fireplace_values(hpxml_default.heating_systems[0], 0, nil)
|
1302
1314
|
end
|
1303
1315
|
|
1304
1316
|
def test_air_source_heat_pumps
|
@@ -1315,12 +1327,20 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1315
1327
|
hpxml.heat_pumps[0].backup_heating_capacity = 34567
|
1316
1328
|
hpxml.heat_pumps[0].cooling_efficiency_seer = 14.0
|
1317
1329
|
hpxml.heat_pumps[0].heating_efficiency_hspf = 8.0
|
1318
|
-
hpxml.heat_pumps[0].year_installed = 2010
|
1319
1330
|
hpxml.heat_pumps[0].backup_heating_lockout_temp = 20.0
|
1320
1331
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1321
1332
|
hpxml_default = _test_measure()
|
1322
1333
|
_test_default_air_to_air_heat_pump_values(hpxml_default.heat_pumps[0], 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345, 23456, 9876, 34567, 14.0, 8.0, 20.0)
|
1323
1334
|
|
1335
|
+
# Test defaults - SEER2/HSPF2
|
1336
|
+
hpxml.heat_pumps[0].cooling_efficiency_seer = nil
|
1337
|
+
hpxml.heat_pumps[0].cooling_efficiency_seer2 = 13.3
|
1338
|
+
hpxml.heat_pumps[0].heating_efficiency_hspf = nil
|
1339
|
+
hpxml.heat_pumps[0].heating_efficiency_hspf2 = 6.8
|
1340
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1341
|
+
hpxml_default = _test_measure()
|
1342
|
+
_test_default_air_to_air_heat_pump_values(hpxml_default.heat_pumps[0], 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345, 23456, 9876, 34567, 14.0, 8.0, 20.0)
|
1343
|
+
|
1324
1344
|
# Test defaults
|
1325
1345
|
hpxml.heat_pumps[0].cooling_shr = nil
|
1326
1346
|
hpxml.heat_pumps[0].compressor_type = nil
|
@@ -1331,13 +1351,10 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1331
1351
|
hpxml.heat_pumps[0].heating_capacity = nil
|
1332
1352
|
hpxml.heat_pumps[0].heating_capacity_17F = nil
|
1333
1353
|
hpxml.heat_pumps[0].backup_heating_capacity = nil
|
1334
|
-
hpxml.heat_pumps[0].cooling_efficiency_seer = nil
|
1335
|
-
hpxml.heat_pumps[0].heating_efficiency_hspf = nil
|
1336
|
-
hpxml.heat_pumps[0].year_installed = 2010
|
1337
1354
|
hpxml.heat_pumps[0].backup_heating_lockout_temp = nil
|
1338
1355
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1339
1356
|
hpxml_default = _test_measure()
|
1340
|
-
_test_default_air_to_air_heat_pump_values(hpxml_default.heat_pumps[0], 0.73, HPXML::HVACCompressorTypeSingleStage, 0.5, 0, 0, nil, nil, nil, nil,
|
1357
|
+
_test_default_air_to_air_heat_pump_values(hpxml_default.heat_pumps[0], 0.73, HPXML::HVACCompressorTypeSingleStage, 0.5, 0, 0, nil, nil, nil, nil, 14.0, 8.0, 40.0)
|
1341
1358
|
end
|
1342
1359
|
|
1343
1360
|
def test_pthp
|
@@ -1376,7 +1393,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1376
1393
|
hpxml.heat_pumps[0].backup_heating_lockout_temp = 20.0
|
1377
1394
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1378
1395
|
hpxml_default = _test_measure()
|
1379
|
-
_test_default_mini_split_heat_pump_values(hpxml_default.heat_pumps[0], 0.78, 0.66, -0.11, -0.22, 12345, 23456, 9876, 34567, 20.0)
|
1396
|
+
_test_default_mini_split_heat_pump_values(hpxml_default.heat_pumps[0], 0.78, 0.66, -0.11, -0.22, 12345, 23456, 9876, 34567, 19.0, 10.0, 20.0)
|
1380
1397
|
|
1381
1398
|
# Test defaults
|
1382
1399
|
hpxml.heat_pumps[0].cooling_shr = nil
|
@@ -1390,13 +1407,22 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1390
1407
|
hpxml.heat_pumps[0].backup_heating_lockout_temp = nil
|
1391
1408
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1392
1409
|
hpxml_default = _test_measure()
|
1393
|
-
_test_default_mini_split_heat_pump_values(hpxml_default.heat_pumps[0], 0.73, 0.18, 0, 0, nil, nil, nil, nil, 40.0)
|
1410
|
+
_test_default_mini_split_heat_pump_values(hpxml_default.heat_pumps[0], 0.73, 0.18, 0, 0, nil, nil, nil, nil, 19.0, 10.0, 40.0)
|
1394
1411
|
|
1395
1412
|
# Test defaults w/ ductless
|
1396
1413
|
hpxml.heat_pumps[0].distribution_system.delete
|
1397
1414
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1398
1415
|
hpxml_default = _test_measure()
|
1399
|
-
_test_default_mini_split_heat_pump_values(hpxml_default.heat_pumps[0], 0.73, 0.07, 0, 0, nil, nil, nil, nil, 40.0)
|
1416
|
+
_test_default_mini_split_heat_pump_values(hpxml_default.heat_pumps[0], 0.73, 0.07, 0, 0, nil, nil, nil, nil, 19.0, 10.0, 40.0)
|
1417
|
+
|
1418
|
+
# Test defaults w/ ductless - SEER2/HSPF2
|
1419
|
+
hpxml.heat_pumps[0].cooling_efficiency_seer = nil
|
1420
|
+
hpxml.heat_pumps[0].cooling_efficiency_seer2 = 13.3
|
1421
|
+
hpxml.heat_pumps[0].heating_efficiency_hspf = nil
|
1422
|
+
hpxml.heat_pumps[0].heating_efficiency_hspf2 = 6.8
|
1423
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1424
|
+
hpxml_default = _test_measure()
|
1425
|
+
_test_default_mini_split_heat_pump_values(hpxml_default.heat_pumps[0], 0.73, 0.07, 0, 0, nil, nil, nil, nil, 13.3, 7.56, 40.0)
|
1400
1426
|
end
|
1401
1427
|
|
1402
1428
|
def test_ground_source_heat_pumps
|
@@ -1508,6 +1534,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1508
1534
|
hpxml = _create_hpxml('base.xml')
|
1509
1535
|
hpxml.hvac_distributions[0].conditioned_floor_area_served = 2700.0
|
1510
1536
|
hpxml.hvac_distributions[0].number_of_return_registers = 2
|
1537
|
+
hpxml.hvac_distributions[0].ducts[0].duct_surface_area_multiplier = 0.5
|
1538
|
+
hpxml.hvac_distributions[0].ducts[1].duct_surface_area_multiplier = 1.5
|
1511
1539
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1512
1540
|
hpxml_default = _test_measure()
|
1513
1541
|
expected_supply_locations = ['attic - unvented']
|
@@ -1516,15 +1544,18 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1516
1544
|
expected_return_areas = [50.0]
|
1517
1545
|
expected_supply_fracs = [1.0]
|
1518
1546
|
expected_return_fracs = [1.0]
|
1547
|
+
expected_supply_area_mults = [0.5]
|
1548
|
+
expected_return_area_mults = [1.5]
|
1519
1549
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
1520
1550
|
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1521
|
-
expected_supply_fracs, expected_return_fracs, expected_n_return_registers)
|
1551
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults)
|
1522
1552
|
|
1523
1553
|
# Test defaults w/ conditioned basement
|
1524
1554
|
hpxml.hvac_distributions[0].number_of_return_registers = nil
|
1525
1555
|
hpxml.hvac_distributions[0].ducts.each do |duct|
|
1526
1556
|
duct.duct_location = nil
|
1527
1557
|
duct.duct_surface_area = nil
|
1558
|
+
duct.duct_surface_area_multiplier = nil
|
1528
1559
|
end
|
1529
1560
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1530
1561
|
hpxml_default = _test_measure()
|
@@ -1534,9 +1565,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1534
1565
|
expected_return_areas = [270.0]
|
1535
1566
|
expected_supply_fracs = [1.0]
|
1536
1567
|
expected_return_fracs = [1.0]
|
1568
|
+
expected_supply_area_mults = [1.0]
|
1569
|
+
expected_return_area_mults = [1.0]
|
1537
1570
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
1538
1571
|
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1539
|
-
expected_supply_fracs, expected_return_fracs, expected_n_return_registers)
|
1572
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults)
|
1540
1573
|
|
1541
1574
|
# Test defaults w/ multiple foundations
|
1542
1575
|
hpxml = _create_hpxml('base-foundation-multiple.xml')
|
@@ -1545,6 +1578,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1545
1578
|
hpxml.hvac_distributions[0].ducts.each do |duct|
|
1546
1579
|
duct.duct_location = nil
|
1547
1580
|
duct.duct_surface_area = nil
|
1581
|
+
duct.duct_surface_area_multiplier = nil
|
1548
1582
|
end
|
1549
1583
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1550
1584
|
hpxml_default = _test_measure()
|
@@ -1554,9 +1588,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1554
1588
|
expected_return_areas = [67.5]
|
1555
1589
|
expected_supply_fracs = [1.0]
|
1556
1590
|
expected_return_fracs = [1.0]
|
1591
|
+
expected_supply_area_mults = [1.0]
|
1592
|
+
expected_return_area_mults = [1.0]
|
1557
1593
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
1558
1594
|
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1559
|
-
expected_supply_fracs, expected_return_fracs, expected_n_return_registers)
|
1595
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults)
|
1560
1596
|
|
1561
1597
|
# Test defaults w/ foundation exposed to ambient
|
1562
1598
|
hpxml = _create_hpxml('base-foundation-ambient.xml')
|
@@ -1565,6 +1601,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1565
1601
|
hpxml.hvac_distributions[0].ducts.each do |duct|
|
1566
1602
|
duct.duct_location = nil
|
1567
1603
|
duct.duct_surface_area = nil
|
1604
|
+
duct.duct_surface_area_multiplier = nil
|
1568
1605
|
end
|
1569
1606
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1570
1607
|
hpxml_default = _test_measure()
|
@@ -1574,9 +1611,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1574
1611
|
expected_return_areas = [67.5]
|
1575
1612
|
expected_supply_fracs = [1.0]
|
1576
1613
|
expected_return_fracs = [1.0]
|
1614
|
+
expected_supply_area_mults = [1.0]
|
1615
|
+
expected_return_area_mults = [1.0]
|
1577
1616
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
1578
1617
|
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1579
|
-
expected_supply_fracs, expected_return_fracs, expected_n_return_registers)
|
1618
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults)
|
1580
1619
|
|
1581
1620
|
# Test defaults w/ building/unit adjacent to other housing unit
|
1582
1621
|
hpxml = _create_hpxml('base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml')
|
@@ -1585,6 +1624,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1585
1624
|
hpxml.hvac_distributions[0].ducts.each do |duct|
|
1586
1625
|
duct.duct_location = nil
|
1587
1626
|
duct.duct_surface_area = nil
|
1627
|
+
duct.duct_surface_area_multiplier = nil
|
1588
1628
|
end
|
1589
1629
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1590
1630
|
hpxml_default = _test_measure()
|
@@ -1594,9 +1634,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1594
1634
|
expected_return_areas = [45.0]
|
1595
1635
|
expected_supply_fracs = [1.0]
|
1596
1636
|
expected_return_fracs = [1.0]
|
1637
|
+
expected_supply_area_mults = [1.0]
|
1638
|
+
expected_return_area_mults = [1.0]
|
1597
1639
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
1598
1640
|
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1599
|
-
expected_supply_fracs, expected_return_fracs, expected_n_return_registers)
|
1641
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults)
|
1600
1642
|
|
1601
1643
|
# Test defaults w/ 2-story building
|
1602
1644
|
hpxml = _create_hpxml('base-enclosure-2stories.xml')
|
@@ -1605,6 +1647,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1605
1647
|
hpxml.hvac_distributions[0].ducts.each do |duct|
|
1606
1648
|
duct.duct_location = nil
|
1607
1649
|
duct.duct_surface_area = nil
|
1650
|
+
duct.duct_surface_area_multiplier = nil
|
1608
1651
|
end
|
1609
1652
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1610
1653
|
hpxml_default = _test_measure()
|
@@ -1614,9 +1657,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1614
1657
|
expected_return_areas = [227.82, 227.82, 75.94, 75.94]
|
1615
1658
|
expected_supply_fracs = [0.375, 0.375, 0.125, 0.125]
|
1616
1659
|
expected_return_fracs = [0.375, 0.375, 0.125, 0.125]
|
1660
|
+
expected_supply_area_mults = [1.0, 1.0, 1.0, 1.0]
|
1661
|
+
expected_return_area_mults = [1.0, 1.0, 1.0, 1.0]
|
1617
1662
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
1618
1663
|
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1619
|
-
expected_supply_fracs, expected_return_fracs, expected_n_return_registers)
|
1664
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults)
|
1620
1665
|
|
1621
1666
|
# Test defaults w/ 1-story building & multiple HVAC systems
|
1622
1667
|
hpxml = _create_hpxml('base-hvac-multiple.xml')
|
@@ -1628,6 +1673,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1628
1673
|
hvac_distribution.ducts.each do |duct|
|
1629
1674
|
duct.duct_location = nil
|
1630
1675
|
duct.duct_surface_area = nil
|
1676
|
+
duct.duct_surface_area_multiplier = nil
|
1631
1677
|
end
|
1632
1678
|
end
|
1633
1679
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
@@ -1638,9 +1684,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1638
1684
|
expected_return_areas = [13.5, 13.5] * hpxml_default.hvac_distributions.size
|
1639
1685
|
expected_supply_fracs = [0.5, 0.5] * hpxml_default.hvac_distributions.size
|
1640
1686
|
expected_return_fracs = [0.5, 0.5] * hpxml_default.hvac_distributions.size
|
1687
|
+
expected_supply_area_mults = [1.0, 1.0] * hpxml_default.hvac_distributions.size
|
1688
|
+
expected_return_area_mults = [1.0, 1.0] * hpxml_default.hvac_distributions.size
|
1641
1689
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
1642
1690
|
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1643
|
-
expected_supply_fracs, expected_return_fracs, expected_n_return_registers)
|
1691
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults)
|
1644
1692
|
|
1645
1693
|
# Test defaults w/ 2-story building & multiple HVAC systems
|
1646
1694
|
hpxml = _create_hpxml('base-hvac-multiple.xml')
|
@@ -1653,6 +1701,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1653
1701
|
hvac_distribution.ducts.each do |duct|
|
1654
1702
|
duct.duct_location = nil
|
1655
1703
|
duct.duct_surface_area = nil
|
1704
|
+
duct.duct_surface_area_multiplier = nil
|
1656
1705
|
end
|
1657
1706
|
end
|
1658
1707
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
@@ -1663,9 +1712,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1663
1712
|
expected_return_areas = [10.125, 10.125, 3.375, 3.375] * hpxml_default.hvac_distributions.size
|
1664
1713
|
expected_supply_fracs = [0.375, 0.375, 0.125, 0.125] * hpxml_default.hvac_distributions.size
|
1665
1714
|
expected_return_fracs = [0.375, 0.375, 0.125, 0.125] * hpxml_default.hvac_distributions.size
|
1715
|
+
expected_supply_area_mults = [1.0, 1.0, 1.0, 1.0] * hpxml_default.hvac_distributions.size
|
1716
|
+
expected_return_area_mults = [1.0, 1.0, 1.0, 1.0] * hpxml_default.hvac_distributions.size
|
1666
1717
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
1667
1718
|
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1668
|
-
expected_supply_fracs, expected_return_fracs, expected_n_return_registers)
|
1719
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults)
|
1669
1720
|
|
1670
1721
|
# Test defaults w/ 2-story building & multiple HVAC systems & duct area fractions
|
1671
1722
|
hpxml = _create_hpxml('base-hvac-multiple.xml')
|
@@ -1683,6 +1734,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1683
1734
|
hpxml.hvac_distributions.each do |hvac_distribution|
|
1684
1735
|
hvac_distribution.ducts.each do |duct|
|
1685
1736
|
duct.duct_surface_area = nil
|
1737
|
+
duct.duct_surface_area_multiplier = nil
|
1686
1738
|
end
|
1687
1739
|
end
|
1688
1740
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
@@ -1693,9 +1745,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1693
1745
|
expected_return_areas = [13.5, 13.5] * hpxml_default.hvac_distributions.size
|
1694
1746
|
expected_supply_fracs = [0.75, 0.25] * hpxml_default.hvac_distributions.size
|
1695
1747
|
expected_return_fracs = [0.5, 0.5] * hpxml_default.hvac_distributions.size
|
1748
|
+
expected_supply_area_mults = [1.0, 1.0] * hpxml_default.hvac_distributions.size
|
1749
|
+
expected_return_area_mults = [1.0, 1.0] * hpxml_default.hvac_distributions.size
|
1696
1750
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
1697
1751
|
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1698
|
-
expected_supply_fracs, expected_return_fracs, expected_n_return_registers)
|
1752
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults)
|
1699
1753
|
end
|
1700
1754
|
|
1701
1755
|
def test_mech_ventilation_fans
|
@@ -1820,19 +1874,40 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1820
1874
|
vent_fan.is_shared_system = false
|
1821
1875
|
vent_fan.hours_in_operation = 12.0
|
1822
1876
|
vent_fan.fan_power = 12.5
|
1877
|
+
vent_fan.rated_flow_rate = 222.0
|
1823
1878
|
vent_fan.cfis_vent_mode_airflow_fraction = 0.5
|
1879
|
+
vent_fan.cfis_addtl_runtime_operating_mode = HPXML::CFISModeSupplementalFan
|
1880
|
+
hpxml.ventilation_fans.add(id: "VentilationFan#{hpxml.ventilation_fans.size + 1}",
|
1881
|
+
tested_flow_rate: 79.0,
|
1882
|
+
fan_power: 9.0,
|
1883
|
+
fan_type: HPXML::MechVentTypeExhaust,
|
1884
|
+
is_shared_system: false,
|
1885
|
+
used_for_whole_building_ventilation: true)
|
1886
|
+
suppl_vent_fan = hpxml.ventilation_fans[-1]
|
1887
|
+
vent_fan.cfis_supplemental_fan_idref = suppl_vent_fan.id
|
1888
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1889
|
+
hpxml_default = _test_measure()
|
1890
|
+
_test_default_mech_vent_values(hpxml_default, false, 12.0, 12.5, 222.0, 0.5, HPXML::CFISModeSupplementalFan)
|
1891
|
+
_test_default_mech_vent_suppl_values(hpxml_default, false, nil, 9.0, 79.0)
|
1892
|
+
|
1893
|
+
# Test defaults w/ CFIS supplemental fan
|
1894
|
+
suppl_vent_fan.tested_flow_rate = nil
|
1895
|
+
suppl_vent_fan.is_shared_system = nil
|
1896
|
+
suppl_vent_fan.fan_power = nil
|
1824
1897
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1825
1898
|
hpxml_default = _test_measure()
|
1826
|
-
|
1899
|
+
_test_default_mech_vent_suppl_values(hpxml_default, false, nil, 35.0, 100.0)
|
1827
1900
|
|
1828
1901
|
# Test defaults w/ CFIS
|
1829
1902
|
vent_fan.is_shared_system = nil
|
1830
1903
|
vent_fan.hours_in_operation = nil
|
1831
1904
|
vent_fan.fan_power = nil
|
1905
|
+
vent_fan.rated_flow_rate = nil
|
1832
1906
|
vent_fan.cfis_vent_mode_airflow_fraction = nil
|
1907
|
+
vent_fan.cfis_addtl_runtime_operating_mode = nil
|
1833
1908
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1834
1909
|
hpxml_default = _test_measure()
|
1835
|
-
_test_default_mech_vent_values(hpxml_default, false, 8.0,
|
1910
|
+
_test_default_mech_vent_values(hpxml_default, false, 8.0, 150.0, 300.0, 1.0, HPXML::CFISModeAirHandler)
|
1836
1911
|
|
1837
1912
|
# Test inputs not overridden by defaults w/ ERV
|
1838
1913
|
hpxml = _create_hpxml('base-mechvent-erv.xml')
|
@@ -1921,7 +1996,6 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1921
1996
|
wh.location = HPXML::LocationLivingSpace
|
1922
1997
|
wh.temperature = 111
|
1923
1998
|
wh.energy_factor = 0.90
|
1924
|
-
wh.year_installed = 2003
|
1925
1999
|
wh.tank_model_type = HPXML::WaterHeaterTankModelTypeStratified
|
1926
2000
|
end
|
1927
2001
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
@@ -1937,14 +2011,12 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1937
2011
|
wh.recovery_efficiency = nil
|
1938
2012
|
wh.location = nil
|
1939
2013
|
wh.temperature = nil
|
1940
|
-
wh.energy_factor = nil
|
1941
|
-
wh.year_installed = 2003
|
1942
2014
|
wh.tank_model_type = nil
|
1943
2015
|
end
|
1944
2016
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1945
2017
|
hpxml_default = _test_measure()
|
1946
2018
|
_test_default_storage_water_heater_values(hpxml_default,
|
1947
|
-
[false, 18766.7, 50.0, 0.98, HPXML::LocationBasementConditioned, 125, 0.
|
2019
|
+
[false, 18766.7, 50.0, 0.98, HPXML::LocationBasementConditioned, 125, 0.9, HPXML::WaterHeaterTankModelTypeMixed])
|
1948
2020
|
|
1949
2021
|
# Test defaults w/ 5-bedroom house & electric storage water heater
|
1950
2022
|
hpxml = _create_hpxml('base-enclosure-beds-5.xml')
|
@@ -1955,14 +2027,12 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1955
2027
|
wh.recovery_efficiency = nil
|
1956
2028
|
wh.location = nil
|
1957
2029
|
wh.temperature = nil
|
1958
|
-
wh.energy_factor = nil
|
1959
|
-
wh.year_installed = 2010
|
1960
2030
|
wh.tank_model_type = nil
|
1961
2031
|
end
|
1962
2032
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1963
2033
|
hpxml_default = _test_measure()
|
1964
2034
|
_test_default_storage_water_heater_values(hpxml_default,
|
1965
|
-
[false, 18766.7, 66.0, 0.98, HPXML::LocationBasementConditioned, 125, 0.
|
2035
|
+
[false, 18766.7, 66.0, 0.98, HPXML::LocationBasementConditioned, 125, 0.95, HPXML::WaterHeaterTankModelTypeMixed])
|
1966
2036
|
|
1967
2037
|
# Test defaults w/ 3-bedroom house & 2 storage water heaters (1 electric and 1 natural gas)
|
1968
2038
|
hpxml = _create_hpxml('base-dhw-multiple.xml')
|
@@ -1975,15 +2045,13 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1975
2045
|
wh.recovery_efficiency = nil
|
1976
2046
|
wh.location = nil
|
1977
2047
|
wh.temperature = nil
|
1978
|
-
wh.energy_factor = nil
|
1979
|
-
wh.year_installed = 2010
|
1980
2048
|
wh.tank_model_type = nil
|
1981
2049
|
end
|
1982
2050
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1983
2051
|
hpxml_default = _test_measure()
|
1984
2052
|
_test_default_storage_water_heater_values(hpxml_default,
|
1985
|
-
[false, 15354.6, 50.0, 0.98, HPXML::LocationBasementConditioned, 125, 0.
|
1986
|
-
[false, 36000.0, 40.0, 0.
|
2053
|
+
[false, 15354.6, 50.0, 0.98, HPXML::LocationBasementConditioned, 125, 0.95, HPXML::WaterHeaterTankModelTypeMixed],
|
2054
|
+
[false, 36000.0, 40.0, 0.757, HPXML::LocationBasementConditioned, 125, 0.59, HPXML::WaterHeaterTankModelTypeMixed])
|
1987
2055
|
|
1988
2056
|
# Test inputs not overridden by defaults w/ UEF
|
1989
2057
|
hpxml = _create_hpxml('base-dhw-tank-gas-uef.xml')
|
@@ -2061,6 +2129,23 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2061
2129
|
_test_default_heat_pump_water_heater_values(hpxml_default, [HPXML::WaterHeaterOperatingModeStandard])
|
2062
2130
|
end
|
2063
2131
|
|
2132
|
+
def test_indirect_water_heaters
|
2133
|
+
# Test inputs not overridden by defaults
|
2134
|
+
hpxml = _create_hpxml('base-dhw-indirect.xml')
|
2135
|
+
hpxml.water_heating_systems[0].standby_loss_value = 0.99
|
2136
|
+
hpxml.water_heating_systems[0].standby_loss_units = HPXML::UnitsDegFPerHour
|
2137
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2138
|
+
hpxml_default = _test_measure()
|
2139
|
+
_test_default_indirect_water_heater_values(hpxml_default, [HPXML::UnitsDegFPerHour, 0.99])
|
2140
|
+
|
2141
|
+
# Test defaults
|
2142
|
+
hpxml.water_heating_systems[0].standby_loss_value = nil
|
2143
|
+
hpxml.water_heating_systems[0].standby_loss_units = nil
|
2144
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2145
|
+
hpxml_default = _test_measure()
|
2146
|
+
_test_default_indirect_water_heater_values(hpxml_default, [HPXML::UnitsDegFPerHour, 0.843])
|
2147
|
+
end
|
2148
|
+
|
2064
2149
|
def test_hot_water_distribution
|
2065
2150
|
# Test inputs not overridden by defaults -- standard
|
2066
2151
|
hpxml = _create_hpxml('base.xml')
|
@@ -2243,10 +2328,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2243
2328
|
hpxml.batteries[0].usable_capacity_ah = nil
|
2244
2329
|
hpxml.batteries[0].rated_power_output = 1234.0
|
2245
2330
|
hpxml.batteries[0].location = HPXML::LocationBasementConditioned
|
2246
|
-
hpxml.batteries[0].lifetime_model = HPXML::BatteryLifetimeModelKandlerSmith
|
2331
|
+
# hpxml.batteries[0].lifetime_model = HPXML::BatteryLifetimeModelKandlerSmith
|
2332
|
+
hpxml.batteries[0].round_trip_efficiency = 0.9
|
2247
2333
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2248
2334
|
hpxml_default = _test_measure()
|
2249
|
-
_test_default_battery_values(hpxml_default, 45.0, nil, 34.0, nil, 1234.0, HPXML::LocationBasementConditioned, HPXML::BatteryLifetimeModelKandlerSmith)
|
2335
|
+
_test_default_battery_values(hpxml_default, 45.0, nil, 34.0, nil, 1234.0, HPXML::LocationBasementConditioned, HPXML::BatteryLifetimeModelKandlerSmith, 0.9)
|
2250
2336
|
|
2251
2337
|
# Test w/ Ah instead of kWh
|
2252
2338
|
hpxml.batteries[0].nominal_capacity_kwh = nil
|
@@ -2255,7 +2341,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2255
2341
|
hpxml.batteries[0].usable_capacity_ah = 876.0
|
2256
2342
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2257
2343
|
hpxml_default = _test_measure()
|
2258
|
-
_test_default_battery_values(hpxml_default, nil, 987.0, nil, 876.0, 1234.0, HPXML::LocationBasementConditioned, HPXML::BatteryLifetimeModelKandlerSmith)
|
2344
|
+
_test_default_battery_values(hpxml_default, nil, 987.0, nil, 876.0, 1234.0, HPXML::LocationBasementConditioned, HPXML::BatteryLifetimeModelKandlerSmith, 0.9)
|
2259
2345
|
|
2260
2346
|
# Test defaults
|
2261
2347
|
hpxml.batteries[0].nominal_capacity_kwh = nil
|
@@ -2265,9 +2351,10 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2265
2351
|
hpxml.batteries[0].rated_power_output = nil
|
2266
2352
|
hpxml.batteries[0].location = nil
|
2267
2353
|
hpxml.batteries[0].lifetime_model = nil
|
2354
|
+
hpxml.batteries[0].round_trip_efficiency = nil
|
2268
2355
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2269
2356
|
hpxml_default = _test_measure()
|
2270
|
-
_test_default_battery_values(hpxml_default, 10.0, nil, 9.0, nil, 5000.0, HPXML::LocationOutside, HPXML::BatteryLifetimeModelNone)
|
2357
|
+
_test_default_battery_values(hpxml_default, 10.0, nil, 9.0, nil, 5000.0, HPXML::LocationOutside, HPXML::BatteryLifetimeModelNone, 0.925)
|
2271
2358
|
|
2272
2359
|
# Test defaults w/ nominal kWh
|
2273
2360
|
hpxml.batteries[0].nominal_capacity_kwh = 14.0
|
@@ -2277,7 +2364,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2277
2364
|
hpxml.batteries[0].rated_power_output = nil
|
2278
2365
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2279
2366
|
hpxml_default = _test_measure()
|
2280
|
-
_test_default_battery_values(hpxml_default, 14.0, nil, 12.6, nil, 7000.0, HPXML::LocationOutside, HPXML::BatteryLifetimeModelNone)
|
2367
|
+
_test_default_battery_values(hpxml_default, 14.0, nil, 12.6, nil, 7000.0, HPXML::LocationOutside, HPXML::BatteryLifetimeModelNone, 0.925)
|
2281
2368
|
|
2282
2369
|
# Test defaults w/ usable kWh
|
2283
2370
|
hpxml.batteries[0].nominal_capacity_kwh = nil
|
@@ -2287,7 +2374,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2287
2374
|
hpxml.batteries[0].rated_power_output = nil
|
2288
2375
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2289
2376
|
hpxml_default = _test_measure()
|
2290
|
-
_test_default_battery_values(hpxml_default, 13.33, nil, 12.0, nil, 6665.0, HPXML::LocationOutside, HPXML::BatteryLifetimeModelNone)
|
2377
|
+
_test_default_battery_values(hpxml_default, 13.33, nil, 12.0, nil, 6665.0, HPXML::LocationOutside, HPXML::BatteryLifetimeModelNone, 0.925)
|
2291
2378
|
|
2292
2379
|
# Test defaults w/ nominal Ah
|
2293
2380
|
hpxml.batteries[0].nominal_capacity_kwh = nil
|
@@ -2297,7 +2384,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2297
2384
|
hpxml.batteries[0].rated_power_output = nil
|
2298
2385
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2299
2386
|
hpxml_default = _test_measure()
|
2300
|
-
_test_default_battery_values(hpxml_default, nil, 280.0, nil, 252.0, 7000.0, HPXML::LocationOutside, HPXML::BatteryLifetimeModelNone)
|
2387
|
+
_test_default_battery_values(hpxml_default, nil, 280.0, nil, 252.0, 7000.0, HPXML::LocationOutside, HPXML::BatteryLifetimeModelNone, 0.925)
|
2301
2388
|
|
2302
2389
|
# Test defaults w/ usable Ah
|
2303
2390
|
hpxml.batteries[0].nominal_capacity_kwh = nil
|
@@ -2307,7 +2394,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2307
2394
|
hpxml.batteries[0].rated_power_output = nil
|
2308
2395
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2309
2396
|
hpxml_default = _test_measure()
|
2310
|
-
_test_default_battery_values(hpxml_default, nil, 266.67, nil, 240.0, 6667.0, HPXML::LocationOutside, HPXML::BatteryLifetimeModelNone)
|
2397
|
+
_test_default_battery_values(hpxml_default, nil, 266.67, nil, 240.0, 6667.0, HPXML::LocationOutside, HPXML::BatteryLifetimeModelNone, 0.925)
|
2311
2398
|
|
2312
2399
|
# Test defaults w/ rated power output
|
2313
2400
|
hpxml.batteries[0].nominal_capacity_kwh = nil
|
@@ -2317,7 +2404,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2317
2404
|
hpxml.batteries[0].rated_power_output = 10000.0
|
2318
2405
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2319
2406
|
hpxml_default = _test_measure()
|
2320
|
-
_test_default_battery_values(hpxml_default, 20.0, nil, 18.0, nil, 10000.0, HPXML::LocationOutside, HPXML::BatteryLifetimeModelNone)
|
2407
|
+
_test_default_battery_values(hpxml_default, 20.0, nil, 18.0, nil, 10000.0, HPXML::LocationOutside, HPXML::BatteryLifetimeModelNone, 0.925)
|
2321
2408
|
end
|
2322
2409
|
|
2323
2410
|
def test_generators
|
@@ -3013,94 +3100,6 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3013
3100
|
_test_default_fuel_load_values(hpxml_default, HPXML::FuelLoadTypeFireplace, 67, 0.5, 0.1, 1.0, Schedule.FuelLoadsFireplaceWeekdayFractions, Schedule.FuelLoadsFireplaceWeekendFractions, Schedule.FuelLoadsFireplaceMonthlyMultipliers)
|
3014
3101
|
end
|
3015
3102
|
|
3016
|
-
def test_hvac_lookup
|
3017
|
-
central_air_conditioner_seer = HVAC.get_default_hvac_efficiency_by_year_installed(1970, 'central air conditioner', 'electricity', 'SEER')
|
3018
|
-
assert_equal(central_air_conditioner_seer, 8.0)
|
3019
|
-
|
3020
|
-
room_air_conditioner_eer = HVAC.get_default_hvac_efficiency_by_year_installed(1993, 'room air conditioner', 'electricity', 'EER')
|
3021
|
-
assert_equal(room_air_conditioner_eer, 9.05)
|
3022
|
-
|
3023
|
-
furnace_afue = HVAC.get_default_hvac_efficiency_by_year_installed(1997, 'Furnace', 'natural gas', 'AFUE')
|
3024
|
-
assert_equal(furnace_afue, 0.829)
|
3025
|
-
|
3026
|
-
furnace_afue = HVAC.get_default_hvac_efficiency_by_year_installed(1981, 'Furnace', 'diesel', 'AFUE')
|
3027
|
-
assert_equal(furnace_afue, 0.768)
|
3028
|
-
|
3029
|
-
wall_furnace_afue = HVAC.get_default_hvac_efficiency_by_year_installed(1997, 'WallFurnace', 'natural gas', 'AFUE')
|
3030
|
-
assert_equal(wall_furnace_afue, 0.656)
|
3031
|
-
|
3032
|
-
wall_furnace_afue = HVAC.get_default_hvac_efficiency_by_year_installed(1971, 'WallFurnace', 'propane', 'AFUE')
|
3033
|
-
assert_equal(wall_furnace_afue, 0.6)
|
3034
|
-
|
3035
|
-
wall_furnace_afue = HVAC.get_default_hvac_efficiency_by_year_installed(1970, 'FloorFurnace', 'natural gas', 'AFUE')
|
3036
|
-
assert_equal(wall_furnace_afue, 0.6)
|
3037
|
-
|
3038
|
-
boiler_afue = HVAC.get_default_hvac_efficiency_by_year_installed(2004, 'Boiler', 'propane', 'AFUE')
|
3039
|
-
assert_equal(boiler_afue, 0.831)
|
3040
|
-
|
3041
|
-
heatpump_seer = HVAC.get_default_hvac_efficiency_by_year_installed(1991, 'air-to-air', 'electricity', 'SEER')
|
3042
|
-
assert_equal(heatpump_seer, 9.77)
|
3043
|
-
|
3044
|
-
heatpump_hspf = HVAC.get_default_hvac_efficiency_by_year_installed(1988, 'air-to-air', 'electricity', 'HSPF')
|
3045
|
-
assert_equal(heatpump_hspf, 6.88)
|
3046
|
-
|
3047
|
-
assert_equal(
|
3048
|
-
HVAC.get_default_hvac_efficiency_by_year_installed(2010, 'air-to-air', 'electricity', 'SEER'),
|
3049
|
-
HVAC.get_default_hvac_efficiency_by_year_installed(2011, 'air-to-air', 'electricity', 'SEER')
|
3050
|
-
)
|
3051
|
-
|
3052
|
-
assert_equal(
|
3053
|
-
HVAC.get_default_hvac_efficiency_by_year_installed(2010, 'Furnace', 'natural gas', 'AFUE'),
|
3054
|
-
HVAC.get_default_hvac_efficiency_by_year_installed(2020, 'Furnace', 'natural gas', 'AFUE')
|
3055
|
-
)
|
3056
|
-
|
3057
|
-
assert_equal(
|
3058
|
-
HVAC.get_default_hvac_efficiency_by_year_installed(1969, 'Boiler', 'fuel oil', 'AFUE'),
|
3059
|
-
HVAC.get_default_hvac_efficiency_by_year_installed(1970, 'Boiler', 'fuel oil', 'AFUE')
|
3060
|
-
)
|
3061
|
-
|
3062
|
-
assert_equal(
|
3063
|
-
HVAC.get_default_hvac_efficiency_by_year_installed(1955, 'central air conditioner', 'electricity', 'SEER'),
|
3064
|
-
HVAC.get_default_hvac_efficiency_by_year_installed(1970, 'central air conditioner', 'electricity', 'SEER')
|
3065
|
-
)
|
3066
|
-
end
|
3067
|
-
|
3068
|
-
def test_dhw_lookup
|
3069
|
-
waterheater_elec_ef = Waterheater.get_default_water_heater_efficiency_by_year_installed(2006, 'electricity')
|
3070
|
-
assert_equal(waterheater_elec_ef, 0.9)
|
3071
|
-
|
3072
|
-
waterheater_natural_gas_ef = Waterheater.get_default_water_heater_efficiency_by_year_installed(1998, 'natural gas')
|
3073
|
-
assert_equal(waterheater_natural_gas_ef, 0.501)
|
3074
|
-
|
3075
|
-
waterheater_propane_ef = Waterheater.get_default_water_heater_efficiency_by_year_installed(2007, 'propane')
|
3076
|
-
assert_equal(waterheater_propane_ef, 0.55)
|
3077
|
-
|
3078
|
-
waterheater_fuel_oil_ef = Waterheater.get_default_water_heater_efficiency_by_year_installed(1989, 'fuel oil')
|
3079
|
-
assert_equal(waterheater_fuel_oil_ef, 0.54)
|
3080
|
-
|
3081
|
-
waterheater_fuel_oil_ef = Waterheater.get_default_water_heater_efficiency_by_year_installed(1989, 'wood')
|
3082
|
-
assert_equal(waterheater_fuel_oil_ef, 0.54)
|
3083
|
-
|
3084
|
-
['natural gas', 'electricity', 'propane', 'fuel oil'].each do |fuel_type|
|
3085
|
-
assert_equal(
|
3086
|
-
Waterheater.get_default_water_heater_efficiency_by_year_installed(2010, fuel_type),
|
3087
|
-
Waterheater.get_default_water_heater_efficiency_by_year_installed(2011, fuel_type)
|
3088
|
-
)
|
3089
|
-
assert_equal(
|
3090
|
-
Waterheater.get_default_water_heater_efficiency_by_year_installed(2010, fuel_type),
|
3091
|
-
Waterheater.get_default_water_heater_efficiency_by_year_installed(2020, fuel_type)
|
3092
|
-
)
|
3093
|
-
assert_equal(
|
3094
|
-
Waterheater.get_default_water_heater_efficiency_by_year_installed(1971, fuel_type),
|
3095
|
-
Waterheater.get_default_water_heater_efficiency_by_year_installed(1972, fuel_type)
|
3096
|
-
)
|
3097
|
-
assert_equal(
|
3098
|
-
Waterheater.get_default_water_heater_efficiency_by_year_installed(1955, fuel_type),
|
3099
|
-
Waterheater.get_default_water_heater_efficiency_by_year_installed(1972, fuel_type)
|
3100
|
-
)
|
3101
|
-
end
|
3102
|
-
end
|
3103
|
-
|
3104
3103
|
def _test_measure()
|
3105
3104
|
# create an instance of the measure
|
3106
3105
|
measure = HPXMLtoOpenStudio.new
|
@@ -3138,7 +3137,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3138
3137
|
|
3139
3138
|
def _test_default_header_values(hpxml, tstep, sim_begin_month, sim_begin_day, sim_end_month, sim_end_day, sim_calendar_year,
|
3140
3139
|
dst_enabled, dst_begin_month, dst_begin_day, dst_end_month, dst_end_day, heat_pump_sizing_methodology,
|
3141
|
-
allow_increased_fixed_capacities, state_code, time_zone_utc_offset, occupancy_calculation_type
|
3140
|
+
allow_increased_fixed_capacities, state_code, time_zone_utc_offset, occupancy_calculation_type,
|
3141
|
+
temperature_capacitance_multiplier, natvent_days_per_week)
|
3142
3142
|
assert_equal(tstep, hpxml.header.timestep)
|
3143
3143
|
assert_equal(sim_begin_month, hpxml.header.sim_begin_month)
|
3144
3144
|
assert_equal(sim_begin_day, hpxml.header.sim_begin_day)
|
@@ -3163,6 +3163,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3163
3163
|
end
|
3164
3164
|
assert_equal(time_zone_utc_offset, hpxml.header.time_zone_utc_offset)
|
3165
3165
|
assert_equal(occupancy_calculation_type, hpxml.header.occupancy_calculation_type)
|
3166
|
+
assert_equal(temperature_capacitance_multiplier, hpxml.header.temperature_capacitance_multiplier)
|
3167
|
+
assert_equal(natvent_days_per_week, hpxml.header.natvent_days_per_week)
|
3166
3168
|
end
|
3167
3169
|
|
3168
3170
|
def _test_default_emissions_values(scenario, elec_schedule_number_of_header_rows, elec_schedule_column_number,
|
@@ -3215,9 +3217,117 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3215
3217
|
end
|
3216
3218
|
end
|
3217
3219
|
|
3218
|
-
def
|
3220
|
+
def _test_default_bills_values(scenario,
|
3221
|
+
elec_fixed_charge, natural_gas_fixed_charge, propane_fixed_charge, fuel_oil_fixed_charge, coal_fixed_charge, wood_fixed_charge, wood_pellets_fixed_charge,
|
3222
|
+
elec_marginal_rate, natural_gas_marginal_rate, propane_marginal_rate, fuel_oil_marginal_rate, coal_marginal_rate, wood_marginal_rate, wood_pellets_marginal_rate,
|
3223
|
+
pv_compensation_type, pv_net_metering_annual_excess_sellback_rate_type, pv_net_metering_annual_excess_sellback_rate,
|
3224
|
+
pv_feed_in_tariff_rate, pv_monthly_grid_connection_fee_dollars_per_kw, pv_monthly_grid_connection_fee_dollars)
|
3225
|
+
if elec_fixed_charge.nil?
|
3226
|
+
assert_nil(scenario.elec_fixed_charge)
|
3227
|
+
else
|
3228
|
+
assert_equal(elec_fixed_charge, scenario.elec_fixed_charge)
|
3229
|
+
end
|
3230
|
+
if natural_gas_fixed_charge.nil?
|
3231
|
+
assert_nil(scenario.natural_gas_fixed_charge)
|
3232
|
+
else
|
3233
|
+
assert_equal(natural_gas_fixed_charge, scenario.natural_gas_fixed_charge)
|
3234
|
+
end
|
3235
|
+
if propane_fixed_charge.nil?
|
3236
|
+
assert_nil(scenario.propane_fixed_charge)
|
3237
|
+
else
|
3238
|
+
assert_equal(propane_fixed_charge, scenario.propane_fixed_charge)
|
3239
|
+
end
|
3240
|
+
if fuel_oil_fixed_charge.nil?
|
3241
|
+
assert_nil(scenario.fuel_oil_fixed_charge)
|
3242
|
+
else
|
3243
|
+
assert_equal(fuel_oil_fixed_charge, scenario.fuel_oil_fixed_charge)
|
3244
|
+
end
|
3245
|
+
if coal_fixed_charge.nil?
|
3246
|
+
assert_nil(scenario.coal_fixed_charge)
|
3247
|
+
else
|
3248
|
+
assert_equal(coal_fixed_charge, scenario.coal_fixed_charge)
|
3249
|
+
end
|
3250
|
+
if wood_fixed_charge.nil?
|
3251
|
+
assert_nil(scenario.wood_fixed_charge)
|
3252
|
+
else
|
3253
|
+
assert_equal(wood_fixed_charge, scenario.wood_fixed_charge)
|
3254
|
+
end
|
3255
|
+
if wood_pellets_fixed_charge.nil?
|
3256
|
+
assert_nil(scenario.wood_pellets_fixed_charge)
|
3257
|
+
else
|
3258
|
+
assert_equal(wood_pellets_fixed_charge, scenario.wood_pellets_fixed_charge)
|
3259
|
+
end
|
3260
|
+
if elec_marginal_rate.nil?
|
3261
|
+
assert_nil(scenario.elec_marginal_rate)
|
3262
|
+
else
|
3263
|
+
assert_equal(elec_marginal_rate, scenario.elec_marginal_rate)
|
3264
|
+
end
|
3265
|
+
if natural_gas_marginal_rate.nil?
|
3266
|
+
assert_nil(scenario.natural_gas_marginal_rate)
|
3267
|
+
else
|
3268
|
+
assert_equal(natural_gas_marginal_rate, scenario.natural_gas_marginal_rate)
|
3269
|
+
end
|
3270
|
+
if propane_marginal_rate.nil?
|
3271
|
+
assert_nil(scenario.propane_marginal_rate)
|
3272
|
+
else
|
3273
|
+
assert_equal(propane_marginal_rate, scenario.propane_marginal_rate)
|
3274
|
+
end
|
3275
|
+
if fuel_oil_marginal_rate.nil?
|
3276
|
+
assert_nil(scenario.fuel_oil_marginal_rate)
|
3277
|
+
else
|
3278
|
+
assert_equal(fuel_oil_marginal_rate, scenario.fuel_oil_marginal_rate)
|
3279
|
+
end
|
3280
|
+
if coal_marginal_rate.nil?
|
3281
|
+
assert_nil(scenario.coal_marginal_rate)
|
3282
|
+
else
|
3283
|
+
assert_equal(coal_marginal_rate, scenario.coal_marginal_rate)
|
3284
|
+
end
|
3285
|
+
if wood_marginal_rate.nil?
|
3286
|
+
assert_nil(scenario.wood_marginal_rate)
|
3287
|
+
else
|
3288
|
+
assert_equal(wood_marginal_rate, scenario.wood_marginal_rate)
|
3289
|
+
end
|
3290
|
+
if wood_pellets_marginal_rate.nil?
|
3291
|
+
assert_nil(scenario.wood_pellets_marginal_rate)
|
3292
|
+
else
|
3293
|
+
assert_equal(wood_pellets_marginal_rate, scenario.wood_pellets_marginal_rate)
|
3294
|
+
end
|
3295
|
+
if pv_compensation_type.nil?
|
3296
|
+
assert_nil(scenario.pv_compensation_type)
|
3297
|
+
else
|
3298
|
+
assert_equal(pv_compensation_type, scenario.pv_compensation_type)
|
3299
|
+
end
|
3300
|
+
if pv_net_metering_annual_excess_sellback_rate_type.nil?
|
3301
|
+
assert_nil(scenario.pv_net_metering_annual_excess_sellback_rate_type)
|
3302
|
+
else
|
3303
|
+
assert_equal(pv_net_metering_annual_excess_sellback_rate_type, scenario.pv_net_metering_annual_excess_sellback_rate_type)
|
3304
|
+
end
|
3305
|
+
if pv_net_metering_annual_excess_sellback_rate.nil?
|
3306
|
+
assert_nil(scenario.pv_net_metering_annual_excess_sellback_rate)
|
3307
|
+
else
|
3308
|
+
assert_equal(pv_net_metering_annual_excess_sellback_rate, scenario.pv_net_metering_annual_excess_sellback_rate)
|
3309
|
+
end
|
3310
|
+
if pv_feed_in_tariff_rate.nil?
|
3311
|
+
assert_nil(scenario.pv_feed_in_tariff_rate)
|
3312
|
+
else
|
3313
|
+
assert_equal(pv_feed_in_tariff_rate, scenario.pv_feed_in_tariff_rate)
|
3314
|
+
end
|
3315
|
+
if pv_monthly_grid_connection_fee_dollars_per_kw.nil?
|
3316
|
+
assert_nil(scenario.pv_monthly_grid_connection_fee_dollars_per_kw)
|
3317
|
+
else
|
3318
|
+
assert_equal(pv_monthly_grid_connection_fee_dollars_per_kw, scenario.pv_monthly_grid_connection_fee_dollars_per_kw)
|
3319
|
+
end
|
3320
|
+
if pv_monthly_grid_connection_fee_dollars.nil?
|
3321
|
+
assert_nil(scenario.pv_monthly_grid_connection_fee_dollars)
|
3322
|
+
else
|
3323
|
+
assert_equal(pv_monthly_grid_connection_fee_dollars, scenario.pv_monthly_grid_connection_fee_dollars)
|
3324
|
+
end
|
3325
|
+
end
|
3326
|
+
|
3327
|
+
def _test_default_site_values(hpxml, site_type, shielding_of_home, ground_conductivity)
|
3219
3328
|
assert_equal(site_type, hpxml.site.site_type)
|
3220
3329
|
assert_equal(shielding_of_home, hpxml.site.shielding_of_home)
|
3330
|
+
assert_equal(ground_conductivity, hpxml.site.ground_conductivity)
|
3221
3331
|
end
|
3222
3332
|
|
3223
3333
|
def _test_default_neighbor_building_values(hpxml, azimuths)
|
@@ -3248,14 +3358,14 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3248
3358
|
|
3249
3359
|
def _test_default_climate_and_risk_zones_values(hpxml, iecc_year, iecc_zone)
|
3250
3360
|
if iecc_year.nil?
|
3251
|
-
|
3361
|
+
assert_equal(0, hpxml.climate_and_risk_zones.climate_zone_ieccs.size)
|
3252
3362
|
else
|
3253
|
-
assert_equal(iecc_year, hpxml.climate_and_risk_zones.
|
3363
|
+
assert_equal(iecc_year, hpxml.climate_and_risk_zones.climate_zone_ieccs[0].year)
|
3254
3364
|
end
|
3255
3365
|
if iecc_zone.nil?
|
3256
|
-
|
3366
|
+
assert_equal(0, hpxml.climate_and_risk_zones.climate_zone_ieccs.size)
|
3257
3367
|
else
|
3258
|
-
assert_equal(iecc_zone, hpxml.climate_and_risk_zones.
|
3368
|
+
assert_equal(iecc_zone, hpxml.climate_and_risk_zones.climate_zone_ieccs[0].zone)
|
3259
3369
|
end
|
3260
3370
|
end
|
3261
3371
|
|
@@ -3318,6 +3428,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3318
3428
|
else
|
3319
3429
|
assert_nil(wall.interior_finish_thickness)
|
3320
3430
|
end
|
3431
|
+
if not azimuth.nil?
|
3432
|
+
assert_equal(azimuth, wall.azimuth)
|
3433
|
+
else
|
3434
|
+
assert_nil(wall.azimuth)
|
3435
|
+
end
|
3321
3436
|
end
|
3322
3437
|
|
3323
3438
|
def _test_default_foundation_wall_values(foundation_wall, thickness, int_finish_type, int_finish_thickness, azimuth, area,
|
@@ -3338,12 +3453,12 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3338
3453
|
assert_equal(type, foundation_wall.type)
|
3339
3454
|
end
|
3340
3455
|
|
3341
|
-
def
|
3342
|
-
assert_equal(int_finish_type,
|
3456
|
+
def _test_default_floor_values(floor, int_finish_type, int_finish_thickness)
|
3457
|
+
assert_equal(int_finish_type, floor.interior_finish_type)
|
3343
3458
|
if not int_finish_thickness.nil?
|
3344
|
-
assert_equal(int_finish_thickness,
|
3459
|
+
assert_equal(int_finish_thickness, floor.interior_finish_thickness)
|
3345
3460
|
else
|
3346
|
-
assert_nil(
|
3461
|
+
assert_nil(floor.interior_finish_thickness)
|
3347
3462
|
end
|
3348
3463
|
end
|
3349
3464
|
|
@@ -3412,18 +3527,13 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3412
3527
|
end
|
3413
3528
|
end
|
3414
3529
|
|
3415
|
-
def _test_default_room_air_conditioner_ptac_values(cooling_system, shr, cooling_capacity
|
3530
|
+
def _test_default_room_air_conditioner_ptac_values(cooling_system, shr, cooling_capacity)
|
3416
3531
|
assert_equal(shr, cooling_system.cooling_shr)
|
3417
3532
|
if cooling_capacity.nil?
|
3418
3533
|
assert(cooling_system.cooling_capacity > 0)
|
3419
3534
|
else
|
3420
3535
|
assert_equal(cooling_system.cooling_capacity, cooling_capacity)
|
3421
3536
|
end
|
3422
|
-
if cooling_efficiency_eer.nil?
|
3423
|
-
assert_nil(cooling_system.cooling_efficiency_eer)
|
3424
|
-
else
|
3425
|
-
assert_equal(cooling_system.cooling_efficiency_eer, cooling_efficiency_eer)
|
3426
|
-
end
|
3427
3537
|
end
|
3428
3538
|
|
3429
3539
|
def _test_default_evap_cooler_values(cooling_system, cooling_capacity)
|
@@ -3435,7 +3545,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3435
3545
|
end
|
3436
3546
|
|
3437
3547
|
def _test_default_mini_split_air_conditioner_values(cooling_system, shr, fan_watts_per_cfm, charge_defect_ratio,
|
3438
|
-
airflow_defect_ratio, cooling_capacity)
|
3548
|
+
airflow_defect_ratio, cooling_capacity, cooling_efficiency_seer)
|
3439
3549
|
assert_equal(shr, cooling_system.cooling_shr)
|
3440
3550
|
assert_equal(fan_watts_per_cfm, cooling_system.fan_watts_per_cfm)
|
3441
3551
|
assert_equal(charge_defect_ratio, cooling_system.charge_defect_ratio)
|
@@ -3445,18 +3555,14 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3445
3555
|
else
|
3446
3556
|
assert_equal(cooling_system.cooling_capacity, cooling_capacity)
|
3447
3557
|
end
|
3448
|
-
|
3449
|
-
|
3450
|
-
def _test_default_elec_resistance(heating_system, heating_efficiency_percent)
|
3451
|
-
if heating_efficiency_percent.nil?
|
3452
|
-
assert_nil(heating_system.heating_efficiency_percent)
|
3558
|
+
if cooling_efficiency_seer.nil?
|
3559
|
+
assert_nil(cooling_system.cooling_efficiency_seer)
|
3453
3560
|
else
|
3454
|
-
assert_equal(
|
3561
|
+
assert_equal(cooling_system.cooling_efficiency_seer, cooling_efficiency_seer)
|
3455
3562
|
end
|
3456
3563
|
end
|
3457
3564
|
|
3458
|
-
def _test_default_furnace_values(heating_system, fan_watts_per_cfm, airflow_defect_ratio,
|
3459
|
-
heating_capacity, heating_efficiency_afue)
|
3565
|
+
def _test_default_furnace_values(heating_system, fan_watts_per_cfm, airflow_defect_ratio, heating_capacity)
|
3460
3566
|
assert_equal(fan_watts_per_cfm, heating_system.fan_watts_per_cfm)
|
3461
3567
|
assert_equal(airflow_defect_ratio, heating_system.airflow_defect_ratio)
|
3462
3568
|
if heating_capacity.nil?
|
@@ -3464,109 +3570,69 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3464
3570
|
else
|
3465
3571
|
assert_equal(heating_system.heating_capacity, heating_capacity)
|
3466
3572
|
end
|
3467
|
-
if heating_efficiency_afue.nil?
|
3468
|
-
assert_nil(heating_system.heating_efficiency_afue)
|
3469
|
-
else
|
3470
|
-
assert_equal(heating_system.heating_efficiency_afue, heating_efficiency_afue)
|
3471
|
-
end
|
3472
3573
|
end
|
3473
3574
|
|
3474
|
-
def _test_default_wall_furnace_values(heating_system, fan_watts, heating_capacity
|
3575
|
+
def _test_default_wall_furnace_values(heating_system, fan_watts, heating_capacity)
|
3475
3576
|
assert_equal(fan_watts, heating_system.fan_watts)
|
3476
3577
|
if heating_capacity.nil?
|
3477
3578
|
assert(heating_system.heating_capacity > 0)
|
3478
3579
|
else
|
3479
3580
|
assert_equal(heating_system.heating_capacity, heating_capacity)
|
3480
3581
|
end
|
3481
|
-
if heating_efficiency_afue.nil?
|
3482
|
-
assert_nil(heating_system.heating_efficiency_afue)
|
3483
|
-
else
|
3484
|
-
assert_equal(heating_system.heating_efficiency_afue, heating_efficiency_afue)
|
3485
|
-
end
|
3486
3582
|
end
|
3487
3583
|
|
3488
|
-
def _test_default_floor_furnace_values(heating_system, fan_watts, heating_capacity
|
3584
|
+
def _test_default_floor_furnace_values(heating_system, fan_watts, heating_capacity)
|
3489
3585
|
assert_equal(fan_watts, heating_system.fan_watts)
|
3490
3586
|
if heating_capacity.nil?
|
3491
3587
|
assert(heating_system.heating_capacity > 0)
|
3492
3588
|
else
|
3493
3589
|
assert_equal(heating_system.heating_capacity, heating_capacity)
|
3494
3590
|
end
|
3495
|
-
if heating_efficiency_afue.nil?
|
3496
|
-
assert_nil(heating_system.heating_efficiency_afue)
|
3497
|
-
else
|
3498
|
-
assert_equal(heating_system.heating_efficiency_afue, heating_efficiency_afue)
|
3499
|
-
end
|
3500
3591
|
end
|
3501
3592
|
|
3502
|
-
def _test_default_boiler_values(heating_system, eae, heating_capacity
|
3593
|
+
def _test_default_boiler_values(heating_system, eae, heating_capacity)
|
3503
3594
|
assert_equal(eae, heating_system.electric_auxiliary_energy)
|
3504
3595
|
if heating_capacity.nil?
|
3505
3596
|
assert(heating_system.heating_capacity > 0)
|
3506
3597
|
else
|
3507
3598
|
assert_equal(heating_system.heating_capacity, heating_capacity)
|
3508
3599
|
end
|
3509
|
-
if heating_efficiency_afue.nil?
|
3510
|
-
assert_nil(heating_system.heating_efficiency_afue)
|
3511
|
-
else
|
3512
|
-
assert_equal(heating_system.heating_efficiency_afue, heating_efficiency_afue)
|
3513
|
-
end
|
3514
3600
|
end
|
3515
3601
|
|
3516
|
-
def _test_default_stove_values(heating_system, fan_watts, heating_capacity
|
3602
|
+
def _test_default_stove_values(heating_system, fan_watts, heating_capacity)
|
3517
3603
|
assert_equal(fan_watts, heating_system.fan_watts)
|
3518
3604
|
if heating_capacity.nil?
|
3519
3605
|
assert(heating_system.heating_capacity > 0)
|
3520
3606
|
else
|
3521
3607
|
assert_equal(heating_system.heating_capacity, heating_capacity)
|
3522
3608
|
end
|
3523
|
-
if heating_efficiency_percent.nil?
|
3524
|
-
assert_nil(heating_system.heating_efficiency_percent)
|
3525
|
-
else
|
3526
|
-
assert_equal(heating_system.heating_efficiency_percent, heating_efficiency_percent)
|
3527
|
-
end
|
3528
3609
|
end
|
3529
3610
|
|
3530
|
-
def _test_default_portable_heater_values(heating_system, fan_watts, heating_capacity
|
3611
|
+
def _test_default_portable_heater_values(heating_system, fan_watts, heating_capacity)
|
3531
3612
|
assert_equal(fan_watts, heating_system.fan_watts)
|
3532
3613
|
if heating_capacity.nil?
|
3533
3614
|
assert(heating_system.heating_capacity > 0)
|
3534
3615
|
else
|
3535
3616
|
assert_equal(heating_system.heating_capacity, heating_capacity)
|
3536
3617
|
end
|
3537
|
-
if heating_efficiency_percent.nil?
|
3538
|
-
assert_nil(heating_system.heating_efficiency_percent)
|
3539
|
-
else
|
3540
|
-
assert_equal(heating_system.heating_efficiency_percent, heating_efficiency_percent)
|
3541
|
-
end
|
3542
3618
|
end
|
3543
3619
|
|
3544
|
-
def _test_default_fixed_heater_values(heating_system, fan_watts, heating_capacity
|
3620
|
+
def _test_default_fixed_heater_values(heating_system, fan_watts, heating_capacity)
|
3545
3621
|
assert_equal(fan_watts, heating_system.fan_watts)
|
3546
3622
|
if heating_capacity.nil?
|
3547
3623
|
assert(heating_system.heating_capacity > 0)
|
3548
3624
|
else
|
3549
3625
|
assert_equal(heating_system.heating_capacity, heating_capacity)
|
3550
3626
|
end
|
3551
|
-
if heating_efficiency_percent.nil?
|
3552
|
-
assert_nil(heating_system.heating_efficiency_percent)
|
3553
|
-
else
|
3554
|
-
assert_equal(heating_system.heating_efficiency_percent, heating_efficiency_percent)
|
3555
|
-
end
|
3556
3627
|
end
|
3557
3628
|
|
3558
|
-
def _test_default_fireplace_values(heating_system, fan_watts, heating_capacity
|
3629
|
+
def _test_default_fireplace_values(heating_system, fan_watts, heating_capacity)
|
3559
3630
|
assert_equal(fan_watts, heating_system.fan_watts)
|
3560
3631
|
if heating_capacity.nil?
|
3561
3632
|
assert(heating_system.heating_capacity > 0)
|
3562
3633
|
else
|
3563
3634
|
assert_equal(heating_system.heating_capacity, heating_capacity)
|
3564
3635
|
end
|
3565
|
-
if heating_efficiency_percent.nil?
|
3566
|
-
assert_nil(heating_system.heating_efficiency_percent)
|
3567
|
-
else
|
3568
|
-
assert_equal(heating_system.heating_efficiency_percent, heating_efficiency_percent)
|
3569
|
-
end
|
3570
3636
|
end
|
3571
3637
|
|
3572
3638
|
def _test_default_air_to_air_heat_pump_values(heat_pump, shr, compressor_type, fan_watts_per_cfm, charge_defect_ratio,
|
@@ -3631,6 +3697,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3631
3697
|
def _test_default_mini_split_heat_pump_values(heat_pump, shr, fan_watts_per_cfm, charge_defect_ratio,
|
3632
3698
|
airflow_defect_ratio, cooling_capacity, heating_capacity,
|
3633
3699
|
heating_capacity_17F, backup_heating_capacity,
|
3700
|
+
cooling_efficiency_seer, heating_efficiency_hspf,
|
3634
3701
|
backup_heating_lockout_temp)
|
3635
3702
|
assert_equal(shr, heat_pump.cooling_shr)
|
3636
3703
|
assert_equal(fan_watts_per_cfm, heat_pump.fan_watts_per_cfm)
|
@@ -3656,6 +3723,16 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3656
3723
|
else
|
3657
3724
|
assert_equal(heat_pump.backup_heating_capacity, backup_heating_capacity)
|
3658
3725
|
end
|
3726
|
+
if cooling_efficiency_seer.nil?
|
3727
|
+
assert_nil(heat_pump.cooling_efficiency_seer)
|
3728
|
+
else
|
3729
|
+
assert_equal(heat_pump.cooling_efficiency_seer, cooling_efficiency_seer)
|
3730
|
+
end
|
3731
|
+
if heating_efficiency_hspf.nil?
|
3732
|
+
assert_nil(heat_pump.heating_efficiency_hspf)
|
3733
|
+
else
|
3734
|
+
assert_equal(heat_pump.heating_efficiency_hspf, heating_efficiency_hspf)
|
3735
|
+
end
|
3659
3736
|
assert_equal(heat_pump.backup_heating_lockout_temp, backup_heating_lockout_temp)
|
3660
3737
|
end
|
3661
3738
|
|
@@ -3704,7 +3781,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3704
3781
|
end
|
3705
3782
|
|
3706
3783
|
def _test_default_duct_values(hpxml, supply_locations, return_locations, supply_areas, return_areas,
|
3707
|
-
supply_fracs, return_fracs, n_return_registers)
|
3784
|
+
supply_fracs, return_fracs, n_return_registers, supply_area_mults, return_area_mults)
|
3708
3785
|
supply_duct_idx = 0
|
3709
3786
|
return_duct_idx = 0
|
3710
3787
|
hpxml.hvac_distributions.each do |hvac_distribution|
|
@@ -3716,11 +3793,13 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3716
3793
|
assert_equal(supply_locations[supply_duct_idx], duct.duct_location)
|
3717
3794
|
assert_in_epsilon(supply_areas[supply_duct_idx], duct.duct_surface_area, 0.01)
|
3718
3795
|
assert_in_epsilon(supply_fracs[supply_duct_idx], duct.duct_fraction_area, 0.01)
|
3796
|
+
assert_in_epsilon(supply_area_mults[supply_duct_idx], duct.duct_surface_area_multiplier, 0.01)
|
3719
3797
|
supply_duct_idx += 1
|
3720
3798
|
elsif duct.duct_type == HPXML::DuctTypeReturn
|
3721
3799
|
assert_equal(return_locations[return_duct_idx], duct.duct_location)
|
3722
3800
|
assert_in_epsilon(return_areas[return_duct_idx], duct.duct_surface_area, 0.01)
|
3723
3801
|
assert_in_epsilon(return_fracs[return_duct_idx], duct.duct_fraction_area, 0.01)
|
3802
|
+
assert_in_epsilon(return_area_mults[return_duct_idx], duct.duct_surface_area_multiplier, 0.01)
|
3724
3803
|
return_duct_idx += 1
|
3725
3804
|
end
|
3726
3805
|
end
|
@@ -3728,8 +3807,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3728
3807
|
end
|
3729
3808
|
|
3730
3809
|
def _test_default_mech_vent_values(hpxml, is_shared_system, hours_in_operation, fan_power, flow_rate,
|
3731
|
-
cfis_vent_mode_airflow_fraction = nil)
|
3732
|
-
vent_fan = hpxml.ventilation_fans.select { |f| f.used_for_whole_building_ventilation }[0]
|
3810
|
+
cfis_vent_mode_airflow_fraction = nil, cfis_addtl_runtime_operating_mode = nil)
|
3811
|
+
vent_fan = hpxml.ventilation_fans.select { |f| f.used_for_whole_building_ventilation && !f.is_cfis_supplemental_fan? }[0]
|
3733
3812
|
|
3734
3813
|
assert_equal(is_shared_system, vent_fan.is_shared_system)
|
3735
3814
|
assert_equal(hours_in_operation, vent_fan.hours_in_operation)
|
@@ -3740,6 +3819,24 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3740
3819
|
else
|
3741
3820
|
assert_equal(cfis_vent_mode_airflow_fraction, vent_fan.cfis_vent_mode_airflow_fraction)
|
3742
3821
|
end
|
3822
|
+
if cfis_addtl_runtime_operating_mode.nil?
|
3823
|
+
assert_nil(vent_fan.cfis_addtl_runtime_operating_mode)
|
3824
|
+
else
|
3825
|
+
assert_equal(cfis_addtl_runtime_operating_mode, vent_fan.cfis_addtl_runtime_operating_mode)
|
3826
|
+
end
|
3827
|
+
end
|
3828
|
+
|
3829
|
+
def _test_default_mech_vent_suppl_values(hpxml, is_shared_system, hours_in_operation, fan_power, flow_rate)
|
3830
|
+
vent_fan = hpxml.ventilation_fans.select { |f| f.used_for_whole_building_ventilation && f.is_cfis_supplemental_fan? }[0]
|
3831
|
+
|
3832
|
+
assert_equal(is_shared_system, vent_fan.is_shared_system)
|
3833
|
+
if hours_in_operation.nil?
|
3834
|
+
assert_nil(hours_in_operation, vent_fan.hours_in_operation)
|
3835
|
+
else
|
3836
|
+
assert_equal(hours_in_operation, vent_fan.hours_in_operation)
|
3837
|
+
end
|
3838
|
+
assert_in_epsilon(fan_power, vent_fan.fan_power, 0.01)
|
3839
|
+
assert_in_epsilon(flow_rate, vent_fan.rated_flow_rate.to_f + vent_fan.calculated_flow_rate.to_f + vent_fan.tested_flow_rate.to_f + vent_fan.delivered_ventilation.to_f, 0.01)
|
3743
3840
|
end
|
3744
3841
|
|
3745
3842
|
def _test_default_kitchen_fan_values(hpxml, quantity, flow_rate, hours_in_operation, fan_power, start_hour)
|
@@ -3810,6 +3907,17 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3810
3907
|
end
|
3811
3908
|
end
|
3812
3909
|
|
3910
|
+
def _test_default_indirect_water_heater_values(hpxml, *expected_wh_values)
|
3911
|
+
indirect_water_heaters = hpxml.water_heating_systems.select { |w| w.water_heater_type == HPXML::WaterHeaterTypeCombiStorage }
|
3912
|
+
assert_equal(expected_wh_values.size, indirect_water_heaters.size)
|
3913
|
+
indirect_water_heaters.each_with_index do |wh_system, idx|
|
3914
|
+
standby_loss_units, standby_loss_value, = expected_wh_values[idx]
|
3915
|
+
|
3916
|
+
assert_equal(standby_loss_units, wh_system.standby_loss_units)
|
3917
|
+
assert_equal(standby_loss_value, wh_system.standby_loss_value)
|
3918
|
+
end
|
3919
|
+
end
|
3920
|
+
|
3813
3921
|
def _test_default_standard_distribution_values(hot_water_distribution, piping_length, pipe_r_value)
|
3814
3922
|
assert_in_epsilon(piping_length, hot_water_distribution.standard_piping_length, 0.01)
|
3815
3923
|
assert_equal(pipe_r_value, hot_water_distribution.pipe_r_value)
|
@@ -3851,7 +3959,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3851
3959
|
end
|
3852
3960
|
|
3853
3961
|
def _test_default_pv_system_values(hpxml, interver_efficiency, system_loss_frac, is_shared_system, location, tracking, module_type, azimuth)
|
3854
|
-
hpxml.pv_systems.
|
3962
|
+
hpxml.pv_systems.each do |pv|
|
3855
3963
|
assert_equal(is_shared_system, pv.is_shared_system)
|
3856
3964
|
assert_equal(interver_efficiency, pv.inverter_efficiency)
|
3857
3965
|
assert_in_epsilon(system_loss_frac, pv.system_losses_fraction, 0.01)
|
@@ -3863,7 +3971,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3863
3971
|
end
|
3864
3972
|
|
3865
3973
|
def _test_default_battery_values(hpxml, nominal_capacity_kwh, nominal_capacity_ah, usable_capacity_kwh, usable_capacity_ah,
|
3866
|
-
rated_power_output, location,
|
3974
|
+
rated_power_output, location, _lifetime_model, round_trip_efficiency)
|
3867
3975
|
if nominal_capacity_kwh.nil?
|
3868
3976
|
assert_nil(hpxml.batteries[0].nominal_capacity_kwh)
|
3869
3977
|
else
|
@@ -3886,11 +3994,12 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3886
3994
|
end
|
3887
3995
|
assert_equal(rated_power_output, hpxml.batteries[0].rated_power_output)
|
3888
3996
|
assert_equal(location, hpxml.batteries[0].location)
|
3889
|
-
assert_equal(
|
3997
|
+
assert_equal(nil, hpxml.batteries[0].lifetime_model)
|
3998
|
+
assert_equal(round_trip_efficiency, hpxml.batteries[0].round_trip_efficiency)
|
3890
3999
|
end
|
3891
4000
|
|
3892
4001
|
def _test_default_generator_values(hpxml, is_shared_system)
|
3893
|
-
hpxml.generators.
|
4002
|
+
hpxml.generators.each do |generator|
|
3894
4003
|
assert_equal(is_shared_system, generator.is_shared_system)
|
3895
4004
|
end
|
3896
4005
|
end
|