openstudio-standards 0.2.17.rc2 → 0.3.1.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (233) hide show
  1. checksums.yaml +4 -4
  2. data/data/geometry/ASHRAESuperMarket.json +29 -38
  3. data/data/standards/OpenStudio_Standards-deer-ALL-comstock(space_types).xlsx +0 -0
  4. data/data/standards/metadata_units_OpenStudio_Standards-deer-ALL-comstockspace_types.csv +172 -0
  5. data/data/standards/test_performance_expected_dd_results.csv +12 -12
  6. data/lib/openstudio-standards/btap/analysis.rb +389 -389
  7. data/lib/openstudio-standards/btap/bridging.rb +2099 -0
  8. data/lib/openstudio-standards/btap/btap.model.rb +717 -717
  9. data/lib/openstudio-standards/btap/btap.rb +33 -30
  10. data/lib/openstudio-standards/btap/economics.rb +1163 -1163
  11. data/lib/openstudio-standards/btap/envelope.rb +4 -4
  12. data/lib/openstudio-standards/btap/equest.rb +2524 -2524
  13. data/lib/openstudio-standards/btap/fileio.rb +9 -0
  14. data/lib/openstudio-standards/btap/measures.rb +1515 -1515
  15. data/lib/openstudio-standards/btap/mpc.rb +554 -554
  16. data/lib/openstudio-standards/btap/reporting.rb +287 -287
  17. data/lib/openstudio-standards/btap/simmanager.rb +759 -759
  18. data/lib/openstudio-standards/btap/spaceloads.rb +439 -439
  19. data/lib/openstudio-standards/btap/spacetypes.rb +113 -113
  20. data/lib/openstudio-standards/btap/utilities.rb +134 -134
  21. data/lib/openstudio-standards/hvac_sizing/Siz.AirLoopHVAC.rb +8 -83
  22. data/lib/openstudio-standards/hvac_sizing/Siz.CoilCoolingWater.rb +3 -99
  23. data/lib/openstudio-standards/hvac_sizing/Siz.HeatingCoolingFuels.rb +81 -75
  24. data/lib/openstudio-standards/hvac_sizing/Siz.Model.rb +7 -306
  25. data/lib/openstudio-standards/hvac_sizing/Siz.ThermalZone.rb +70 -98
  26. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +41 -14
  27. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +40 -14
  28. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperMarket.rb +1 -23
  29. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.exterior_lights.rb +7 -7
  30. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +5 -1
  31. data/lib/openstudio-standards/prototypes/common/objects/Prototype.ServiceWaterHeating.rb +101 -4
  32. data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +16 -1
  33. data/lib/openstudio-standards/prototypes/common/objects/Prototype.refrigeration.rb +5 -4
  34. data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +24 -4
  35. data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +18 -2
  36. data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +18 -0
  37. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +13 -10
  38. data/lib/openstudio-standards/standards/Standards.CoilDX.rb +5 -3
  39. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +11 -8
  40. data/lib/openstudio-standards/standards/Standards.Construction.rb +1 -1
  41. data/lib/openstudio-standards/standards/Standards.Model.rb +68 -52
  42. data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +2 -2
  43. data/lib/openstudio-standards/standards/Standards.Space.rb +16 -18
  44. data/lib/openstudio-standards/standards/Standards.ThermalZone.rb +1 -1
  45. data/lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb +5 -5
  46. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ref_cases.json +510 -0
  47. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_compressors.json +18 -0
  48. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_walkins.json +410 -0
  49. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +2 -2
  50. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ref_cases.json +510 -0
  51. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_compressors.json +18 -0
  52. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_walkins.json +410 -0
  53. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +2 -2
  54. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ref_cases.json +510 -0
  55. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_compressors.json +18 -0
  56. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_walkins.json +410 -0
  57. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +2 -2
  58. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ref_cases.json +510 -0
  59. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_compressors.json +18 -0
  60. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_walkins.json +410 -0
  61. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +2 -2
  62. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.spc_typ.json +2 -2
  63. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.spc_typ.json +2 -2
  64. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.entryways.json +13 -2
  65. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.parking.json +11 -2
  66. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirLoopHVAC.rb +9 -0
  67. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Model.rb +2 -0
  68. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.rb +4 -3
  69. data/lib/openstudio-standards/standards/deer/deer_1985/comstock_deer_1985/data/comstock_deer_1985.spc_typ.json +405 -405
  70. data/lib/openstudio-standards/standards/deer/deer_1996/comstock_deer_1996/data/comstock_deer_1996.spc_typ.json +405 -405
  71. data/lib/openstudio-standards/standards/deer/deer_2003/comstock_deer_2003/data/comstock_deer_2003.spc_typ.json +405 -405
  72. data/lib/openstudio-standards/standards/deer/deer_2003/deer_2003.ThermalZone.rb +21 -0
  73. data/lib/openstudio-standards/standards/deer/deer_2007/comstock_deer_2007/data/comstock_deer_2007.spc_typ.json +405 -405
  74. data/lib/openstudio-standards/standards/deer/deer_2007/deer_2007.ThermalZone.rb +21 -0
  75. data/lib/openstudio-standards/standards/deer/deer_2011/comstock_deer_2011/data/comstock_deer_2011.spc_typ.json +405 -405
  76. data/lib/openstudio-standards/standards/deer/deer_2011/deer_2011.ThermalZone.rb +21 -0
  77. data/lib/openstudio-standards/standards/deer/deer_2014/comstock_deer_2014/data/comstock_deer_2014.spc_typ.json +405 -405
  78. data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.ThermalZone.rb +21 -0
  79. data/lib/openstudio-standards/standards/deer/deer_2015/comstock_deer_2015/data/comstock_deer_2015.spc_typ.json +405 -405
  80. data/lib/openstudio-standards/standards/deer/deer_2015/deer_2015.ThermalZone.rb +21 -0
  81. data/lib/openstudio-standards/standards/deer/deer_2017/comstock_deer_2017/data/comstock_deer_2017.spc_typ.json +405 -405
  82. data/lib/openstudio-standards/standards/deer/deer_2017/deer_2017.ThermalZone.rb +21 -0
  83. data/lib/openstudio-standards/standards/deer/deer_2020/comstock_deer_2020/data/comstock_deer_2020.spc_typ.json +405 -405
  84. data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.AirLoopHVAC.rb +8 -0
  85. data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.ThermalZone.rb +21 -0
  86. data/lib/openstudio-standards/standards/deer/deer_2025/comstock_deer_2025/data/comstock_deer_2025.spc_typ.json +405 -405
  87. data/lib/openstudio-standards/standards/deer/deer_2030/comstock_deer_2030/data/comstock_deer_2030.spc_typ.json +405 -405
  88. data/lib/openstudio-standards/standards/deer/deer_2035/comstock_deer_2035/data/comstock_deer_2035.spc_typ.json +405 -405
  89. data/lib/openstudio-standards/standards/deer/deer_2040/comstock_deer_2040/data/comstock_deer_2040.spc_typ.json +405 -405
  90. data/lib/openstudio-standards/standards/deer/deer_2045/comstock_deer_2045/data/comstock_deer_2045.spc_typ.json +405 -405
  91. data/lib/openstudio-standards/standards/deer/deer_2050/comstock_deer_2050/data/comstock_deer_2050.spc_typ.json +405 -405
  92. data/lib/openstudio-standards/standards/deer/deer_2055/comstock_deer_2055/data/comstock_deer_2055.spc_typ.json +405 -405
  93. data/lib/openstudio-standards/standards/deer/deer_2060/comstock_deer_2060/data/comstock_deer_2060.spc_typ.json +405 -405
  94. data/lib/openstudio-standards/standards/deer/deer_2065/comstock_deer_2065/data/comstock_deer_2065.spc_typ.json +405 -405
  95. data/lib/openstudio-standards/standards/deer/deer_2070/comstock_deer_2070/data/comstock_deer_2070.spc_typ.json +405 -405
  96. data/lib/openstudio-standards/standards/deer/deer_2075/comstock_deer_2075/data/comstock_deer_2075.spc_typ.json +405 -405
  97. data/lib/openstudio-standards/standards/deer/deer_pre_1975/comstock_deer_pre_1975/data/comstock_deer_pre_1975.spc_typ.json +405 -405
  98. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/btap_pre1980.rb +1 -1
  99. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_3_and_8_single_speed.rb +3 -1
  100. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_4.rb +3 -1
  101. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_6.rb +2 -2
  102. data/lib/openstudio-standards/standards/necb/ECMS/data/curves.json +233 -0
  103. data/lib/openstudio-standards/standards/necb/ECMS/data/unitary_acs.json +180 -0
  104. data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +6 -1
  105. data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +807 -258
  106. data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +102 -66
  107. data/lib/openstudio-standards/standards/necb/NECB2011/data/fuel_type_sets.json +85 -8
  108. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/HighriseApartment.osm +2483 -992
  109. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/LowriseApartment.osm +4 -336
  110. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/MidriseApartment.osm +228 -231
  111. data/lib/openstudio-standards/standards/necb/NECB2011/data/heat_pumps_heating.json +12 -18
  112. data/lib/openstudio-standards/standards/necb/NECB2011/data/space_type_unit_definitions.txt +76 -0
  113. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_multi_speed.rb +6 -1
  114. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_single_speed.rb +111 -24
  115. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_2_and_5.rb +1 -0
  116. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_multi_speed.rb +3 -1
  117. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_single_speed.rb +64 -16
  118. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_4.rb +61 -17
  119. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_6.rb +128 -0
  120. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +252 -23
  121. data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +316 -20
  122. data/lib/openstudio-standards/standards/necb/NECB2011/qaqc/necb_qaqc.rb +1 -1
  123. data/lib/openstudio-standards/standards/necb/NECB2011/service_water_heating.rb +4 -6
  124. data/lib/openstudio-standards/standards/necb/NECB2011/system_fuels.rb +38 -0
  125. data/lib/openstudio-standards/standards/necb/NECB2015/data/heat_pumps_heating.json +16 -24
  126. data/lib/openstudio-standards/standards/necb/NECB2015/hvac_systems.rb +48 -25
  127. data/lib/openstudio-standards/standards/necb/NECB2020/building_envelope.rb +3 -3
  128. data/lib/openstudio-standards/standards/necb/NECB2020/data/chillers.json +36 -19
  129. data/lib/openstudio-standards/standards/necb/NECB2020/data/furnaces.json +19 -4
  130. data/lib/openstudio-standards/standards/necb/NECB2020/data/heat_pumps.json +20 -40
  131. data/lib/openstudio-standards/standards/necb/NECB2020/data/heat_pumps_heating.json +74 -36
  132. data/lib/openstudio-standards/standards/necb/NECB2020/necb_2020.rb +0 -2
  133. data/lib/openstudio-standards/standards/necb/NECB2020/service_water_heating.rb +124 -57
  134. data/lib/openstudio-standards/standards/necb/common/btap_data.rb +124 -2
  135. data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +15 -2
  136. data/lib/openstudio-standards/standards/necb/common/necb_reference_runs.csv +1 -1
  137. data/lib/openstudio-standards/utilities/simulation.rb +1 -1
  138. data/lib/openstudio-standards/version.rb +1 -1
  139. data/lib/openstudio-standards/weather/Weather.Model.rb +5 -0
  140. data/lib/openstudio-standards/weather/Weather.stat_file.rb +33 -1
  141. data/lib/openstudio-standards.rb +1 -0
  142. metadata +14 -121
  143. data/data/standards/OpenStudio_Standards-ashrae_90_1.xlsx +0 -0
  144. data/data/weather/CAN_ON_Kingston.AP.718200_TMYx.2004-2018.ddy +0 -2342
  145. data/data/weather/CAN_ON_Kingston.AP.718200_TMYx.2004-2018.epw +0 -8768
  146. data/data/weather/CAN_ON_Kingston.AP.718200_TMYx.2004-2018.stat +0 -700
  147. data/data/weather/CAN_ON_Region.of.Waterloo.Intl.AP.713680_TMYx.2004-2018.ddy +0 -2342
  148. data/data/weather/CAN_ON_Region.of.Waterloo.Intl.AP.713680_TMYx.2004-2018.epw +0 -8768
  149. data/data/weather/CAN_ON_Region.of.Waterloo.Intl.AP.713680_TMYx.2004-2018.stat +0 -700
  150. data/data/weather/CAN_ON_Sarnia-Hadfield.AP.717040_TMYx.2004-2018.ddy +0 -2342
  151. data/data/weather/CAN_ON_Sarnia-Hadfield.AP.717040_TMYx.2004-2018.epw +0 -8768
  152. data/data/weather/CAN_ON_Sarnia-Hadfield.AP.717040_TMYx.2004-2018.stat +0 -700
  153. data/data/weather/CAN_QC_Gatineau.AP.716279_TMYx.2004-2018.ddy +0 -276
  154. data/data/weather/CAN_QC_Gatineau.AP.716279_TMYx.2004-2018.epw +0 -8768
  155. data/data/weather/CAN_QC_Gatineau.AP.716279_TMYx.2004-2018.stat +0 -611
  156. data/data/weather/CAN_QC_Granby.710367_TMYx.2004-2018.ddy +0 -276
  157. data/data/weather/CAN_QC_Granby.710367_TMYx.2004-2018.epw +0 -8768
  158. data/data/weather/CAN_QC_Granby.710367_TMYx.2004-2018.stat +0 -610
  159. data/data/weather/CAN_QC_Sherbrooke.AP.716100_TMYx.2004-2018.ddy +0 -2342
  160. data/data/weather/CAN_QC_Sherbrooke.AP.716100_TMYx.2004-2018.epw +0 -8768
  161. data/data/weather/CAN_QC_Sherbrooke.AP.716100_TMYx.2004-2018.stat +0 -700
  162. data/data/weather/CAN_QC_Trois.Rivieres.717240_TMYx.2004-2018.ddy +0 -2342
  163. data/data/weather/CAN_QC_Trois.Rivieres.717240_TMYx.2004-2018.epw +0 -8768
  164. data/data/weather/CAN_QC_Trois.Rivieres.717240_TMYx.2004-2018.stat +0 -700
  165. data/lib/openstudio-standards/hvac_sizing/Siz.AirConditionerVariableRefrigerantFlow.rb +0 -81
  166. data/lib/openstudio-standards/hvac_sizing/Siz.AirLoopHVACUnitaryHeatCoolVAVChngByp.rb +0 -27
  167. data/lib/openstudio-standards/hvac_sizing/Siz.AirLoopHVACUnitaryHeatPumpAirToAir.rb +0 -69
  168. data/lib/openstudio-standards/hvac_sizing/Siz.AirLoopHVACUnitaryHeatPumpAirToAirMultiSpeed.rb +0 -178
  169. data/lib/openstudio-standards/hvac_sizing/Siz.AirLoopHVACUnitarySystem.rb +0 -27
  170. data/lib/openstudio-standards/hvac_sizing/Siz.AirTermSnglDuctConstVolCooledBeam.rb +0 -27
  171. data/lib/openstudio-standards/hvac_sizing/Siz.AirTermSnglDuctConstVolFourPipeInduction.rb +0 -27
  172. data/lib/openstudio-standards/hvac_sizing/Siz.AirTermSnglDuctConstVolReheat.rb +0 -27
  173. data/lib/openstudio-standards/hvac_sizing/Siz.AirTermSnglDuctParallelPIUReheat.rb +0 -67
  174. data/lib/openstudio-standards/hvac_sizing/Siz.AirTermSnglDuctSeriesPIUReheat.rb +0 -27
  175. data/lib/openstudio-standards/hvac_sizing/Siz.AirTermSnglDuctUncontrolled.rb +0 -30
  176. data/lib/openstudio-standards/hvac_sizing/Siz.AirTermSnglDuctVAVHeatAndCoolNoReheat.rb +0 -27
  177. data/lib/openstudio-standards/hvac_sizing/Siz.AirTermSnglDuctVAVHeatAndCoolReheat.rb +0 -27
  178. data/lib/openstudio-standards/hvac_sizing/Siz.AirTermSnglDuctVAVNoReheat.rb +0 -68
  179. data/lib/openstudio-standards/hvac_sizing/Siz.AirTermSnglDuctVAVReheat.rb +0 -68
  180. data/lib/openstudio-standards/hvac_sizing/Siz.BoilerHotWater.rb +0 -42
  181. data/lib/openstudio-standards/hvac_sizing/Siz.BoilerSteam.rb +0 -27
  182. data/lib/openstudio-standards/hvac_sizing/Siz.ChillerElectricEIR.rb +0 -58
  183. data/lib/openstudio-standards/hvac_sizing/Siz.CoilCoolingDXMultiSpeed.rb +0 -171
  184. data/lib/openstudio-standards/hvac_sizing/Siz.CoilCoolingDXSingleSpeed.rb +0 -56
  185. data/lib/openstudio-standards/hvac_sizing/Siz.CoilCoolingDXTwoSpeed.rb +0 -89
  186. data/lib/openstudio-standards/hvac_sizing/Siz.CoilCoolingDXVariableRefrigerantFlow.rb +0 -50
  187. data/lib/openstudio-standards/hvac_sizing/Siz.CoilCoolingWaterToAirHeatPumpEquationFit.rb +0 -69
  188. data/lib/openstudio-standards/hvac_sizing/Siz.CoilHeatingDXMultiSpeed.rb +0 -120
  189. data/lib/openstudio-standards/hvac_sizing/Siz.CoilHeatingDXSingleSpeed.rb +0 -56
  190. data/lib/openstudio-standards/hvac_sizing/Siz.CoilHeatingDXVariableRefrigerantFlow.rb +0 -41
  191. data/lib/openstudio-standards/hvac_sizing/Siz.CoilHeatingDesuperheater.rb +0 -27
  192. data/lib/openstudio-standards/hvac_sizing/Siz.CoilHeatingElectric.rb +0 -30
  193. data/lib/openstudio-standards/hvac_sizing/Siz.CoilHeatingGas.rb +0 -30
  194. data/lib/openstudio-standards/hvac_sizing/Siz.CoilHeatingGasMultiStage.rb +0 -68
  195. data/lib/openstudio-standards/hvac_sizing/Siz.CoilHeatingWater.rb +0 -61
  196. data/lib/openstudio-standards/hvac_sizing/Siz.CoilHeatingWaterToAirHeatPumpEquationFit.rb +0 -57
  197. data/lib/openstudio-standards/hvac_sizing/Siz.CoilWaterHeatingDesuperheater.rb +0 -27
  198. data/lib/openstudio-standards/hvac_sizing/Siz.ControllerOutdoorAir.rb +0 -59
  199. data/lib/openstudio-standards/hvac_sizing/Siz.ControllerWaterCoil.rb +0 -49
  200. data/lib/openstudio-standards/hvac_sizing/Siz.CoolingTowerSingleSpeed.rb +0 -90
  201. data/lib/openstudio-standards/hvac_sizing/Siz.CoolingTowerTwoSpeed.rb +0 -83
  202. data/lib/openstudio-standards/hvac_sizing/Siz.CoolingTowerVariableSpeed.rb +0 -57
  203. data/lib/openstudio-standards/hvac_sizing/Siz.DistrictCooling.rb +0 -27
  204. data/lib/openstudio-standards/hvac_sizing/Siz.DistrictHeating.rb +0 -27
  205. data/lib/openstudio-standards/hvac_sizing/Siz.EvaporativeCoolerDirectResearchSpecial.rb +0 -27
  206. data/lib/openstudio-standards/hvac_sizing/Siz.EvaporativeCoolerIndirectResearchSpecial.rb +0 -27
  207. data/lib/openstudio-standards/hvac_sizing/Siz.EvaporativeFluidCoolerSingleSpeed.rb +0 -27
  208. data/lib/openstudio-standards/hvac_sizing/Siz.FanConstantVolume.rb +0 -29
  209. data/lib/openstudio-standards/hvac_sizing/Siz.FanOnOff.rb +0 -27
  210. data/lib/openstudio-standards/hvac_sizing/Siz.FanVariableVolume.rb +0 -29
  211. data/lib/openstudio-standards/hvac_sizing/Siz.HeaderedPumpsConstantSpeed.rb +0 -55
  212. data/lib/openstudio-standards/hvac_sizing/Siz.HeaderedPumpsVariableSpeed.rb +0 -55
  213. data/lib/openstudio-standards/hvac_sizing/Siz.HeatExchangerAirToAirSensibleAndLatent.rb +0 -38
  214. data/lib/openstudio-standards/hvac_sizing/Siz.HeatExchangerFluidToFluid.rb +0 -27
  215. data/lib/openstudio-standards/hvac_sizing/Siz.HumidifierSteamElectric.rb +0 -27
  216. data/lib/openstudio-standards/hvac_sizing/Siz.PlantLoop.rb +0 -42
  217. data/lib/openstudio-standards/hvac_sizing/Siz.PumpConstantSpeed.rb +0 -59
  218. data/lib/openstudio-standards/hvac_sizing/Siz.PumpVariableSpeed.rb +0 -59
  219. data/lib/openstudio-standards/hvac_sizing/Siz.SizingSystem.rb +0 -48
  220. data/lib/openstudio-standards/hvac_sizing/Siz.WaterHeaterMixed.rb +0 -16
  221. data/lib/openstudio-standards/hvac_sizing/Siz.ZoneHVACBaseboardConvectiveElectric.rb +0 -27
  222. data/lib/openstudio-standards/hvac_sizing/Siz.ZoneHVACBaseboardConvectiveWater.rb +0 -27
  223. data/lib/openstudio-standards/hvac_sizing/Siz.ZoneHVACFourPipeFanCoil.rb +0 -27
  224. data/lib/openstudio-standards/hvac_sizing/Siz.ZoneHVACHighTemperatureRadiant.rb +0 -27
  225. data/lib/openstudio-standards/hvac_sizing/Siz.ZoneHVACIdealLoadsAirSystem.rb +0 -27
  226. data/lib/openstudio-standards/hvac_sizing/Siz.ZoneHVACLowTempRadiantConstFlow.rb +0 -27
  227. data/lib/openstudio-standards/hvac_sizing/Siz.ZoneHVACLowTempRadiantVarFlow.rb +0 -27
  228. data/lib/openstudio-standards/hvac_sizing/Siz.ZoneHVACLowTemperatureRadiantElectric.rb +0 -27
  229. data/lib/openstudio-standards/hvac_sizing/Siz.ZoneHVACPackagedTerminalAirConditioner.rb +0 -88
  230. data/lib/openstudio-standards/hvac_sizing/Siz.ZoneHVACPackagedTerminalHeatPump.rb +0 -88
  231. data/lib/openstudio-standards/hvac_sizing/Siz.ZoneHVACTerminalUnitVariableRefrigerantFlow.rb +0 -104
  232. data/lib/openstudio-standards/hvac_sizing/Siz.ZoneHVACUnitHeater.rb +0 -27
  233. data/lib/openstudio-standards/hvac_sizing/Siz.ZoneHVACWaterToAirHeatPump.rb +0 -27
@@ -1,389 +1,389 @@
1
- # *********************************************************************
2
- # * Copyright (c) 2008-2015, Natural Resources Canada
3
- # * All rights reserved.
4
- # *
5
- # * This library is free software; you can redistribute it and/or
6
- # * modify it under the terms of the GNU Lesser General Public
7
- # * License as published by the Free Software Foundation; either
8
- # * version 2.1 of the License, or (at your option) any later version.
9
- # *
10
- # * This library is distributed in the hope that it will be useful,
11
- # * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
- # * Lesser General Public License for more details.
14
- # *
15
- # * You should have received a copy of the GNU Lesser General Public
16
- # * License along with this library; if not, write to the Free Software
17
- # * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
- # **********************************************************************/
19
-
20
- module BTAP
21
- #Contains methods to perform multi-run analysis of a building model
22
- module Analysis
23
- module Baseline
24
- "NECB2011"
25
- end
26
-
27
- #A single measure that is selectable.
28
- module Sensitivity
29
- choices = [
30
- #Envelope Insulation
31
- #Wall Roof Floor Door
32
- #Ground Exterior
33
- #Direction Story
34
- "Ground Surfaces RSI (5-100)",
35
- "Ext Wall RSI (5-100)",
36
- "Ext Roof RSI (5-100)",
37
- "Ext Floor RSI (5-100)",
38
-
39
-
40
- #Door, Window, Skylight
41
- #Direction Story
42
- "Glazing RSI (5-100)",
43
-
44
- #Envelope Optical (ECMs Blinds, Low E glass / Tinting)
45
- #Door, Window, Skylight
46
- #Direction Story
47
- "Window Solar Transmittance (0-100%)",
48
- "Southern Window Solar Transmittance (0-100%)",
49
-
50
- #Envelope FDWR ( Design Considerations, Daylighting ECMs , baseline must have DL sensors)
51
- #Direction
52
- "FWDR (0-98%)",
53
- "SRR (0-10%)",
54
-
55
- #Shading (Overhang)
56
- #Direction
57
- "Overhang Ratio (0-50%)",
58
-
59
- #Loads
60
- "Infiltration (0-200%)", #Tightening Building ECMs
61
- "Ventilation (0-200%)", #UFAD reduction potential
62
- "Occupants (0-200%)", #Employee reduction / Work at home incentive / Control ECMs
63
- "Lighting (0-200%)", #Lighting ECMs, Control ECMS
64
- "Plug Loads (0-200%)", #Lighting ECMs, Control ECMS
65
- "Setpoint Reduction H&C (0-100%)", #Control ECMs
66
-
67
-
68
- #HVAC Sensitivity
69
- "Fan Power (0-100%)", #Natural Ventilation, UFAD
70
- "HW Boiler Eff (50-300%)", #Equipment ECMs / GSHP
71
- "DHW Boiler Eff (50-300%)", #Equipment ECMs /GSHP
72
- "Cooling COP (2.0-5.0)", #Equipment ECMs /GSHP
73
- "Heating COP (2.0-5.0)", #Equipment ECMs /GSHP
74
- "Fan Eff (80-200%)", #Equipment ECMs
75
- "Pump Eff (80-200%)", #Equipment ECMs
76
- "Fuel Type",# NaturalGas, Electric fuel switching
77
-
78
- #Existing ECMS (require costing)
79
- "DCV",
80
- "Cold Deck Reset Control",
81
- "Supply Air Temperature Reset",
82
- "Economizers"
83
- ]
84
- end
85
-
86
-
87
-
88
-
89
- module Parametric
90
- #parametric Analysis methods. Each of these methods will create a set of
91
- #parametric runs based on the default set in the arguments.
92
- #Overhangs, Thermal mass, Blind control still needs to be examined (10)
93
-
94
- #This method will do an analysis of the opaque surface conductance sensitivity and returns a string model array.
95
- #@author phylroy.lopez@nrcan.gc.ca
96
- #@param model [OpenStudio::model::Model] A model object {http://openstudio.nrel.gov/latest-c-sdk-documentation/model}
97
- #@param choice [String] description
98
- #@return [modelArray<String>]
99
- def self.opaque_surface_conductance_sensitivity_analysis(model,choice )
100
-
101
- case choice
102
- when "Ground Surfaces"
103
- when "Ext Wall RSI = 100"
104
- when "Ext Roof RSI = 100"
105
- when "Ext Floor RSI = 100"
106
- when "Window Skylight RSI = 100"
107
- when "No Window Solar Transmittance"
108
- when "No Southern Window Solar Transmittance"
109
- #Loads
110
- when "No Infiltration"
111
- when "No Ventilation"
112
- when "No Occupants"
113
- when "No Lighting"
114
- when "No Plug Loads"
115
- when "No Setpoint"
116
-
117
-
118
- end
119
-
120
- ground_boundary_conditions = ["Ground",
121
- "GroundFCfactorMethod",
122
- "GroundSlabPreprocessorAverage",
123
- "GroundSlabPreprocessorCore",
124
- "GroundSlabPreprocessorPerimeter",
125
- "GroundBasementPreprocessorAverageWall",
126
- "GroundBasementPreprocessorAverageFloor",
127
- "GroundBasementPreprocessorUpperWall",
128
- "GroundBasementPreprocessorLowerWall"
129
- ]
130
- #get non-defaulted ground surfaces.
131
-
132
- ground_surfaces = BTAP::Geometry::Surfaces::filter_by_boundary_condition(model.getSurfaces,ground_boundary_conditions)
133
- non_defaulted_ground_surfaces = BTAP::Geometry::Surfaces::filter_by_non_defaulted_surfaces(ground_surfaces)
134
-
135
-
136
-
137
- #create models
138
- modelArray = Array.new()
139
- #perform Solar Transmittance parametric analysis
140
- values.each do |value|
141
- model = model_in.deep_copy()
142
- model.building.get.setName("Ground-Floor-R-Value="+ value.to_s)
143
- model.set_surface_RValues(["Floor"],
144
- ["Ground",
145
- "GroundFCfactorMethod",
146
- "GroundSlabPreprocessorAverage",
147
- "GroundSlabPreprocessorCore",
148
- "GroundSlabPreprocessorPerimeter",
149
- "GroundBasementPreprocessorAverageWall",
150
- "GroundBasementPreprocessorAverageFloor",
151
- "GroundBasementPreprocessorUpperWall",
152
- "GroundBasementPreprocessorLowerWall"
153
- ],
154
- value)
155
- modelArray.push(model)
156
- end
157
- #Run Files
158
- self.run_models(modelArray,folder_name)
159
- return modelArray
160
- end
161
-
162
- #Performs a ground sensitivity analysis
163
- def self.ground_wall_rvalue_sensitivity_model_analysis(model_in, folder_name,values = [5,10,15,20,30,50,100])
164
- #Create RunManager
165
- #create models
166
- modelArray = Array.new()
167
- #perform Solar Transmittance parametric analysis
168
- values.each do |value|
169
- runname = "Ground-Wall-R-Value="+ value.to_s
170
- model = model_in.deep_copy()
171
- model.building.get.setName(runname)
172
- model.set_surface_RValues(["Wall"],
173
- ["Ground",
174
- "GroundFCfactorMethod",
175
- "GroundSlabPreprocessorAverage",
176
- "GroundSlabPreprocessorCore",
177
- "GroundSlabPreprocessorPerimeter",
178
- "GroundBasementPreprocessorAverageWall",
179
- "GroundBasementPreprocessorAverageFloor",
180
- "GroundBasementPreprocessorUpperWall",
181
- "GroundBasementPreprocessorLowerWall"
182
- ],
183
- value)
184
- modelArray.push(model)
185
- end
186
- #Run Files
187
- self.run_models(modelArray,folder_name)
188
- return modelArray
189
- end
190
-
191
-
192
- #This method performs a wall sensitivity analysis and returns a string model array.
193
- #@author phylroy.lopez@nrcan.gc.ca
194
- #@param model [OpenStudio::model::Model] A model object {http://openstudio.nrel.gov/latest-c-sdk-documentation/model}
195
- #@param folder_name [String]
196
- #@param values<Fixnum>
197
- #@return [modelArray<String>]
198
- def self.wall_rvalue_sensitivity_model_analysis(model, folder_name,values = [5,10,15,20,30,50,100])
199
- #create models
200
- modelArray = Array.new()
201
- #perform Solar Transmittance parametric analysis
202
- values.each do |value|
203
- runname = "Wall_R_Value_"+ value.to_s
204
- model = model.deep_copy()
205
- model.building.get.setName(runname)
206
- model.set_surface_RValues(["Wall"],["Outdoors"],value)
207
- modelArray.push(model)
208
- end
209
- #Run Files
210
- self.run_models(modelArray,folder_name)
211
- return modelArray
212
- end
213
-
214
- #This method performs a roof sensitivity analysis and returns a string model array.
215
- #@author phylroy.lopez@nrcan.gc.ca
216
- #@param model_in [OpenStudio::model::Model] A model object {http://openstudio.nrel.gov/latest-c-sdk-documentation/model}
217
- #@param folder_name [String]
218
- #@param values<Fixnum>
219
- #@return [modelArray<String>]
220
- def self.roof_rvalue_sensitivity_model_analysis(model_in, folder_name,values = [5,10,15,20,30,50,100])
221
- #create models
222
- modelArray = Array.new()
223
- #perform Solar Transmittance parametric analysis
224
- values.each do |value|
225
- runname = "Roof_R_Value_"+ value.to_s
226
- model = model_in.deep_copy()
227
- model.building.get.setName(runname)
228
- model.set_surface_RValues(["RoofCeiling"],["Outdoors"],value)
229
- modelArray.push(model)
230
- end
231
-
232
- #Run Files
233
- self.run_models(modelArray,folder_name)
234
- return modelArray
235
- end
236
-
237
- #This method performs a roof sensitivity analysis and returns a string model array.
238
- #@author phylroy.lopez@nrcan.gc.ca
239
- #@param modelArray<Object>
240
- #@param folder_name [String]
241
- #@return [modelArray<String>]
242
- def self.run_models(modelArray,folder_name)
243
- process_manager = BTAP::SimManager::ProcessManager.new(folder_name)
244
- modelArray.each do |model|
245
- process_manager.addModel(model)
246
- end
247
- process_manager.start_sims
248
- end
249
-
250
- #This method performs a glazing solar transmittance sensitivity analysis and returns a model array.
251
- #@author phylroy.lopez@nrcan.gc.ca
252
- #@param model_in [OpenStudio::model::Model] A model object {http://openstudio.nrel.gov/latest-c-sdk-documentation/model}
253
- #@param folder_name [String]
254
- #@param values<Fixnum>
255
- #@return [modelArray<String>]
256
- def self.solar_trans_sensitivity_model_analysis(model_in, folder_name, values = [0.1,0.2,0.4,0.6,0.8,1.00])
257
- modelArray = Array.new()
258
- #perform Solar Transmittance parametric analysis
259
- values.each do |value|
260
- runname = "Window-Tsol-"+ value.to_s
261
- model = model_in.deep_copy()
262
- model.building.get.setName(runname)
263
- model.set_subsurface_solar_transmittance(["FixedWindow","OperableWindow"],["Outdoors"],value)
264
- modelArray.push(model)
265
- end
266
- #Run Files
267
- self.run_models(modelArray,folder_name)
268
- return modelArray
269
- end
270
-
271
- #This method performs an rvalue sensitivity analysis and returns a model array.
272
- #@author phylroy.lopez@nrcan.gc.ca
273
- #@param model_in [OpenStudio::model::Model] A model object {http://openstudio.nrel.gov/latest-c-sdk-documentation/model}
274
- #@param folder_name [String]
275
- #@param values<Fixnum>
276
- #@return [modelArray<String>]
277
- def self.window_rvalue_sensitivity_model_analysis(model_in, folder_name, values = [5,10,15,20,30,50,100])
278
- modelArray = Array.new()
279
- #perform Solar Transmittance parametric analysis
280
- values.each do |value|
281
- runname = "Window-R-Value="+ value.to_s
282
- model = model_in.deep_copy()
283
- model.building.get.setName(runname)
284
- model.set_subsurface_RValues(["FixedWindow","OperableWindow"],["Outdoors"],value)
285
- modelArray.push(model)
286
- end
287
- #Run Files
288
- self.run_models(modelArray,folder_name)
289
- return modelArray
290
- end
291
-
292
- #This method performs a full sensitivity analysis on the wall, roof, solar-trans,window,and ground surfaces.
293
- #@author phylroy.lopez@nrcan.gc.ca
294
- #@param model [OpenStudio::model::Model] A model object {http://openstudio.nrel.gov/latest-c-sdk-documentation/model}
295
- #@param parent_folder [String]
296
- def self.full_sensitivity_analysis(model, parent_folder)
297
- self.wall_rvalue_sensitivity_model_analysis(model, (parent_folder + "/wall-r"))
298
- self.roof_rvalue_sensitivity_model_analysis(model, (parent_folder + "/roof-r"))
299
- self.solar_trans_sensitivity_model_analysis(model, (parent_folder + "/solar_trans"))
300
- self.window_rvalue_sensitivity_model_analysis(model, (parent_folder + "/window-r"))
301
- self.ground_wall_rvalue_sensitivity_model_analysis(model, (parent_folder + "/ground_wall-r"))
302
- self.ground_floor_rvalue_sensitivity_model_analysis(model, (parent_folder + "/ground-floor-r"))
303
- end
304
-
305
- #This method performs a full analysis (elimination and Sensitivity).
306
- #@author phylroy.lopez@nrcan.gc.ca
307
- #@param model [OpenStudio::model::Model] A model object {http://openstudio.nrel.gov/latest-c-sdk-documentation/model}
308
- #@param folder [String]
309
- def self.full_analysis(model, folder)
310
- FileUtils.rm_rf(folder)
311
- Dir::mkdir(folder) unless File.exists?(folder)
312
- self.full_elimination_analysis(model, folder + "/elimination")
313
- self.full_sensitivity_analysis(model, folder + "/sensitivity")
314
- end
315
-
316
- #Elimination Analysis. This will 'turn off' certain loads from the building
317
- #to see the effects. folder_name = the folder you wish to perform the analysis. weather_file = the path of the valid weather file.
318
-
319
- #This method performs an elimination analysis ( OA, H&C setpoints,infiltration,occupancy,lighting,plug_loads,gas_equipment, hotwater, steam, other) and returns a model array.
320
- #@author phylroy.lopez@nrcan.gc.ca
321
- #@param model_in [OpenStudio::model::Model] A model object {http://openstudio.nrel.gov/latest-c-sdk-documentation/model}
322
- #@param folder_name [String]
323
- #@return [modelArray<String>]
324
- def self.full_elimination_analysis(model_in, folder_name)
325
- modelArray = Array.new()
326
- #model_in.add_standard_schedules()
327
-
328
- model = model_in.deep_copy()
329
- model.building.get.setName("elim_outdoor_air")
330
- model.eliminate_from_model_outdoor_air()
331
- modelArray.push(model)
332
-
333
- model = model_in.deep_copy()
334
- model.building.get.setName("elim_H&C_setpoints")
335
- model.set_temp_to_free_float()
336
- modelArray.push(model)
337
-
338
- model = model_in.deep_copy()
339
- model.building.get.setName("elim_infilt")
340
- model.set_infiltration(0.0)
341
- modelArray.push(model)
342
-
343
- model = model_in.deep_copy()
344
- model.building.get.setName("elim_occup")
345
- model.set_occupancy_density(0.0)
346
- modelArray.push(model)
347
-
348
- model = model_in.deep_copy()
349
- model.building.get.setName("elim_lighting")
350
- model.set_lighting_power_density(0.0)
351
- modelArray.push(model)
352
-
353
-
354
- model = model_in.deep_copy()
355
- model.building.get.setName("elim_elec_equip")
356
- model.set_electric_equipment_power_density(0.0)
357
- modelArray.push(model)
358
-
359
- model = model_in.deep_copy()
360
- model.building.get.setName("elim_gas_equip")
361
- model.set_gas_equipment_power_density(0.0)
362
- modelArray.push(model)
363
-
364
- model = model_in.deep_copy()
365
- model.building.get.setName("elim_hot_water_equip")
366
- model.set_hot_water_equipment(0.0)
367
- modelArray.push(model)
368
-
369
- model = model_in.deep_copy()
370
- model.building.get.setName("elim_steam_equip")
371
- model.set_steam_equipment(0.0)
372
- modelArray.push(model)
373
-
374
- model = model_in.deep_copy()
375
- model.building.get.setName("elim_other_equip")
376
- model.set_other_equipment(0.0)
377
- modelArray.push(model)
378
-
379
- model = model_in.deep_copy()
380
- model.building.get.setName("elim_all")
381
- model.set_other_equipment(0.0)
382
- modelArray.push(model)
383
- #Run Files
384
- self.run_models(modelArray,folder_name)
385
- return modelArray
386
- end
387
- end #module Parametric
388
- end #module Analysis
389
- end
1
+ # # *********************************************************************
2
+ # # * Copyright (c) 2008-2015, Natural Resources Canada
3
+ # # * All rights reserved.
4
+ # # *
5
+ # # * This library is free software; you can redistribute it and/or
6
+ # # * modify it under the terms of the GNU Lesser General Public
7
+ # # * License as published by the Free Software Foundation; either
8
+ # # * version 2.1 of the License, or (at your option) any later version.
9
+ # # *
10
+ # # * This library is distributed in the hope that it will be useful,
11
+ # # * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ # # * Lesser General Public License for more details.
14
+ # # *
15
+ # # * You should have received a copy of the GNU Lesser General Public
16
+ # # * License along with this library; if not, write to the Free Software
17
+ # # * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
+ # # **********************************************************************/
19
+ #
20
+ # module BTAP
21
+ # #Contains methods to perform multi-run analysis of a building model
22
+ # module Analysis
23
+ # module Baseline
24
+ # "NECB2011"
25
+ # end
26
+ #
27
+ # #A single measure that is selectable.
28
+ # module Sensitivity
29
+ # choices = [
30
+ # #Envelope Insulation
31
+ # #Wall Roof Floor Door
32
+ # #Ground Exterior
33
+ # #Direction Story
34
+ # "Ground Surfaces RSI (5-100)",
35
+ # "Ext Wall RSI (5-100)",
36
+ # "Ext Roof RSI (5-100)",
37
+ # "Ext Floor RSI (5-100)",
38
+ #
39
+ #
40
+ # #Door, Window, Skylight
41
+ # #Direction Story
42
+ # "Glazing RSI (5-100)",
43
+ #
44
+ # #Envelope Optical (ECMs Blinds, Low E glass / Tinting)
45
+ # #Door, Window, Skylight
46
+ # #Direction Story
47
+ # "Window Solar Transmittance (0-100%)",
48
+ # "Southern Window Solar Transmittance (0-100%)",
49
+ #
50
+ # #Envelope FDWR ( Design Considerations, Daylighting ECMs , baseline must have DL sensors)
51
+ # #Direction
52
+ # "FWDR (0-98%)",
53
+ # "SRR (0-10%)",
54
+ #
55
+ # #Shading (Overhang)
56
+ # #Direction
57
+ # "Overhang Ratio (0-50%)",
58
+ #
59
+ # #Loads
60
+ # "Infiltration (0-200%)", #Tightening Building ECMs
61
+ # "Ventilation (0-200%)", #UFAD reduction potential
62
+ # "Occupants (0-200%)", #Employee reduction / Work at home incentive / Control ECMs
63
+ # "Lighting (0-200%)", #Lighting ECMs, Control ECMS
64
+ # "Plug Loads (0-200%)", #Lighting ECMs, Control ECMS
65
+ # "Setpoint Reduction H&C (0-100%)", #Control ECMs
66
+ #
67
+ #
68
+ # #HVAC Sensitivity
69
+ # "Fan Power (0-100%)", #Natural Ventilation, UFAD
70
+ # "HW Boiler Eff (50-300%)", #Equipment ECMs / GSHP
71
+ # "DHW Boiler Eff (50-300%)", #Equipment ECMs /GSHP
72
+ # "Cooling COP (2.0-5.0)", #Equipment ECMs /GSHP
73
+ # "Heating COP (2.0-5.0)", #Equipment ECMs /GSHP
74
+ # "Fan Eff (80-200%)", #Equipment ECMs
75
+ # "Pump Eff (80-200%)", #Equipment ECMs
76
+ # "Fuel Type",# NaturalGas, Electric fuel switching
77
+ #
78
+ # #Existing ECMS (require costing)
79
+ # "DCV",
80
+ # "Cold Deck Reset Control",
81
+ # "Supply Air Temperature Reset",
82
+ # "Economizers"
83
+ # ]
84
+ # end
85
+ #
86
+ #
87
+ #
88
+ #
89
+ # module Parametric
90
+ # #parametric Analysis methods. Each of these methods will create a set of
91
+ # #parametric runs based on the default set in the arguments.
92
+ # #Overhangs, Thermal mass, Blind control still needs to be examined (10)
93
+ #
94
+ # #This method will do an analysis of the opaque surface conductance sensitivity and returns a string model array.
95
+ # #@author phylroy.lopez@nrcan.gc.ca
96
+ # #@param model [OpenStudio::model::Model] A model object {http://openstudio.nrel.gov/latest-c-sdk-documentation/model}
97
+ # #@param choice [String] description
98
+ # #@return [modelArray<String>]
99
+ # def self.opaque_surface_conductance_sensitivity_analysis(model,choice )
100
+ #
101
+ # case choice
102
+ # when "Ground Surfaces"
103
+ # when "Ext Wall RSI = 100"
104
+ # when "Ext Roof RSI = 100"
105
+ # when "Ext Floor RSI = 100"
106
+ # when "Window Skylight RSI = 100"
107
+ # when "No Window Solar Transmittance"
108
+ # when "No Southern Window Solar Transmittance"
109
+ # #Loads
110
+ # when "No Infiltration"
111
+ # when "No Ventilation"
112
+ # when "No Occupants"
113
+ # when "No Lighting"
114
+ # when "No Plug Loads"
115
+ # when "No Setpoint"
116
+ #
117
+ #
118
+ # end
119
+ #
120
+ # ground_boundary_conditions = ["Ground",
121
+ # "GroundFCfactorMethod",
122
+ # "GroundSlabPreprocessorAverage",
123
+ # "GroundSlabPreprocessorCore",
124
+ # "GroundSlabPreprocessorPerimeter",
125
+ # "GroundBasementPreprocessorAverageWall",
126
+ # "GroundBasementPreprocessorAverageFloor",
127
+ # "GroundBasementPreprocessorUpperWall",
128
+ # "GroundBasementPreprocessorLowerWall"
129
+ # ]
130
+ # #get non-defaulted ground surfaces.
131
+ #
132
+ # ground_surfaces = BTAP::Geometry::Surfaces::filter_by_boundary_condition(model.getSurfaces,ground_boundary_conditions)
133
+ # non_defaulted_ground_surfaces = BTAP::Geometry::Surfaces::filter_by_non_defaulted_surfaces(ground_surfaces)
134
+ #
135
+ #
136
+ #
137
+ # #create models
138
+ # modelArray = Array.new()
139
+ # #perform Solar Transmittance parametric analysis
140
+ # values.each do |value|
141
+ # model = model_in.deep_copy()
142
+ # model.building.get.setName("Ground-Floor-R-Value="+ value.to_s)
143
+ # model.set_surface_RValues(["Floor"],
144
+ # ["Ground",
145
+ # "GroundFCfactorMethod",
146
+ # "GroundSlabPreprocessorAverage",
147
+ # "GroundSlabPreprocessorCore",
148
+ # "GroundSlabPreprocessorPerimeter",
149
+ # "GroundBasementPreprocessorAverageWall",
150
+ # "GroundBasementPreprocessorAverageFloor",
151
+ # "GroundBasementPreprocessorUpperWall",
152
+ # "GroundBasementPreprocessorLowerWall"
153
+ # ],
154
+ # value)
155
+ # modelArray.push(model)
156
+ # end
157
+ # #Run Files
158
+ # self.run_models(modelArray,folder_name)
159
+ # return modelArray
160
+ # end
161
+ #
162
+ # #Performs a ground sensitivity analysis
163
+ # def self.ground_wall_rvalue_sensitivity_model_analysis(model_in, folder_name,values = [5,10,15,20,30,50,100])
164
+ # #Create RunManager
165
+ # #create models
166
+ # modelArray = Array.new()
167
+ # #perform Solar Transmittance parametric analysis
168
+ # values.each do |value|
169
+ # runname = "Ground-Wall-R-Value="+ value.to_s
170
+ # model = model_in.deep_copy()
171
+ # model.building.get.setName(runname)
172
+ # model.set_surface_RValues(["Wall"],
173
+ # ["Ground",
174
+ # "GroundFCfactorMethod",
175
+ # "GroundSlabPreprocessorAverage",
176
+ # "GroundSlabPreprocessorCore",
177
+ # "GroundSlabPreprocessorPerimeter",
178
+ # "GroundBasementPreprocessorAverageWall",
179
+ # "GroundBasementPreprocessorAverageFloor",
180
+ # "GroundBasementPreprocessorUpperWall",
181
+ # "GroundBasementPreprocessorLowerWall"
182
+ # ],
183
+ # value)
184
+ # modelArray.push(model)
185
+ # end
186
+ # #Run Files
187
+ # self.run_models(modelArray,folder_name)
188
+ # return modelArray
189
+ # end
190
+ #
191
+ #
192
+ # #This method performs a wall sensitivity analysis and returns a string model array.
193
+ # #@author phylroy.lopez@nrcan.gc.ca
194
+ # #@param model [OpenStudio::model::Model] A model object {http://openstudio.nrel.gov/latest-c-sdk-documentation/model}
195
+ # #@param folder_name [String]
196
+ # #@param values<Fixnum>
197
+ # #@return [modelArray<String>]
198
+ # def self.wall_rvalue_sensitivity_model_analysis(model, folder_name,values = [5,10,15,20,30,50,100])
199
+ # #create models
200
+ # modelArray = Array.new()
201
+ # #perform Solar Transmittance parametric analysis
202
+ # values.each do |value|
203
+ # runname = "Wall_R_Value_"+ value.to_s
204
+ # model = model.deep_copy()
205
+ # model.building.get.setName(runname)
206
+ # model.set_surface_RValues(["Wall"],["Outdoors"],value)
207
+ # modelArray.push(model)
208
+ # end
209
+ # #Run Files
210
+ # self.run_models(modelArray,folder_name)
211
+ # return modelArray
212
+ # end
213
+ #
214
+ # #This method performs a roof sensitivity analysis and returns a string model array.
215
+ # #@author phylroy.lopez@nrcan.gc.ca
216
+ # #@param model_in [OpenStudio::model::Model] A model object {http://openstudio.nrel.gov/latest-c-sdk-documentation/model}
217
+ # #@param folder_name [String]
218
+ # #@param values<Fixnum>
219
+ # #@return [modelArray<String>]
220
+ # def self.roof_rvalue_sensitivity_model_analysis(model_in, folder_name,values = [5,10,15,20,30,50,100])
221
+ # #create models
222
+ # modelArray = Array.new()
223
+ # #perform Solar Transmittance parametric analysis
224
+ # values.each do |value|
225
+ # runname = "Roof_R_Value_"+ value.to_s
226
+ # model = model_in.deep_copy()
227
+ # model.building.get.setName(runname)
228
+ # model.set_surface_RValues(["RoofCeiling"],["Outdoors"],value)
229
+ # modelArray.push(model)
230
+ # end
231
+ #
232
+ # #Run Files
233
+ # self.run_models(modelArray,folder_name)
234
+ # return modelArray
235
+ # end
236
+ #
237
+ # #This method performs a roof sensitivity analysis and returns a string model array.
238
+ # #@author phylroy.lopez@nrcan.gc.ca
239
+ # #@param modelArray<Object>
240
+ # #@param folder_name [String]
241
+ # #@return [modelArray<String>]
242
+ # def self.run_models(modelArray,folder_name)
243
+ # process_manager = BTAP::SimManager::ProcessManager.new(folder_name)
244
+ # modelArray.each do |model|
245
+ # process_manager.addModel(model)
246
+ # end
247
+ # process_manager.start_sims
248
+ # end
249
+ #
250
+ # #This method performs a glazing solar transmittance sensitivity analysis and returns a model array.
251
+ # #@author phylroy.lopez@nrcan.gc.ca
252
+ # #@param model_in [OpenStudio::model::Model] A model object {http://openstudio.nrel.gov/latest-c-sdk-documentation/model}
253
+ # #@param folder_name [String]
254
+ # #@param values<Fixnum>
255
+ # #@return [modelArray<String>]
256
+ # def self.solar_trans_sensitivity_model_analysis(model_in, folder_name, values = [0.1,0.2,0.4,0.6,0.8,1.00])
257
+ # modelArray = Array.new()
258
+ # #perform Solar Transmittance parametric analysis
259
+ # values.each do |value|
260
+ # runname = "Window-Tsol-"+ value.to_s
261
+ # model = model_in.deep_copy()
262
+ # model.building.get.setName(runname)
263
+ # model.set_subsurface_solar_transmittance(["FixedWindow","OperableWindow"],["Outdoors"],value)
264
+ # modelArray.push(model)
265
+ # end
266
+ # #Run Files
267
+ # self.run_models(modelArray,folder_name)
268
+ # return modelArray
269
+ # end
270
+ #
271
+ # #This method performs an rvalue sensitivity analysis and returns a model array.
272
+ # #@author phylroy.lopez@nrcan.gc.ca
273
+ # #@param model_in [OpenStudio::model::Model] A model object {http://openstudio.nrel.gov/latest-c-sdk-documentation/model}
274
+ # #@param folder_name [String]
275
+ # #@param values<Fixnum>
276
+ # #@return [modelArray<String>]
277
+ # def self.window_rvalue_sensitivity_model_analysis(model_in, folder_name, values = [5,10,15,20,30,50,100])
278
+ # modelArray = Array.new()
279
+ # #perform Solar Transmittance parametric analysis
280
+ # values.each do |value|
281
+ # runname = "Window-R-Value="+ value.to_s
282
+ # model = model_in.deep_copy()
283
+ # model.building.get.setName(runname)
284
+ # model.set_subsurface_RValues(["FixedWindow","OperableWindow"],["Outdoors"],value)
285
+ # modelArray.push(model)
286
+ # end
287
+ # #Run Files
288
+ # self.run_models(modelArray,folder_name)
289
+ # return modelArray
290
+ # end
291
+ #
292
+ # #This method performs a full sensitivity analysis on the wall, roof, solar-trans,window,and ground surfaces.
293
+ # #@author phylroy.lopez@nrcan.gc.ca
294
+ # #@param model [OpenStudio::model::Model] A model object {http://openstudio.nrel.gov/latest-c-sdk-documentation/model}
295
+ # #@param parent_folder [String]
296
+ # def self.full_sensitivity_analysis(model, parent_folder)
297
+ # self.wall_rvalue_sensitivity_model_analysis(model, (parent_folder + "/wall-r"))
298
+ # self.roof_rvalue_sensitivity_model_analysis(model, (parent_folder + "/roof-r"))
299
+ # self.solar_trans_sensitivity_model_analysis(model, (parent_folder + "/solar_trans"))
300
+ # self.window_rvalue_sensitivity_model_analysis(model, (parent_folder + "/window-r"))
301
+ # self.ground_wall_rvalue_sensitivity_model_analysis(model, (parent_folder + "/ground_wall-r"))
302
+ # self.ground_floor_rvalue_sensitivity_model_analysis(model, (parent_folder + "/ground-floor-r"))
303
+ # end
304
+ #
305
+ # #This method performs a full analysis (elimination and Sensitivity).
306
+ # #@author phylroy.lopez@nrcan.gc.ca
307
+ # #@param model [OpenStudio::model::Model] A model object {http://openstudio.nrel.gov/latest-c-sdk-documentation/model}
308
+ # #@param folder [String]
309
+ # def self.full_analysis(model, folder)
310
+ # FileUtils.rm_rf(folder)
311
+ # Dir::mkdir(folder) unless File.exists?(folder)
312
+ # self.full_elimination_analysis(model, folder + "/elimination")
313
+ # self.full_sensitivity_analysis(model, folder + "/sensitivity")
314
+ # end
315
+ #
316
+ # #Elimination Analysis. This will 'turn off' certain loads from the building
317
+ # #to see the effects. folder_name = the folder you wish to perform the analysis. weather_file = the path of the valid weather file.
318
+ #
319
+ # #This method performs an elimination analysis ( OA, H&C setpoints,infiltration,occupancy,lighting,plug_loads,gas_equipment, hotwater, steam, other) and returns a model array.
320
+ # #@author phylroy.lopez@nrcan.gc.ca
321
+ # #@param model_in [OpenStudio::model::Model] A model object {http://openstudio.nrel.gov/latest-c-sdk-documentation/model}
322
+ # #@param folder_name [String]
323
+ # #@return [modelArray<String>]
324
+ # def self.full_elimination_analysis(model_in, folder_name)
325
+ # modelArray = Array.new()
326
+ # #model_in.add_standard_schedules()
327
+ #
328
+ # model = model_in.deep_copy()
329
+ # model.building.get.setName("elim_outdoor_air")
330
+ # model.eliminate_from_model_outdoor_air()
331
+ # modelArray.push(model)
332
+ #
333
+ # model = model_in.deep_copy()
334
+ # model.building.get.setName("elim_H&C_setpoints")
335
+ # model.set_temp_to_free_float()
336
+ # modelArray.push(model)
337
+ #
338
+ # model = model_in.deep_copy()
339
+ # model.building.get.setName("elim_infilt")
340
+ # model.set_infiltration(0.0)
341
+ # modelArray.push(model)
342
+ #
343
+ # model = model_in.deep_copy()
344
+ # model.building.get.setName("elim_occup")
345
+ # model.set_occupancy_density(0.0)
346
+ # modelArray.push(model)
347
+ #
348
+ # model = model_in.deep_copy()
349
+ # model.building.get.setName("elim_lighting")
350
+ # model.set_lighting_power_density(0.0)
351
+ # modelArray.push(model)
352
+ #
353
+ #
354
+ # model = model_in.deep_copy()
355
+ # model.building.get.setName("elim_elec_equip")
356
+ # model.set_electric_equipment_power_density(0.0)
357
+ # modelArray.push(model)
358
+ #
359
+ # model = model_in.deep_copy()
360
+ # model.building.get.setName("elim_gas_equip")
361
+ # model.set_gas_equipment_power_density(0.0)
362
+ # modelArray.push(model)
363
+ #
364
+ # model = model_in.deep_copy()
365
+ # model.building.get.setName("elim_hot_water_equip")
366
+ # model.set_hot_water_equipment(0.0)
367
+ # modelArray.push(model)
368
+ #
369
+ # model = model_in.deep_copy()
370
+ # model.building.get.setName("elim_steam_equip")
371
+ # model.set_steam_equipment(0.0)
372
+ # modelArray.push(model)
373
+ #
374
+ # model = model_in.deep_copy()
375
+ # model.building.get.setName("elim_other_equip")
376
+ # model.set_other_equipment(0.0)
377
+ # modelArray.push(model)
378
+ #
379
+ # model = model_in.deep_copy()
380
+ # model.building.get.setName("elim_all")
381
+ # model.set_other_equipment(0.0)
382
+ # modelArray.push(model)
383
+ # #Run Files
384
+ # self.run_models(modelArray,folder_name)
385
+ # return modelArray
386
+ # end
387
+ # end #module Parametric
388
+ # end #module Analysis
389
+ # end