openstudio-standards 0.4.0 → 0.5.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/data/inventory/thermal_bridging.csv +90 -0
- data/data/standards/OpenStudio_Standards-deer-comstock.xlsx +0 -0
- data/data/standards/manage_OpenStudio_Standards.rb +1 -1
- data/data/standards/test_performance_expected_dd_results.csv +2014 -1891
- data/lib/openstudio-standards/btap/analysis.rb +8 -8
- data/lib/openstudio-standards/btap/bridging.rb +664 -645
- data/lib/openstudio-standards/btap/btap.model.rb +14 -14
- data/lib/openstudio-standards/btap/btap.rb +7 -7
- data/lib/openstudio-standards/btap/btap_result.rb +1 -1
- data/lib/openstudio-standards/btap/economics.rb +23 -23
- data/lib/openstudio-standards/btap/envelope.rb +8 -8
- data/lib/openstudio-standards/btap/equest.rb +1 -1
- data/lib/openstudio-standards/btap/geometry.rb +2 -2
- data/lib/openstudio-standards/btap/mpc.rb +7 -7
- data/lib/openstudio-standards/btap/schedules.rb +1 -1
- data/lib/openstudio-standards/btap/simmanager.rb +4 -4
- data/lib/openstudio-standards/btap/spaceloads.rb +26 -26
- data/lib/openstudio-standards/btap/utilities.rb +6 -6
- data/lib/openstudio-standards/btap/vintagizer.rb +1 -1
- data/lib/openstudio-standards/constructions/information.rb +83 -0
- data/lib/openstudio-standards/constructions/materials/modify.rb +72 -0
- data/lib/openstudio-standards/constructions/modify.rb +80 -0
- data/lib/openstudio-standards/create_typical/create_typical.rb +983 -0
- data/lib/openstudio-standards/create_typical/enumerations.rb +484 -0
- data/lib/openstudio-standards/create_typical/space_type_blend.rb +791 -0
- data/lib/openstudio-standards/create_typical/space_type_ratios.rb +494 -0
- data/lib/openstudio-standards/daylighting/space.rb +47 -0
- data/lib/openstudio-standards/geometry/create.rb +801 -0
- data/lib/openstudio-standards/geometry/create_bar.rb +2171 -0
- data/lib/openstudio-standards/geometry/information.rb +462 -0
- data/lib/openstudio-standards/geometry/modify.rb +48 -0
- data/lib/openstudio-standards/hvac/air_loop/information.rb +79 -0
- data/lib/openstudio-standards/hvac/cbecs_hvac.rb +616 -0
- data/lib/openstudio-standards/hvac/setpoint_managers/information.rb +91 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Model.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.rb +2 -2
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.hvac_systems.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +4 -36
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.hvac_systems.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +4 -36
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +3 -3
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.hvac_systems.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.elevators.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.CoilHeatingGas.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.elevators.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.College.rb +7 -7
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Courthouse.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.FullServiceRestaurant.rb +14 -14
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb +9 -9
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Hospital.rb +16 -16
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Laboratory.rb +7 -7
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterHighITE.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterLowITE.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +11 -11
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +7 -7
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOfficeDetailed.rb +9 -9
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOfficeDetailed.rb +11 -11
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MidriseApartment.rb +9 -9
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Outpatient.rb +19 -19
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.PrimarySchool.rb +10 -10
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.QuickServiceRestaurant.rb +13 -13
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStandalone.rb +6 -6
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStripmall.rb +6 -6
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SecondarySchool.rb +9 -9
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterHighITE.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterLowITE.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallHotel.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOffice.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOfficeDetailed.rb +11 -11
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperMarket.rb +10 -10
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperTallBuilding.rb +19 -19
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.TallBuilding.rb +18 -18
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Warehouse.rb +6 -6
- data/lib/openstudio-standards/prototypes/common/do_not_edit_metaclasses.rb +957 -957
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWaterToAirHeatPumpEquationFit.rb +84 -16
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingGas.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWaterToAirHeatPumpEquationFit.rb +61 -10
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.ControllerWaterCoil.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoolingTower.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanConstantVolume.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanOnOff.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanZoneExhaust.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.HeatExchangerAirToAirSensibleAndLatent.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.exterior_lights.rb +4 -4
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +4 -4
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +43 -30
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.swh.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.ServiceWaterHeating.rb +18 -11
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.SizingSystem.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +774 -117
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb +340 -481
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.refrigeration.rb +3 -3
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +3 -3
- data/lib/openstudio-standards/prototypes/common/prototype_metaprogramming.rb +22 -22
- data/lib/openstudio-standards/prototypes/deer/deer.Model.rb +1 -1
- data/lib/openstudio-standards/qaqc/calibration.rb +131 -0
- data/lib/openstudio-standards/qaqc/create_results.rb +983 -0
- data/lib/openstudio-standards/qaqc/envelope.rb +399 -0
- data/lib/openstudio-standards/qaqc/eui.rb +213 -0
- data/lib/openstudio-standards/qaqc/hvac.rb +1943 -0
- data/lib/openstudio-standards/qaqc/internal_loads.rb +568 -0
- data/lib/openstudio-standards/qaqc/reporting.rb +141 -0
- data/lib/openstudio-standards/qaqc/schedules.rb +129 -0
- data/lib/openstudio-standards/qaqc/service_water_heating.rb +273 -0
- data/lib/openstudio-standards/qaqc/weather_files.rb +497 -0
- data/lib/openstudio-standards/qaqc/zone_conditions.rb +278 -0
- data/lib/openstudio-standards/schedules/create.rb +364 -0
- data/lib/openstudio-standards/schedules/information.rb +169 -0
- data/lib/openstudio-standards/schedules/modify.rb +445 -0
- data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +110 -71
- data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctParallelPIUReheat.rb +3 -3
- data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +4 -4
- data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +2 -1
- data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +16 -10
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +4 -4
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoilDX.rb +4 -4
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +5 -5
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGas.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.Construction.rb +17 -18
- data/lib/openstudio-standards/standards/Standards.CoolingTower.rb +6 -6
- data/lib/openstudio-standards/standards/Standards.CoolingTowerSingleSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoolingTowerTwoSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoolingTowerVariableSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.Fan.rb +6 -12
- data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +2 -2
- data/lib/openstudio-standards/standards/Standards.FluidCooler.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.HeaderedPumpsVariableSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.HeatExchangerSensLat.rb +3 -3
- data/lib/openstudio-standards/standards/Standards.Model.rb +411 -261
- data/lib/openstudio-standards/standards/Standards.PlanarSurface.rb +2 -2
- data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +94 -29
- data/lib/openstudio-standards/standards/Standards.Pump.rb +2 -2
- data/lib/openstudio-standards/standards/Standards.ScheduleConstant.rb +2 -2
- data/lib/openstudio-standards/standards/Standards.ScheduleRuleset.rb +14 -14
- data/lib/openstudio-standards/standards/Standards.Space.rb +37 -30
- data/lib/openstudio-standards/standards/Standards.SpaceType.rb +38 -29
- data/lib/openstudio-standards/standards/Standards.SubSurface.rb +7 -7
- data/lib/openstudio-standards/standards/Standards.Surface.rb +13 -13
- data/lib/openstudio-standards/standards/Standards.ThermalZone.rb +109 -66
- data/lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb +11 -4
- data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PlantLoop.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.Space.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.Space.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirLoopHVAC.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Space.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirLoopHVAC.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.CoolingTowerVariableSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.rb +5 -21
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Space.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.WaterHeaterMixed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.ZoneHVACComponent.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirLoopHVAC.rb +36 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTowerVariableSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Space.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.ZoneHVACComponent.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/comstock_ashrae_90_1_2016.AirLoopHVAC.rb +26 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +53 -10
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTowerVariableSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.ZoneHVACComponent.rb +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/comstock_ashrae_90_1_2019.AirLoopHVAC.rb +26 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.curves.json +211 -211
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.economizers.json +14 -14
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirLoopHVAC.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.PlantLoop.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.economizers.json +14 -14
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirLoopHVAC.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.PlantLoop.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirLoopHVAC.rb +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.CoolingTowerVariableSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.PlantLoop.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Space.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirLoopHVAC.rb +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTowerVariableSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.PlantLoop.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Space.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirLoopHVAC.rb +22 -28
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirTerminalSingleDuctParallelPIUReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirTerminalSingleDuctVAVReheat.rb +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.BoilerHotWater.rb +1 -74
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ChillerElectricEIR.rb +7 -59
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXSingleSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXTwoSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilDX.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingDXSingleSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingGas.rb +1 -21
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.DesignSpecificationOutdoorAir.rb +101 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanConstantVolume.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanOnOff.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.HeatExchangerSensLat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Model.rb +643 -526
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlanarSurface.rb +8 -2
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlantLoop.rb +17 -77
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Space.rb +74 -16
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.SpaceType.rb +96 -44
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Surface.rb +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ThermalZone.rb +18 -6
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ZoneHVACComponent.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.rb +328 -74
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb +0 -118
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.rb +2 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.heat_rejection.json +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/baseline_outdoor_air.md +35 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/set_plug_load_measures.md +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/ashrae_90_1_prm.UserData.rb +228 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_enums.rb +131 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_space.csv +1 -1
- data/lib/openstudio-standards/standards/cbes/cbes.AirLoopHVAC.rb +5 -5
- data/lib/openstudio-standards/standards/cbes/cbes.Model.rb +1 -1
- data/lib/openstudio-standards/standards/cbes/cbes.PlantLoop.rb +1 -1
- data/lib/openstudio-standards/standards/cbes/cbes.Space.rb +1 -1
- data/lib/openstudio-standards/standards/cbes/cbes_t24_2005/cbes_t24_2005.Space.rb +1 -1
- data/lib/openstudio-standards/standards/cbes/cbes_t24_2008/cbes_t24_2008.Space.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer.AirLoopHVAC.rb +109 -27
- data/lib/openstudio-standards/standards/deer/deer.Space.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_1985/data/deer_1985.economizers.json +246 -4
- data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.economizers.json +246 -4
- data/lib/openstudio-standards/standards/deer/deer_2003/data/deer_2003.economizers.json +246 -4
- data/lib/openstudio-standards/standards/deer/deer_2003/deer_2003.ThermalZone.rb +18 -18
- data/lib/openstudio-standards/standards/deer/deer_2007/data/deer_2007.economizers.json +246 -4
- data/lib/openstudio-standards/standards/deer/deer_2007/deer_2007.ThermalZone.rb +18 -18
- data/lib/openstudio-standards/standards/deer/deer_2011/data/deer_2011.economizers.json +246 -4
- data/lib/openstudio-standards/standards/deer/deer_2011/deer_2011.ThermalZone.rb +18 -18
- data/lib/openstudio-standards/standards/deer/deer_2014/data/deer_2014.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.ThermalZone.rb +18 -18
- data/lib/openstudio-standards/standards/deer/deer_2015/data/deer_2015.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2015/deer_2015.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2015/deer_2015.ThermalZone.rb +18 -18
- data/lib/openstudio-standards/standards/deer/deer_2017/data/deer_2017.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2017/deer_2017.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2017/deer_2017.ThermalZone.rb +18 -18
- data/lib/openstudio-standards/standards/deer/deer_2020/data/deer_2020.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.AirLoopHVAC.rb +18 -5
- data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.ThermalZone.rb +18 -18
- data/lib/openstudio-standards/standards/deer/deer_2025/data/deer_2025.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.heat_pumps.json +2 -2
- data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2035/data/deer_2035.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2040/data/deer_2040.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2045/data/deer_2045.economizers.json +260 -0
- data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2050/data/deer_2050.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2055/data/deer_2055.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2060/data/deer_2060.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2065/data/deer_2065.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2070/data/deer_2070.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2075/data/deer_2075.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.AirLoopHVAC.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_pre_1975/data/deer_pre_1975.economizers.json +246 -4
- data/lib/openstudio-standards/standards/necb/BTAP1980TO2010/data/space_types.json +447 -223
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/building_envelope.rb +1 -1
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/data/space_types.json +447 -223
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_systems.rb +5 -2
- data/lib/openstudio-standards/standards/necb/ECMS/data/chiller_types.json +25 -0
- data/lib/openstudio-standards/standards/necb/ECMS/data/chillers.json +44 -0
- data/lib/openstudio-standards/standards/necb/ECMS/data/curves.json +225 -0
- data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +2 -2
- data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +193 -73
- data/lib/openstudio-standards/standards/necb/ECMS/pv_ground.rb +1 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +10 -4
- data/lib/openstudio-standards/standards/necb/NECB2011/beps_compliance_path.rb +7 -7
- data/lib/openstudio-standards/standards/necb/NECB2011/building_envelope.rb +4 -5
- data/lib/openstudio-standards/standards/necb/NECB2011/data/chiller_types.json +32 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/chillers.json +1 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/data/constants.json +36 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/fuel_type_sets.json +7 -7
- data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/NorthernEducation.osm +47587 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/NorthernHealthCare.osm +49764 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/Warehouse.osm +283 -297
- data/lib/openstudio-standards/standards/necb/NECB2011/data/space_type_unit_definitions.txt +2 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/data/space_types.json +447 -223
- data/lib/openstudio-standards/standards/necb/NECB2011/data/standards_data.rb +3 -3
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_multi_speed.rb +1 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +49 -27
- data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +400 -202
- data/lib/openstudio-standards/standards/necb/NECB2011/service_water_heating.rb +4 -4
- data/lib/openstudio-standards/standards/necb/NECB2015/data/space_types.json +637 -318
- data/lib/openstudio-standards/standards/necb/NECB2015/hvac_systems.rb +18 -1
- data/lib/openstudio-standards/standards/necb/NECB2015/necb_2015.rb +3 -3
- data/lib/openstudio-standards/standards/necb/NECB2017/data/space_types.json +637 -318
- data/lib/openstudio-standards/standards/necb/NECB2017/hvac_systems.rb +1 -1
- data/lib/openstudio-standards/standards/necb/NECB2017/necb_2017.rb +3 -3
- data/lib/openstudio-standards/standards/necb/NECB2020/building_envelope.rb +1 -1
- data/lib/openstudio-standards/standards/necb/NECB2020/data/space_types.json +615 -307
- data/lib/openstudio-standards/standards/necb/NECB2020/service_water_heating.rb +4 -4
- data/lib/openstudio-standards/standards/necb/common/btap_data.rb +10 -5
- data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +1 -1
- data/lib/openstudio-standards/utilities/assertion.rb +128 -0
- data/lib/openstudio-standards/utilities/logging.rb +2 -3
- data/lib/openstudio-standards/utilities/object_info.rb +39 -18
- data/lib/openstudio-standards/utilities/schedule_translator.rb +8 -6
- data/lib/openstudio-standards/utilities/simulation.rb +24 -11
- data/lib/openstudio-standards/utilities/sqlfile.rb +10 -5
- data/lib/openstudio-standards/version.rb +1 -1
- data/lib/openstudio-standards/weather/Weather.Model.rb +8 -9
- data/lib/openstudio-standards/weather/Weather.stat_file.rb +3 -3
- data/lib/openstudio-standards/weather/information.rb +35 -0
- data/lib/openstudio-standards.rb +69 -5
- metadata +52 -16
- data/data/standards/OpenStudio_Standards-deer-ALL-comstock(space_types).xlsx +0 -0
- data/lib/openstudio-standards/hvac_sizing/Siz.AirLoopHVAC.rb +0 -59
- data/lib/openstudio-standards/hvac_sizing/Siz.CoilCoolingWater.rb +0 -13
- data/lib/openstudio-standards/hvac_sizing/Siz.HVACComponent.rb +0 -36
- data/lib/openstudio-standards/hvac_sizing/Siz.HeatingCoolingFuels.rb +0 -898
- data/lib/openstudio-standards/hvac_sizing/Siz.Model.rb +0 -126
- data/lib/openstudio-standards/hvac_sizing/Siz.ThermalZone.rb +0 -356
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.Model.rb +0 -35
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoolingTower.rb +0 -110
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoolingTowerVariableSpeed.rb +0 -5
|
@@ -4,7 +4,7 @@ class Standard
|
|
|
4
4
|
# Sets the fan power of a PIU fan based on the W/cfm specified in the standard.
|
|
5
5
|
#
|
|
6
6
|
# @param air_terminal_single_duct_parallel_piu_reheat [OpenStudio::Model::AirTerminalSingleDuctParallelPIUReheat] air terminal object
|
|
7
|
-
# @return [
|
|
7
|
+
# @return [Boolean] returns true if successful, false if not
|
|
8
8
|
def air_terminal_single_duct_parallel_piu_reheat_apply_prm_baseline_fan_power(air_terminal_single_duct_parallel_piu_reheat)
|
|
9
9
|
OpenStudio.logFree(OpenStudio::Debug, 'openstudio.standards.AirTerminalSingleDuctParallelPIUReheat', "Setting PIU fan power for #{air_terminal_single_duct_parallel_piu_reheat.name}.")
|
|
10
10
|
|
|
@@ -72,7 +72,7 @@ class Standard
|
|
|
72
72
|
# means that the secondary fan will be on when the primary air
|
|
73
73
|
# flow is at the minimum flow fraction.
|
|
74
74
|
#
|
|
75
|
-
# @return [
|
|
75
|
+
# @return [Double] returns nil or a float representing the fraction
|
|
76
76
|
def air_terminal_single_duct_parallel_piu_reheat_fan_on_flow_fraction
|
|
77
77
|
return nil
|
|
78
78
|
end
|
|
@@ -90,7 +90,7 @@ class Standard
|
|
|
90
90
|
#
|
|
91
91
|
# @param air_terminal_single_duct_parallel_piu_reheat [OpenStudio::Model::AirTerminalSingleDuctParallelPIUReheat] the air terminal object
|
|
92
92
|
# @param zone_min_oa [Double] the zone outdoor air flow rate, in m^3/s.
|
|
93
|
-
# @return [
|
|
93
|
+
# @return [Boolean] returns true if successful, false if not
|
|
94
94
|
def air_terminal_single_duct_parallel_piu_reheat_apply_minimum_primary_airflow_fraction(air_terminal_single_duct_parallel_piu_reheat, zone_min_oa = nil)
|
|
95
95
|
# Minimum primary air flow
|
|
96
96
|
min_primary_airflow_frac = air_terminal_single_duct_parallel_reheat_piu_minimum_primary_airflow_fraction(air_terminal_single_duct_parallel_piu_reheat)
|
|
@@ -9,9 +9,9 @@ class Standard
|
|
|
9
9
|
# @param zone_min_oa [Double] the zone outdoor air flow rate, in m^3/s.
|
|
10
10
|
# If supplied, this will be set as a minimum limit in addition to the minimum
|
|
11
11
|
# damper position. EnergyPlus will use the larger of the two values during sizing.
|
|
12
|
-
# @param has_ddc [
|
|
12
|
+
# @param has_ddc [Boolean] whether or not there is DDC control of the VAV terminal,
|
|
13
13
|
# which impacts the minimum damper position requirement.
|
|
14
|
-
# @return [
|
|
14
|
+
# @return [Boolean] returns true if successful, false if not
|
|
15
15
|
# @todo remove exception where older vintages don't have minimum positions adjusted.
|
|
16
16
|
def air_terminal_single_duct_vav_reheat_apply_minimum_damper_position(air_terminal_single_duct_vav_reheat, zone_min_oa = nil, has_ddc = true)
|
|
17
17
|
# Minimum damper position
|
|
@@ -34,7 +34,7 @@ class Standard
|
|
|
34
34
|
# Defaults to 30%
|
|
35
35
|
#
|
|
36
36
|
# @param air_terminal_single_duct_vav_reheat [OpenStudio::Model::AirTerminalSingleDuctVAVReheat] the air terminal object
|
|
37
|
-
# @param has_ddc [
|
|
37
|
+
# @param has_ddc [Boolean] whether or not there is DDC control of the VAV terminal in question
|
|
38
38
|
# @return [Double] minimum damper position
|
|
39
39
|
def air_terminal_single_duct_vav_reheat_minimum_damper_position(air_terminal_single_duct_vav_reheat, has_ddc = false)
|
|
40
40
|
min_damper_position = 0.3
|
|
@@ -44,7 +44,7 @@ class Standard
|
|
|
44
44
|
# Sets the capacity of the reheat coil based on the minimum flow fraction, and the maximum flow rate.
|
|
45
45
|
#
|
|
46
46
|
# @param air_terminal_single_duct_vav_reheat [OpenStudio::Model::AirTerminalSingleDuctVAVReheat] the air terminal object
|
|
47
|
-
# @return [
|
|
47
|
+
# @return [Boolean] returns true if successful, false if not
|
|
48
48
|
def air_terminal_single_duct_vav_reheat_set_heating_cap(air_terminal_single_duct_vav_reheat)
|
|
49
49
|
flow_rate_fraction = 0.0
|
|
50
50
|
if air_terminal_single_duct_vav_reheat.constantMinimumAirFlowFraction.is_initialized
|
|
@@ -74,6 +74,7 @@ class Standard
|
|
|
74
74
|
# Finds lookup object in standards and return minimum thermal efficiency
|
|
75
75
|
#
|
|
76
76
|
# @param boiler_hot_water [OpenStudio::Model::BoilerHotWater] hot water boiler object
|
|
77
|
+
# @param rename [Boolean] if true, rename the boiler to include the new capacity and efficiency
|
|
77
78
|
# @return [Double] minimum thermal efficiency
|
|
78
79
|
def boiler_hot_water_standard_minimum_thermal_efficiency(boiler_hot_water, rename = false)
|
|
79
80
|
# Get the boiler properties
|
|
@@ -130,7 +131,7 @@ class Standard
|
|
|
130
131
|
# Applies the standard efficiency ratings and typical performance curves to this object.
|
|
131
132
|
#
|
|
132
133
|
# @param boiler_hot_water [OpenStudio::Model::BoilerHotWater] hot water boiler object
|
|
133
|
-
# @return [
|
|
134
|
+
# @return [Boolean] returns true if successful, false if not
|
|
134
135
|
def boiler_hot_water_apply_efficiency_and_curves(boiler_hot_water)
|
|
135
136
|
successfully_set_all_properties = false
|
|
136
137
|
|
|
@@ -4,7 +4,7 @@ class Standard
|
|
|
4
4
|
# Finds the search criteria
|
|
5
5
|
#
|
|
6
6
|
# @param chiller_electric_eir [OpenStudio::Model::ChillerElectricEIR] chiller object
|
|
7
|
-
# @return [
|
|
7
|
+
# @return [Hash] has for search criteria to be used for find object
|
|
8
8
|
def chiller_electric_eir_find_search_criteria(chiller_electric_eir)
|
|
9
9
|
search_criteria = {}
|
|
10
10
|
search_criteria['template'] = template
|
|
@@ -36,14 +36,20 @@ class Standard
|
|
|
36
36
|
condenser_type = 'WithCondenser' if absorption_type.nil?
|
|
37
37
|
end
|
|
38
38
|
elsif cooling_type == 'WaterCooled'
|
|
39
|
-
if
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
# use the chiller additional properties compressor type if defined
|
|
40
|
+
if chiller_electric_eir.additionalProperties.hasFeature('compressor_type')
|
|
41
|
+
compressor_type = chiller_electric_eir.additionalProperties.getFeatureAsString('compressor_type').get
|
|
42
|
+
else
|
|
43
|
+
# try to lookup by chiller name
|
|
44
|
+
if name.include?('Reciprocating')
|
|
45
|
+
compressor_type = 'Reciprocating'
|
|
46
|
+
elsif name.include?('Rotary Screw')
|
|
47
|
+
compressor_type = 'Rotary Screw'
|
|
48
|
+
elsif name.include?('Scroll')
|
|
49
|
+
compressor_type = 'Scroll'
|
|
50
|
+
elsif name.include?('Centrifugal')
|
|
51
|
+
compressor_type = 'Centrifugal'
|
|
52
|
+
end
|
|
47
53
|
end
|
|
48
54
|
end
|
|
49
55
|
unless condenser_type.nil?
|
|
@@ -102,7 +108,7 @@ class Standard
|
|
|
102
108
|
#
|
|
103
109
|
# @param chiller_electric_eir [OpenStudio::Model::ChillerElectricEIR] chiller object
|
|
104
110
|
# @param clg_tower_objs [Array] cooling towers, currently unused
|
|
105
|
-
# @return [
|
|
111
|
+
# @return [Boolean] returns true if successful, false if not
|
|
106
112
|
# @todo remove clg_tower_objs parameter if unused
|
|
107
113
|
def chiller_electric_eir_apply_efficiency_and_curves(chiller_electric_eir, clg_tower_objs)
|
|
108
114
|
chillers = standards_data['chillers']
|
|
@@ -6,7 +6,7 @@ class Standard
|
|
|
6
6
|
# Finds capacity in W
|
|
7
7
|
#
|
|
8
8
|
# @param coil_cooling_dx_single_speed [OpenStudio::Model::CoilCoolingDXSingleSpeed] coil cooling dx single speed object
|
|
9
|
-
# @param necb_ref_hp [
|
|
9
|
+
# @param necb_ref_hp [Boolean] for compatability with NECB ruleset only.
|
|
10
10
|
# @return [Double] capacity in W to be used for find object
|
|
11
11
|
def coil_cooling_dx_single_speed_find_capacity(coil_cooling_dx_single_speed, necb_ref_hp = false)
|
|
12
12
|
capacity_w = nil
|
|
@@ -42,8 +42,8 @@ class Standard
|
|
|
42
42
|
# Finds lookup object in standards and return efficiency
|
|
43
43
|
#
|
|
44
44
|
# @param coil_cooling_dx_single_speed [OpenStudio::Model::CoilCoolingDXSingleSpeed] coil cooling dx single speed object
|
|
45
|
-
# @param rename [
|
|
46
|
-
# @param necb_ref_hp [
|
|
45
|
+
# @param rename [Boolean] if true, object will be renamed to include capacity and efficiency level
|
|
46
|
+
# @param necb_ref_hp [Boolean] for compatability with NECB ruleset only.
|
|
47
47
|
# @return [Double] full load efficiency (COP)
|
|
48
48
|
def coil_cooling_dx_single_speed_standard_minimum_cop(coil_cooling_dx_single_speed, rename = false, necb_ref_hp = false)
|
|
49
49
|
search_criteria = coil_dx_find_search_criteria(coil_cooling_dx_single_speed, necb_ref_hp)
|
|
@@ -173,7 +173,7 @@ class Standard
|
|
|
173
173
|
#
|
|
174
174
|
# @param coil_cooling_dx_single_speed [OpenStudio::Model::CoilCoolingDXSingleSpeed] coil cooling dx single speed object
|
|
175
175
|
# @param sql_db_vars_map [Hash] hash map
|
|
176
|
-
# @param necb_ref_hp [
|
|
176
|
+
# @param necb_ref_hp [Boolean] for compatability with NECB ruleset only.
|
|
177
177
|
# @return [Hash] hash of coil objects
|
|
178
178
|
def coil_cooling_dx_single_speed_apply_efficiency_and_curves(coil_cooling_dx_single_speed, sql_db_vars_map, necb_ref_hp = false)
|
|
179
179
|
successfully_set_all_properties = true
|
|
@@ -24,7 +24,7 @@ class Standard
|
|
|
24
24
|
# Finds lookup object in standards and return efficiency
|
|
25
25
|
#
|
|
26
26
|
# @param coil_cooling_dx_two_speed [OpenStudio::Model::CoilCoolingDXTwoSpeed] coil cooling dx two speed object
|
|
27
|
-
# @param rename [
|
|
27
|
+
# @param rename [Boolean] if true, object will be renamed to include capacity and efficiency level
|
|
28
28
|
# @return [Double] full load efficiency (COP)
|
|
29
29
|
def coil_cooling_dx_two_speed_standard_minimum_cop(coil_cooling_dx_two_speed, rename = false)
|
|
30
30
|
search_criteria = coil_dx_find_search_criteria(coil_cooling_dx_two_speed)
|
data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb
CHANGED
|
@@ -22,7 +22,7 @@ class Standard
|
|
|
22
22
|
# Finds lookup object in standards and return efficiency
|
|
23
23
|
#
|
|
24
24
|
# @param coil_cooling_water_to_air_heat_pump [OpenStudio::Model::CoilCoolingWaterToAirHeatPumpEquationFit] coil cooling object
|
|
25
|
-
# @param rename [
|
|
25
|
+
# @param rename [Boolean] if true, object will be renamed to include capacity and efficiency level
|
|
26
26
|
# @return [Double] full load efficiency (COP)
|
|
27
27
|
def coil_cooling_water_to_air_heat_pump_standard_minimum_cop(coil_cooling_water_to_air_heat_pump, rename = false, computer_room_air_conditioner = false)
|
|
28
28
|
search_criteria = {}
|
|
@@ -48,7 +48,7 @@ module CoilDX
|
|
|
48
48
|
#
|
|
49
49
|
# @param coil_dx [OpenStudio::Model::StraightComponent] coil cooling object, allowable types:
|
|
50
50
|
# CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed
|
|
51
|
-
# @return [
|
|
51
|
+
# @return [Boolean] returns true if it is a heat pump, false if not
|
|
52
52
|
def coil_dx_heat_pump?(coil_dx)
|
|
53
53
|
heat_pump = false
|
|
54
54
|
|
|
@@ -84,7 +84,7 @@ module CoilDX
|
|
|
84
84
|
#
|
|
85
85
|
# @param coil_dx [OpenStudio::Model::StraightComponent] coil cooling object, allowable types:
|
|
86
86
|
# CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed
|
|
87
|
-
# @param necb_ref_hp [
|
|
87
|
+
# @param necb_ref_hp [Boolean] for compatability with NECB ruleset only.
|
|
88
88
|
# @return [String] the heating type
|
|
89
89
|
def coil_dx_heating_type(coil_dx, necb_ref_hp = false)
|
|
90
90
|
htg_type = nil
|
|
@@ -160,8 +160,8 @@ module CoilDX
|
|
|
160
160
|
#
|
|
161
161
|
# @param coil_dx [OpenStudio::Model::StraightComponent] coil cooling object, allowable types:
|
|
162
162
|
# CoilCoolingDXSingleSpeed, CoilCoolingDXTwoSpeed, CoilCoolingDXMultiSpeed
|
|
163
|
-
# @param necb_ref_hp [
|
|
164
|
-
# @return [
|
|
163
|
+
# @param necb_ref_hp [Boolean] for compatability with NECB ruleset only.
|
|
164
|
+
# @return [Hash] has for search criteria to be used for find object
|
|
165
165
|
def coil_dx_find_search_criteria(coil_dx, necb_ref_hp = false)
|
|
166
166
|
search_criteria = {}
|
|
167
167
|
search_criteria['template'] = template
|
|
@@ -4,7 +4,7 @@ class Standard
|
|
|
4
4
|
# Applies the standard efficiency ratings and typical performance curves to this object.
|
|
5
5
|
#
|
|
6
6
|
# @param coil_heating_dx_multi_speed [OpenStudio::Model::CoilHeatingDXMultiSpeed] coil heating dx multi speed object
|
|
7
|
-
# @return [
|
|
7
|
+
# @return [Boolean] returns true if successful, false if not
|
|
8
8
|
def coil_heating_dx_multi_speed_apply_efficiency_and_curves(coil_heating_dx_multi_speed, sql_db_vars_map)
|
|
9
9
|
successfully_set_all_properties = true
|
|
10
10
|
|
|
@@ -6,7 +6,7 @@ class Standard
|
|
|
6
6
|
# Finds capacity in W. This is the cooling capacity of the paired DX cooling coil.
|
|
7
7
|
#
|
|
8
8
|
# @param coil_heating_dx_single_speed [OpenStudio::Model::CoilHeatingDXSingleSpeed] coil heating dx single speed object
|
|
9
|
-
# @param necb_ref_hp [
|
|
9
|
+
# @param necb_ref_hp [Boolean] for compatability with NECB ruleset only.
|
|
10
10
|
# @return [Double] capacity in W to be used for find object
|
|
11
11
|
def coil_heating_dx_single_speed_find_capacity(coil_heating_dx_single_speed, necb_ref_hp = false)
|
|
12
12
|
capacity_w = nil
|
|
@@ -104,8 +104,8 @@ class Standard
|
|
|
104
104
|
# Finds lookup object in standards and return efficiency
|
|
105
105
|
#
|
|
106
106
|
# @param coil_heating_dx_single_speed [OpenStudio::Model::CoilHeatingDXSingleSpeed] coil heating dx single speed object
|
|
107
|
-
# @param rename [
|
|
108
|
-
# @param necb_ref_hp [
|
|
107
|
+
# @param rename [Boolean] if true, object will be renamed to include capacity and efficiency level
|
|
108
|
+
# @param necb_ref_hp [Boolean] for compatability with NECB ruleset only.
|
|
109
109
|
# @return [Double] full load efficiency (COP)
|
|
110
110
|
def coil_heating_dx_single_speed_standard_minimum_cop(coil_heating_dx_single_speed, rename = false, necb_ref_hp = false)
|
|
111
111
|
# find ac properties
|
|
@@ -129,7 +129,7 @@ class Standard
|
|
|
129
129
|
end
|
|
130
130
|
|
|
131
131
|
# If PTHP, use equations
|
|
132
|
-
if sub_category == 'PTHP'
|
|
132
|
+
if sub_category == 'PTHP' && !ac_props['pthp_cop_coefficient_1'].nil? && !ac_props['pthp_cop_coefficient_2'].nil?
|
|
133
133
|
pthp_cop_coeff_1 = ac_props['pthp_cop_coefficient_1']
|
|
134
134
|
pthp_cop_coeff_2 = ac_props['pthp_cop_coefficient_2']
|
|
135
135
|
# TABLE 6.8.1D
|
|
@@ -181,7 +181,7 @@ class Standard
|
|
|
181
181
|
#
|
|
182
182
|
# @param coil_heating_dx_single_speed [OpenStudio::Model::CoilHeatingDXSingleSpeed] coil heating dx single speed object
|
|
183
183
|
# @param sql_db_vars_map [Hash] hash map
|
|
184
|
-
# @param necb_ref_hp [
|
|
184
|
+
# @param necb_ref_hp [Boolean] for compatability with NECB ruleset only.
|
|
185
185
|
# @return [Hash] hash of coil objects
|
|
186
186
|
def coil_heating_dx_single_speed_apply_efficiency_and_curves(coil_heating_dx_single_speed, sql_db_vars_map, necb_ref_hp = false)
|
|
187
187
|
successfully_set_all_properties = true
|
|
@@ -4,7 +4,7 @@ class Standard
|
|
|
4
4
|
# Applies the standard efficiency ratings to CoilHeatingGas.
|
|
5
5
|
#
|
|
6
6
|
# @param coil_heating_gas [OpenStudio::Model::CoilHeatingGas] coil heating gas object
|
|
7
|
-
# @return [
|
|
7
|
+
# @return [Boolean] returns true if successful, false if not
|
|
8
8
|
def coil_heating_gas_apply_efficiency_and_curves(coil_heating_gas)
|
|
9
9
|
successfully_set_all_properties = false
|
|
10
10
|
# Initialize search criteria
|
|
@@ -19,7 +19,7 @@ class Standard
|
|
|
19
19
|
# Applies the standard efficiency ratings and typical performance curves to this object.
|
|
20
20
|
#
|
|
21
21
|
# @param coil_heating_gas_multi_stage [OpenStudio::Model::CoilHeatingGasMultiStage] coil heating gas multi stage object
|
|
22
|
-
# @return [
|
|
22
|
+
# @return [Boolean] returns true if successful, false if not
|
|
23
23
|
def coil_heating_gas_multi_stage_apply_efficiency_and_curves(coil_heating_gas_multi_stage)
|
|
24
24
|
successfully_set_all_properties = true
|
|
25
25
|
|
data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb
CHANGED
|
@@ -88,7 +88,7 @@ class Standard
|
|
|
88
88
|
# Finds lookup object in standards and return efficiency
|
|
89
89
|
#
|
|
90
90
|
# @param coil_heating_water_to_air_heat_pump [OpenStudio::Model::CoilHeatingWaterToAirHeatPumpEquationFit] coil heating object
|
|
91
|
-
# @param rename [
|
|
91
|
+
# @param rename [Boolean] if true, object will be renamed to include capacity and efficiency level
|
|
92
92
|
# @return [Double] full load efficiency (COP)
|
|
93
93
|
def coil_heating_water_to_air_heat_pump_standard_minimum_cop(coil_heating_water_to_air_heat_pump, rename = false)
|
|
94
94
|
search_criteria = {}
|
|
@@ -12,11 +12,11 @@ class Standard
|
|
|
12
12
|
# 'ExteriorRoof', 'Skylight', 'TubularDaylightDome', 'TubularDaylightDiffuser', 'ExteriorFloor',
|
|
13
13
|
# 'ExteriorWall', 'ExteriorWindow', 'ExteriorDoor', 'GlassDoor', 'OverheadDoor', 'GroundContactFloor',
|
|
14
14
|
# 'GroundContactWall', 'GroundContactRoof'
|
|
15
|
-
# @param target_includes_int_film_coefficients [
|
|
15
|
+
# @param target_includes_int_film_coefficients [Boolean] if true, subtracts off standard film interior coefficients from your
|
|
16
16
|
# target_u_value before modifying insulation thickness. Film values from 90.1-2010 A9.4.1 Air Films
|
|
17
|
-
# @param target_includes_ext_film_coefficients [
|
|
17
|
+
# @param target_includes_ext_film_coefficients [Boolean] if true, subtracts off standard exterior film coefficients from your
|
|
18
18
|
# target_u_value before modifying insulation thickness. Film values from 90.1-2010 A9.4.1 Air Films
|
|
19
|
-
# @return [
|
|
19
|
+
# @return [Boolean] returns true if successful, false if not
|
|
20
20
|
# @todo Put in Phlyroy's logic for inferring the insulation layer of a construction
|
|
21
21
|
def construction_set_u_value(construction, target_u_value_ip, insulation_layer_name = nil, intended_surface_type = 'ExteriorWall', target_includes_int_film_coefficients, target_includes_ext_film_coefficients)
|
|
22
22
|
OpenStudio.logFree(OpenStudio::Debug, 'openstudio.standards.Construction', "Setting U-Value for #{construction.name}.")
|
|
@@ -134,11 +134,11 @@ class Standard
|
|
|
134
134
|
# 'ExteriorRoof', 'Skylight', 'TubularDaylightDome', 'TubularDaylightDiffuser', 'ExteriorFloor',
|
|
135
135
|
# 'ExteriorWall', 'ExteriorWindow', 'ExteriorDoor', 'GlassDoor', 'OverheadDoor', 'GroundContactFloor',
|
|
136
136
|
# 'GroundContactWall', 'GroundContactRoof'
|
|
137
|
-
# @param target_includes_int_film_coefficients [
|
|
137
|
+
# @param target_includes_int_film_coefficients [Boolean] if true, subtracts off standard film interior coefficients from your
|
|
138
138
|
# target_u_value before modifying insulation thickness. Film values from 90.1-2010 A9.4.1 Air Films
|
|
139
|
-
# @param target_includes_ext_film_coefficients [
|
|
139
|
+
# @param target_includes_ext_film_coefficients [Boolean] if true, subtracts off standard exterior film coefficients from your
|
|
140
140
|
# target_u_value before modifying insulation thickness. Film values from 90.1-2010 A9.4.1 Air Films
|
|
141
|
-
# @return [
|
|
141
|
+
# @return [Boolean] returns true if successful, false if not
|
|
142
142
|
def construction_set_glazing_u_value(construction, target_u_value_ip, intended_surface_type = 'ExteriorWall', target_includes_int_film_coefficients, target_includes_ext_film_coefficients)
|
|
143
143
|
OpenStudio.logFree(OpenStudio::Debug, 'openstudio.standards.Construction', "Setting U-Value for #{construction.name}.")
|
|
144
144
|
|
|
@@ -219,7 +219,7 @@ class Standard
|
|
|
219
219
|
#
|
|
220
220
|
# @param construction [OpenStudio::Model::Construction] construction object
|
|
221
221
|
# @param target_shgc [Double] Solar Heat Gain Coefficient
|
|
222
|
-
# @return [
|
|
222
|
+
# @return [Boolean] returns true if successful, false if not
|
|
223
223
|
def construction_set_glazing_shgc(construction, target_shgc)
|
|
224
224
|
OpenStudio.logFree(OpenStudio::Debug, 'openstudio.standards.Construction', "Setting SHGC for #{construction.name}.")
|
|
225
225
|
|
|
@@ -244,7 +244,7 @@ class Standard
|
|
|
244
244
|
# as indicated by having a single layer of type SimpleGlazing.
|
|
245
245
|
#
|
|
246
246
|
# @param construction [OpenStudio::Model::Construction] construction object
|
|
247
|
-
# @return [
|
|
247
|
+
# @return [Boolean] returns true if it is a simple glazing, false if not
|
|
248
248
|
def construction_simple_glazing?(construction)
|
|
249
249
|
# Not simple if more than 1 layer
|
|
250
250
|
if construction.layers.length > 1
|
|
@@ -269,7 +269,7 @@ class Standard
|
|
|
269
269
|
# @param construction [OpenStudio::Model::Construction] construction object
|
|
270
270
|
# @param target_f_factor_ip [Double] F-Factor
|
|
271
271
|
# @param insulation_layer_name [String] The name of the insulation layer in this construction
|
|
272
|
-
# @return [
|
|
272
|
+
# @return [Boolean] returns true if successful, false if not
|
|
273
273
|
def construction_set_slab_f_factor(construction, target_f_factor_ip, insulation_layer_name = nil)
|
|
274
274
|
# Regression from table A6.3 unheated, fully insulated slab
|
|
275
275
|
r_value_ip = 1.0248 * target_f_factor_ip**-2.186
|
|
@@ -289,7 +289,7 @@ class Standard
|
|
|
289
289
|
# @param construction [OpenStudio::Model::FFactorGroundFloorConstruction] OpenStudio F-factor construction object
|
|
290
290
|
# @param target_f_factor_ip [Float] Targeted F-Factor in IP units
|
|
291
291
|
# @param surface [OpenStudio::Model::Surface] OpenStudio surface object
|
|
292
|
-
# @return [
|
|
292
|
+
# @return [Boolean] returns true if successful, false if not
|
|
293
293
|
def construction_set_surface_slab_f_factor(construction, target_f_factor_ip, surface)
|
|
294
294
|
# Get space associated with surface
|
|
295
295
|
space = surface.space.get
|
|
@@ -325,7 +325,7 @@ class Standard
|
|
|
325
325
|
# @param construction [OpenStudio::Model::Construction] construction object
|
|
326
326
|
# @param target_c_factor_ip [Double] C-Factor
|
|
327
327
|
# @param insulation_layer_name [String] The name of the insulation layer in this construction
|
|
328
|
-
# @return [
|
|
328
|
+
# @return [Boolean] returns true if successful, false if not
|
|
329
329
|
def construction_set_underground_wall_c_factor(construction, target_c_factor_ip, insulation_layer_name = nil)
|
|
330
330
|
# Regression from table A4.2 continuous exterior insulation
|
|
331
331
|
r_value_ip = 0.775 * target_c_factor_ip**-1.067
|
|
@@ -345,7 +345,7 @@ class Standard
|
|
|
345
345
|
# @param construction [OpenStudio::Model::CFactorUndergroundWallConstruction] OpenStudio C-factor construction object
|
|
346
346
|
# @param target_c_factor_ip [Float] Targeted C-Factor in IP units
|
|
347
347
|
# @param surface [OpenStudio::Model::Surface] OpenStudio surface object
|
|
348
|
-
# @return [
|
|
348
|
+
# @return [Boolean] returns true if successful, false if not
|
|
349
349
|
def construction_set_surface_underground_wall_c_factor(construction, target_c_factor_ip, surface)
|
|
350
350
|
# Get space associated with surface
|
|
351
351
|
space = surface.space.get
|
|
@@ -529,8 +529,7 @@ class Standard
|
|
|
529
529
|
# Calculate the fenestration U-Factor base on the glass, frame,
|
|
530
530
|
# and divider performance and area calculated by EnergyPlus.
|
|
531
531
|
#
|
|
532
|
-
# @param [OpenStudio:Model:Construction] OpenStudio Construction object
|
|
533
|
-
#
|
|
532
|
+
# @param construction [OpenStudio:Model:Construction] OpenStudio Construction object
|
|
534
533
|
# @return [Double] the U-Factor in W/m^2*K
|
|
535
534
|
def construction_calculated_fenestration_u_factor_w_frame(construction)
|
|
536
535
|
construction_name = construction.name.get.to_s
|
|
@@ -684,7 +683,7 @@ class Standard
|
|
|
684
683
|
#
|
|
685
684
|
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
|
686
685
|
# @param values [Hash] has of values
|
|
687
|
-
# @param is_percentage [
|
|
686
|
+
# @param is_percentage [Boolean] toggle is percentage
|
|
688
687
|
# @return [Hash] json information
|
|
689
688
|
def change_construction_properties_in_model(model, values, is_percentage = false)
|
|
690
689
|
# puts JSON.pretty_generate(values)
|
|
@@ -746,8 +745,8 @@ class Standard
|
|
|
746
745
|
# @param conductance [Double] conductance value in SI
|
|
747
746
|
# @param shgc [Double] solar heat gain coefficient value, unitless
|
|
748
747
|
# @param tvis [Double] visible transmittance
|
|
749
|
-
# @param is_percentage [
|
|
750
|
-
# @return [
|
|
748
|
+
# @param is_percentage [Boolean] toggle is percentage
|
|
749
|
+
# @return [Boolean] returns true if successful, false if not
|
|
751
750
|
def apply_changes_to_surface_construction(model, surface, conductance = nil, shgc = nil, tvis = nil, is_percentage = false)
|
|
752
751
|
# If user has no changes...do nothing and return true.
|
|
753
752
|
return true if conductance.nil? && shgc.nil? && tvis.nil?
|
|
@@ -877,7 +876,7 @@ class Standard
|
|
|
877
876
|
#
|
|
878
877
|
# @param construction [OpenStudio::Model::Construction] construction object
|
|
879
878
|
# @param target_tvis [Double] Visible Transmittance
|
|
880
|
-
# @return [
|
|
879
|
+
# @return [Boolean] returns true if successful, false if not
|
|
881
880
|
def construction_set_glazing_tvis(construction, target_tvis)
|
|
882
881
|
if target_tvis >= 1.0
|
|
883
882
|
OpenStudio.logFree(OpenStudio::Error, 'openstudio.standards.Construction', "Can only set the Tvis can only be set to less than 1.0. #{target_tvis} is greater than 1.0")
|
|
@@ -18,7 +18,7 @@ module CoolingTower
|
|
|
18
18
|
#
|
|
19
19
|
# @param cooling_tower [OpenStudio::Model::StraightComponent] cooling tower object, allowable types:
|
|
20
20
|
# CoolingTowerSingleSpeed, CoolingTowerTwoSpeed, and CoolingTowerVariableSpeed
|
|
21
|
-
# @return [
|
|
21
|
+
# @return [Boolean] returns true if successful, false if not
|
|
22
22
|
def cooling_tower_apply_minimum_power_per_flow(cooling_tower)
|
|
23
23
|
# Get the design water flow rate
|
|
24
24
|
design_water_flow_m3_per_s = nil
|
|
@@ -51,11 +51,11 @@ module CoolingTower
|
|
|
51
51
|
fan_type = nil
|
|
52
52
|
if name.include?('Centrifugal')
|
|
53
53
|
fan_type = 'Centrifugal'
|
|
54
|
-
elsif name.include?('Propeller
|
|
54
|
+
elsif name.include?('Propeller') || name.include?('Axial')
|
|
55
55
|
fan_type = 'Propeller or Axial'
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
else
|
|
57
|
+
fan_type = 'Propeller or Axial'
|
|
58
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoolingTower', "#{cooling_tower.name} fan type is not discernible from the name. Defaulting to Propeller or Axial.")
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
# Limit on Centrifugal Fan
|
|
@@ -65,13 +65,13 @@ module CoolingTower
|
|
|
65
65
|
if gpm_limit
|
|
66
66
|
if design_water_flow_gpm >= gpm_limit
|
|
67
67
|
fan_type = 'Propeller or Axial'
|
|
68
|
-
search_criteria['fan_type'] = fan_type
|
|
69
68
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoolingTower', "For #{cooling_tower.name}, the design flow rate of #{design_water_flow_gpm.round} gpm is higher than the limit of #{gpm_limit.round} gpm for open centrifugal towers. This tower must meet the minimum performance of #{fan_type} instead.")
|
|
70
69
|
end
|
|
71
70
|
end
|
|
72
71
|
end
|
|
73
72
|
|
|
74
73
|
# Get the cooling tower properties
|
|
74
|
+
search_criteria['fan_type'] = fan_type
|
|
75
75
|
ct_props = model_find_object(heat_rejection, search_criteria)
|
|
76
76
|
unless ct_props
|
|
77
77
|
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoolingTower', "For #{cooling_tower.name}, cannot find heat rejection properties, cannot apply standard efficiencies or curves.")
|
|
@@ -6,7 +6,7 @@ class Standard
|
|
|
6
6
|
# Applies the standard efficiency ratings and typical performance curves to this object.
|
|
7
7
|
#
|
|
8
8
|
# @param cooling_tower_single_speed [OpenStudio::Model::CoolingTowerSingleSpeed] single speed cooling tower
|
|
9
|
-
# @return [
|
|
9
|
+
# @return [Boolean] returns true if successful, false if not
|
|
10
10
|
def cooling_tower_single_speed_apply_efficiency_and_curves(cooling_tower_single_speed)
|
|
11
11
|
cooling_tower_apply_minimum_power_per_flow(cooling_tower_single_speed)
|
|
12
12
|
return true
|
|
@@ -6,7 +6,7 @@ class Standard
|
|
|
6
6
|
# Applies the standard efficiency ratings and typical performance curves to this object.
|
|
7
7
|
#
|
|
8
8
|
# @param cooling_tower_two_speed [OpenStudio::Model::CoolingTowerTwoSpeed] two speed cooling tower
|
|
9
|
-
# @return [
|
|
9
|
+
# @return [Boolean] returns true if successful, false if not
|
|
10
10
|
def cooling_tower_two_speed_apply_efficiency_and_curves(cooling_tower_two_speed)
|
|
11
11
|
cooling_tower_apply_minimum_power_per_flow(cooling_tower_two_speed)
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@ class Standard
|
|
|
6
6
|
# Applies the standard efficiency ratings and typical performance curves to this object.
|
|
7
7
|
#
|
|
8
8
|
# @param cooling_tower_variable_speed [OpenStudio::Model::CoolingTowerVariableSpeed] variable speed cooling tower
|
|
9
|
-
# @return [
|
|
9
|
+
# @return [Boolean] returns true if successful, false if not
|
|
10
10
|
def cooling_tower_variable_speed_apply_efficiency_and_curves(cooling_tower_variable_speed)
|
|
11
11
|
cooling_tower_apply_minimum_power_per_flow(cooling_tower_variable_speed)
|
|
12
12
|
return true
|
|
@@ -8,7 +8,7 @@ module Fan
|
|
|
8
8
|
# @param fan [OpenStudio::Model::StraightComponent] fan object, allowable types:
|
|
9
9
|
# FanConstantVolume, FanOnOff, FanVariableVolume, and FanZoneExhaust
|
|
10
10
|
# @param allowed_bhp [Double] allowable brake horsepower
|
|
11
|
-
# @return [
|
|
11
|
+
# @return [Boolean] returns true if successful, false if not
|
|
12
12
|
def fan_apply_standard_minimum_motor_efficiency(fan, allowed_bhp)
|
|
13
13
|
# Find the motor efficiency
|
|
14
14
|
motor_eff, nominal_hp = fan_standard_minimum_motor_efficiency_and_size(fan, allowed_bhp)
|
|
@@ -39,7 +39,7 @@ module Fan
|
|
|
39
39
|
# @param fan [OpenStudio::Model::StraightComponent] fan object, allowable types:
|
|
40
40
|
# FanConstantVolume, FanOnOff, FanVariableVolume, and FanZoneExhaust
|
|
41
41
|
# @param target_fan_power [Double] the target fan power in watts
|
|
42
|
-
# @return [
|
|
42
|
+
# @return [Boolean] returns true if successful, false if not
|
|
43
43
|
def fan_adjust_pressure_rise_to_meet_fan_power(fan, target_fan_power)
|
|
44
44
|
# Get design supply air flow rate (whether autosized or hard-sized)
|
|
45
45
|
dsn_air_flow_m3_per_s = 0
|
|
@@ -161,7 +161,7 @@ module Fan
|
|
|
161
161
|
# @param fan [OpenStudio::Model::StraightComponent] fan object, allowable types:
|
|
162
162
|
# FanConstantVolume, FanOnOff, FanVariableVolume, and FanZoneExhaust
|
|
163
163
|
# @param motor_eff [Double] motor efficiency (0.0 to 1.0)
|
|
164
|
-
# @return [
|
|
164
|
+
# @return [Boolean] returns true if successful, false if not
|
|
165
165
|
def fan_change_motor_efficiency(fan, motor_eff)
|
|
166
166
|
# Calculate the existing impeller efficiency
|
|
167
167
|
existing_motor_eff = 0.7
|
|
@@ -190,7 +190,7 @@ module Fan
|
|
|
190
190
|
# @param fan [OpenStudio::Model::StraightComponent] fan object, allowable types:
|
|
191
191
|
# FanConstantVolume, FanOnOff, FanVariableVolume, and FanZoneExhaust
|
|
192
192
|
# @param impeller_eff [Double] impeller efficiency (0.0 to 1.0)
|
|
193
|
-
# @return [
|
|
193
|
+
# @return [Boolean] returns true if successful, false if not
|
|
194
194
|
def fan_change_impeller_efficiency(fan, impeller_eff)
|
|
195
195
|
# Get the existing motor efficiency
|
|
196
196
|
existing_motor_eff = 0.7
|
|
@@ -305,7 +305,7 @@ module Fan
|
|
|
305
305
|
#
|
|
306
306
|
# @param fan [OpenStudio::Model::StraightComponent] fan object, allowable types:
|
|
307
307
|
# FanConstantVolume, FanOnOff, FanVariableVolume, and FanZoneExhaust
|
|
308
|
-
# @return [
|
|
308
|
+
# @return [Boolean] returns true if it is a small fan, false if not
|
|
309
309
|
def fan_small_fan?(fan)
|
|
310
310
|
is_small = false
|
|
311
311
|
|
|
@@ -348,13 +348,7 @@ module Fan
|
|
|
348
348
|
# @return [Double] rated power consumption per flow in watters per cfm, W*min/ft^3
|
|
349
349
|
def fan_rated_w_per_cfm(fan)
|
|
350
350
|
# Get design power (whether autosized or hard-sized)
|
|
351
|
-
rated_power_w =
|
|
352
|
-
if rated_power_w.is_initialized
|
|
353
|
-
rated_power_w = rated_power_w.get
|
|
354
|
-
else
|
|
355
|
-
rated_power_w = fan_fanpower(fan)
|
|
356
|
-
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.Fan', "For #{fan.name}, could not find rated fan power from Equipment Summary. Will calculate it based on current pressure rise and total fan efficiency")
|
|
357
|
-
end
|
|
351
|
+
rated_power_w = fan_fanpower(fan)
|
|
358
352
|
|
|
359
353
|
if fan.maximumFlowRate.is_initialized
|
|
360
354
|
max_m3_per_s = fan.ratedFlowRate.get
|
|
@@ -17,7 +17,7 @@ class Standard
|
|
|
17
17
|
# Multi Zone VAV with VSD and Fixed SP Setpoint,
|
|
18
18
|
# Multi Zone VAV with VSD and Static Pressure Reset,
|
|
19
19
|
# Single Zone VAV Fan
|
|
20
|
-
# @return [
|
|
20
|
+
# @return [Boolean] returns true if successful, false if not
|
|
21
21
|
def fan_variable_volume_set_control_type(fan_variable_volume, control_type)
|
|
22
22
|
# Determine the coefficients
|
|
23
23
|
coeff_a = nil
|
|
@@ -113,7 +113,7 @@ class Standard
|
|
|
113
113
|
# Determines whether there is a requirement to have a VSD or some other method to reduce fan power at low part load ratios.
|
|
114
114
|
#
|
|
115
115
|
# @param fan_variable_volume [OpenStudio::Model::FanVariableVolume] variable volume fan object
|
|
116
|
-
# @return [
|
|
116
|
+
# @return [Boolean] returns true if required, false if not
|
|
117
117
|
def fan_variable_volume_part_load_fan_power_limitation?(fan_variable_volume)
|
|
118
118
|
part_load_control_required = false
|
|
119
119
|
|
|
@@ -21,7 +21,7 @@ class Standard
|
|
|
21
21
|
# @param equipment_type [String] heat rejection equipment type enumeration used for lookup query,
|
|
22
22
|
# options are 'Closed Cooling Tower', modeled as an EvaporativeFluidCooler,
|
|
23
23
|
# or 'Dry Cooler', modeled as a FluidCooler
|
|
24
|
-
# @return [
|
|
24
|
+
# @return [Boolean] returns true if successful, false if not
|
|
25
25
|
def fluid_cooler_apply_minimum_power_per_flow(fluid_cooler, equipment_type: 'Closed Cooling Tower')
|
|
26
26
|
# Get the design water flow rate
|
|
27
27
|
if fluid_cooler.designWaterFlowRate.is_initialized
|
|
@@ -7,7 +7,7 @@ class Standard
|
|
|
7
7
|
#
|
|
8
8
|
# @param headered_pumps_variable_speed [OpenStudio::Model::HeaderedPumpsVariableSpeed] headered variable speed pumps object
|
|
9
9
|
# @param control_type [String] valid choices are Riding Curve, VSD No Reset, VSD DP Reset
|
|
10
|
-
# @return [
|
|
10
|
+
# @return [Boolean] returns true if successful, false if not
|
|
11
11
|
def headered_pumps_variable_speed_set_control_type(headered_pumps_variable_speed, control_type)
|
|
12
12
|
# Determine the coefficients
|
|
13
13
|
coeff_a = nil
|
|
@@ -4,7 +4,7 @@ class Standard
|
|
|
4
4
|
# Sets the minimum effectiveness of the heat exchanger per the standard.
|
|
5
5
|
#
|
|
6
6
|
# @param heat_exchanger_air_to_air_sensible_and_latent [OpenStudio::Model::HeatExchangerAirToAirSensibleAndLatent] the heat exchanger
|
|
7
|
-
# @return [
|
|
7
|
+
# @return [Boolean] returns true if successful, false if not
|
|
8
8
|
def heat_exchanger_air_to_air_sensible_and_latent_apply_effectiveness(heat_exchanger_air_to_air_sensible_and_latent)
|
|
9
9
|
# Assumed to be sensible and latent at all flow
|
|
10
10
|
full_htg_sens_eff, full_htg_lat_eff, part_htg_sens_eff, part_htg_lat_eff, full_cool_sens_eff, full_cool_lat_eff, part_cool_sens_eff, part_cool_lat_eff = heat_exchanger_air_to_air_sensible_and_latent_minimum_effectiveness(heat_exchanger_air_to_air_sensible_and_latent)
|
|
@@ -46,9 +46,9 @@ class Standard
|
|
|
46
46
|
# climate zones a 50% ERR at typical condition leads a ERR > 50%,
|
|
47
47
|
# the ERR is thus scaled down.
|
|
48
48
|
#
|
|
49
|
-
# @param enthalpy_recovery_ratio [
|
|
49
|
+
# @param enthalpy_recovery_ratio [Double] Enthalpy Recovery Ratio (ERR)
|
|
50
50
|
# @param climate_zone [String] climate zone
|
|
51
|
-
# @return [
|
|
51
|
+
# @return [Double] adjusted ERR
|
|
52
52
|
def enthalpy_recovery_ratio_design_to_typical_adjustment(enthalpy_recovery_ratio, climate_zone)
|
|
53
53
|
if climate_zone.include? '2B'
|
|
54
54
|
enthalpy_recovery_ratio /= 0.65 / 0.55
|