openstudio-geb 0.2.1 → 0.3.1r
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -2
- data/CHANGELOG.md +3 -0
- data/Gemfile +6 -1
- data/doc_templates/LICENSE.md +7 -21
- data/doc_templates/copyright_erb.txt +2 -32
- data/doc_templates/copyright_js.txt +2 -2
- data/doc_templates/copyright_ruby.txt +3 -33
- data/lib/measures/Add Output Variable/LICENSE.md +7 -21
- data/lib/measures/Add Output Variable/measure.rb +3 -33
- data/lib/measures/Add Output Variable/measure.xml +128 -125
- data/lib/measures/Add Output Variable/tests/AddOutputVariable_Test.rb +2 -32
- data/lib/measures/AddElectricVehicleChargingLoad/LICENSE.md +13 -1
- data/lib/measures/AddElectricVehicleChargingLoad/measure.rb +16 -52
- data/lib/measures/AddElectricVehicleChargingLoad/measure.xml +24 -23
- data/lib/measures/AddElectricVehicleChargingLoad/tests/add_electric_vehicle_charging_load_test.rb +2 -32
- data/lib/measures/AdjustThermostatSetpointsByDegreesForPeakHours/LICENSE.md +7 -21
- data/lib/measures/AdjustThermostatSetpointsByDegreesForPeakHours/README.md +22 -16
- data/lib/measures/AdjustThermostatSetpointsByDegreesForPeakHours/measure.rb +14 -35
- data/lib/measures/AdjustThermostatSetpointsByDegreesForPeakHours/measure.xml +41 -30
- data/lib/measures/AdjustThermostatSetpointsByDegreesForPeakHours/tests/AdjustThermostatSetpointsByDegreesForPeakHours_Test.rb +2 -32
- data/lib/measures/Enable Demand Controlled Ventilation/LICENSE.md +7 -21
- data/lib/measures/Enable Demand Controlled Ventilation/measure.rb +2 -32
- data/lib/measures/Enable Demand Controlled Ventilation/measure.xml +14 -13
- data/lib/measures/Enable Demand Controlled Ventilation/tests/EnableDemandControlledVentilation_Test.rb +2 -32
- data/lib/measures/GEB Metrics Report/LICENSE.md +13 -1
- data/lib/measures/GEB Metrics Report/measure.rb +2 -37
- data/lib/measures/GEB Metrics Report/measure.xml +238 -23
- data/lib/measures/GEB Metrics Report/resources/os_lib_helper_methods.rb +2 -32
- data/lib/measures/GEB Metrics Report/resources/os_lib_reporting.rb +2 -32
- data/lib/measures/GEB Metrics Report/tests/geb_metrics_report_test.rb +2 -32
- data/lib/measures/add_ceiling_fan/LICENSE.md +13 -0
- data/lib/measures/add_ceiling_fan/README.md +119 -0
- data/lib/measures/add_ceiling_fan/README.md.erb +45 -0
- data/lib/measures/add_ceiling_fan/docs/.gitkeep +0 -0
- data/lib/measures/add_ceiling_fan/measure.rb +565 -0
- data/lib/measures/add_ceiling_fan/measure.xml +226 -0
- data/lib/measures/add_ceiling_fan/tests/CZ06RV2.epw +8768 -0
- data/lib/measures/add_ceiling_fan/tests/MediumOffice-90.1-2010-ASHRAE 169-2013-5A.osm +13669 -0
- data/lib/measures/add_ceiling_fan/tests/SFD_1story_UB_UA_ASHP2_HPWH.osm +13110 -0
- data/lib/measures/add_ceiling_fan/tests/add_ceiling_fan_test.rb +82 -0
- data/lib/measures/add_chilled_water_storage_tank/LICENSE.md +13 -1
- data/lib/measures/add_chilled_water_storage_tank/measure.rb +56 -56
- data/lib/measures/add_chilled_water_storage_tank/measure.xml +201 -28
- data/lib/measures/add_chilled_water_storage_tank/tests/add_chilled_water_storage_tank_test.rb +4 -34
- data/lib/measures/add_chilled_water_storage_tank/tests/example_model.osm +8077 -21624
- data/lib/measures/add_electrochromic_window/LICENSE.md +13 -1
- data/lib/measures/add_electrochromic_window/measure.rb +2 -32
- data/lib/measures/add_electrochromic_window/measure.xml +28 -27
- data/lib/measures/add_electrochromic_window/tests/add_electrochromic_window_test.rb +2 -32
- data/lib/measures/add_exterior_blinds_and_control/LICENSE.md +13 -1
- data/lib/measures/add_exterior_blinds_and_control/measure.rb +2 -34
- data/lib/measures/add_exterior_blinds_and_control/measure.xml +15 -26
- data/lib/measures/add_exterior_blinds_and_control/tests/add_exterior_blinds_and_control_test.rb +2 -34
- data/lib/measures/add_heat_pump_water_heater/LICENSE.md +7 -21
- data/lib/measures/add_heat_pump_water_heater/measure.rb +2 -32
- data/lib/measures/add_heat_pump_water_heater/measure.xml +89 -17
- data/lib/measures/add_heat_pump_water_heater/tests/add_hpwh_test.rb +2 -32
- data/lib/measures/add_interior_blinds_and_control/LICENSE.md +13 -1
- data/lib/measures/add_interior_blinds_and_control/measure.rb +2 -32
- data/lib/measures/add_interior_blinds_and_control/measure.xml +21 -33
- data/lib/measures/add_interior_blinds_and_control/tests/add_exterior_blinds_and_control_test.rb +2 -32
- data/lib/measures/add_natural_ventilation_with_hybrid_control/LICENSE.md +13 -0
- data/lib/measures/add_natural_ventilation_with_hybrid_control/README.md +133 -0
- data/lib/measures/add_natural_ventilation_with_hybrid_control/README.md.erb +45 -0
- data/lib/measures/add_natural_ventilation_with_hybrid_control/docs/.gitkeep +0 -0
- data/lib/measures/add_natural_ventilation_with_hybrid_control/measure.rb +453 -0
- data/lib/measures/add_natural_ventilation_with_hybrid_control/measure.xml +247 -0
- data/lib/measures/add_natural_ventilation_with_hybrid_control/tests/CZ06RV2.epw +8768 -0
- data/lib/measures/add_natural_ventilation_with_hybrid_control/tests/MediumOffice-90.1-2010-ASHRAE 169-2013-5A.osm +13669 -0
- data/lib/measures/add_natural_ventilation_with_hybrid_control/tests/SmallHotel-2A.osm +42899 -0
- data/lib/measures/add_natural_ventilation_with_hybrid_control/tests/USA_NY_Buffalo.Niagara.Intl.AP.725280_TMY3.epw +8768 -0
- data/lib/measures/add_natural_ventilation_with_hybrid_control/tests/USA_TX_Houston-Bush.Intercontinental.AP.722430_TMY3.epw +8768 -0
- data/lib/measures/add_natural_ventilation_with_hybrid_control/tests/add_natural_ventilation_with_hybrid_control_test.rb +95 -0
- data/lib/measures/add_rooftop_pv_simple/LICENSE.md +7 -21
- data/lib/measures/add_rooftop_pv_simple/measure.rb +2 -32
- data/lib/measures/add_rooftop_pv_simple/measure.xml +11 -5
- data/lib/measures/add_rooftop_pv_simple/tests/add_rooftop_pv_test.rb +2 -32
- data/lib/measures/adjust_dhw_setpoint/LICENSE.md +13 -1
- data/lib/measures/adjust_dhw_setpoint/measure.rb +2 -32
- data/lib/measures/adjust_dhw_setpoint/measure.xml +34 -21
- data/lib/measures/adjust_dhw_setpoint/tests/adjust_dhw_setpoint_test.rb +2 -32
- data/lib/measures/average_ventilation_for_peak_hours/LICENSE.md +13 -1
- data/lib/measures/average_ventilation_for_peak_hours/README.md +5 -45
- data/lib/measures/average_ventilation_for_peak_hours/measure.rb +2 -32
- data/lib/measures/average_ventilation_for_peak_hours/measure.xml +24 -79
- data/lib/measures/average_ventilation_for_peak_hours/tests/average_ventilation_for_peak_hours_test.rb +2 -32
- data/lib/measures/enable_occupancy_driven_lighting/LICENSE.md +13 -1
- data/lib/measures/enable_occupancy_driven_lighting/measure.rb +2 -32
- data/lib/measures/enable_occupancy_driven_lighting/measure.xml +28 -27
- data/lib/measures/enable_occupancy_driven_lighting/tests/enable_occupancy_driven_lighting_test.rb +2 -32
- data/lib/measures/precooling/LICENSE.md +7 -21
- data/lib/measures/precooling/measure.rb +2 -33
- data/lib/measures/precooling/measure.xml +12 -11
- data/lib/measures/preheating/LICENSE.md +7 -21
- data/lib/measures/preheating/measure.rb +2 -33
- data/lib/measures/preheating/measure.xml +18 -17
- data/lib/measures/reduce_domestic_hot_water_use_for_peak_hours/LICENSE.md +13 -1
- data/lib/measures/reduce_domestic_hot_water_use_for_peak_hours/measure.rb +2 -32
- data/lib/measures/reduce_domestic_hot_water_use_for_peak_hours/measure.xml +34 -27
- data/lib/measures/reduce_domestic_hot_water_use_for_peak_hours/tests/reduce_domestic_hot_water_use_for_peak_hours_test.rb +2 -32
- data/lib/measures/reduce_epd_by_percentage_for_peak_hours/LICENSE.md +13 -1
- data/lib/measures/reduce_epd_by_percentage_for_peak_hours/README.md +3 -3
- data/lib/measures/reduce_epd_by_percentage_for_peak_hours/measure.rb +2 -32
- data/lib/measures/reduce_epd_by_percentage_for_peak_hours/measure.xml +25 -18
- data/lib/measures/reduce_epd_by_percentage_for_peak_hours/tests/reduce_epd_by_percentage_for_peak_hours_copy_test.rb +2 -32
- data/lib/measures/reduce_exterior_lighting_loads/LICENSE.md +13 -0
- data/lib/measures/reduce_exterior_lighting_loads/README.md +79 -0
- data/lib/measures/reduce_exterior_lighting_loads/README.md.erb +45 -0
- data/lib/measures/reduce_exterior_lighting_loads/docs/.gitkeep +0 -0
- data/lib/measures/reduce_exterior_lighting_loads/measure.rb +385 -0
- data/lib/measures/reduce_exterior_lighting_loads/measure.xml +195 -0
- data/lib/measures/reduce_exterior_lighting_loads/tests/CZ06RV2.epw +8768 -0
- data/lib/measures/reduce_exterior_lighting_loads/tests/SFD_1story_UB_UA_ASHP2_HPWH.osm +13110 -0
- data/lib/measures/reduce_exterior_lighting_loads/tests/example_model.osm +8077 -0
- data/lib/measures/reduce_exterior_lighting_loads/tests/reduce_exterior_lighting_loads_test.rb +81 -0
- data/lib/measures/reduce_lpd_by_percentage_for_peak_hours/LICENSE.md +13 -1
- data/lib/measures/reduce_lpd_by_percentage_for_peak_hours/measure.rb +2 -32
- data/lib/measures/reduce_lpd_by_percentage_for_peak_hours/measure.xml +30 -23
- data/lib/measures/reduce_lpd_by_percentage_for_peak_hours/tests/reduce_lpd_by_percentage_for_peak_hours_test.rb +2 -32
- data/lib/openstudio/geb/extension.rb +2 -32
- data/lib/openstudio/geb/logging.rb +2 -32
- data/lib/openstudio/geb/run.rb +2 -32
- data/lib/openstudio/geb/utilities.rb +2 -32
- data/lib/openstudio/geb/version.rb +3 -33
- data/lib/openstudio/geb.rb +2 -32
- data/lib/openstudio-geb.rb +5 -0
- data/openstudio-geb.gemspec +2 -3
- metadata +41 -8
@@ -0,0 +1,82 @@
|
|
1
|
+
# *******************************************************************************
|
2
|
+
# OpenStudio(R), Copyright (c) Alliance for Sustainable Energy, LLC.
|
3
|
+
# See also https://openstudio.net/license
|
4
|
+
# *******************************************************************************
|
5
|
+
|
6
|
+
require 'openstudio'
|
7
|
+
require 'openstudio/measure/ShowRunnerOutput'
|
8
|
+
require 'minitest/autorun'
|
9
|
+
require_relative '../measure.rb'
|
10
|
+
require 'fileutils'
|
11
|
+
require 'json'
|
12
|
+
|
13
|
+
class AddCeilingFanTest < Minitest::Test
|
14
|
+
# def setup
|
15
|
+
# end
|
16
|
+
|
17
|
+
# def teardown
|
18
|
+
# end
|
19
|
+
|
20
|
+
def test_add_ceiling_fan
|
21
|
+
# create an instance of the measure
|
22
|
+
measure = AddCeilingFan.new
|
23
|
+
|
24
|
+
# create runner with empty OSW
|
25
|
+
osw = OpenStudio::WorkflowJSON.new
|
26
|
+
runner = OpenStudio::Measure::OSRunner.new(osw)
|
27
|
+
|
28
|
+
# load the test model
|
29
|
+
translator = OpenStudio::OSVersion::VersionTranslator.new
|
30
|
+
path = "#{File.dirname(__FILE__)}/SFD_1story_UB_UA_ASHP2_HPWH.osm"
|
31
|
+
model = translator.loadModel(path)
|
32
|
+
assert(!model.empty?)
|
33
|
+
model = model.get
|
34
|
+
|
35
|
+
# get arguments
|
36
|
+
arguments = measure.arguments(model)
|
37
|
+
argument_map = OpenStudio::Measure.convertOSArgumentVectorToMap(arguments)
|
38
|
+
|
39
|
+
# create hash of argument values.
|
40
|
+
# If the argument has a default that you want to use, you don't need it in the hash
|
41
|
+
args_hash = {}
|
42
|
+
args_hash['bldg_type'] = 'commercial'
|
43
|
+
args_hash['motor_type'] = 'DC'
|
44
|
+
|
45
|
+
# populate argument with specified hash value if specified
|
46
|
+
arguments.each do |arg|
|
47
|
+
temp_arg_var = arg.clone
|
48
|
+
if args_hash.key?(arg.name)
|
49
|
+
assert(temp_arg_var.setValue(args_hash[arg.name]))
|
50
|
+
end
|
51
|
+
argument_map[arg.name] = temp_arg_var
|
52
|
+
end
|
53
|
+
|
54
|
+
# run the measure
|
55
|
+
measure.run(model, runner, argument_map)
|
56
|
+
result = runner.result
|
57
|
+
|
58
|
+
# show the output
|
59
|
+
show_output(result)
|
60
|
+
|
61
|
+
# assert that it ran correctly
|
62
|
+
assert_equal('Success', result.value.valueName)
|
63
|
+
|
64
|
+
# save the model to test output directory
|
65
|
+
output_file_path = "#{File.dirname(__FILE__)}//output/test_output.osm"
|
66
|
+
model.save(output_file_path, true)
|
67
|
+
|
68
|
+
# test run the modified model
|
69
|
+
osw = {}
|
70
|
+
osw["weather_file"] = File.join(File.dirname(__FILE__ ), "CZ06RV2.epw")
|
71
|
+
osw["seed_file"] = output_file_path
|
72
|
+
osw_path = "#{File.dirname(__FILE__)}//output/test_output.osw"
|
73
|
+
File.open(osw_path, 'w') do |f|
|
74
|
+
f << JSON.pretty_generate(osw)
|
75
|
+
end
|
76
|
+
cli_path = OpenStudio.getOpenStudioCLI
|
77
|
+
cmd = "\"#{cli_path}\" run -w \"#{osw_path}\""
|
78
|
+
puts cmd
|
79
|
+
system(cmd)
|
80
|
+
|
81
|
+
end
|
82
|
+
end
|
@@ -1 +1,13 @@
|
|
1
|
-
|
1
|
+
OpenStudio(R), Copyright (c) 2008, 2023 Alliance for Sustainable Energy, LLC.
|
2
|
+
|
3
|
+
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
4
|
+
|
5
|
+
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
6
|
+
|
7
|
+
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
8
|
+
|
9
|
+
3. Redistribution of this software, without modification, must refer to the software by the same designation. Redistribution of a modified version of this software (i) may not refer to the modified version by the same designation, or by any confusingly similar designation, and (ii) must refer to the underlying software originally provided by Alliance as “OpenStudio®”. Except to comply with the foregoing, the term “OpenStudio®”, or any confusingly similar designation may not be used to refer to any modified version of this software or any modified version of the underlying software originally provided by Alliance without the prior written consent of Alliance.
|
10
|
+
|
11
|
+
4. The name of the copyright holder(s), any contributors, the United States Government, the United States Department of Energy, or any of their employees may not be used to endorse or promote products derived from this software without specific prior written permission from the respective party.
|
12
|
+
|
13
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
@@ -1,36 +1,6 @@
|
|
1
1
|
# *******************************************************************************
|
2
|
-
# OpenStudio(R), Copyright (c)
|
3
|
-
#
|
4
|
-
# Redistribution and use in source and binary forms, with or without
|
5
|
-
# modification, are permitted provided that the following conditions are met:
|
6
|
-
#
|
7
|
-
# (1) Redistributions of source code must retain the above copyright notice,
|
8
|
-
# this list of conditions and the following disclaimer.
|
9
|
-
#
|
10
|
-
# (2) Redistributions in binary form must reproduce the above copyright notice,
|
11
|
-
# this list of conditions and the following disclaimer in the documentation
|
12
|
-
# and/or other materials provided with the distribution.
|
13
|
-
#
|
14
|
-
# (3) Neither the name of the copyright holder nor the names of any contributors
|
15
|
-
# may be used to endorse or promote products derived from this software without
|
16
|
-
# specific prior written permission from the respective party.
|
17
|
-
#
|
18
|
-
# (4) Other than as required in clauses (1) and (2), distributions in any form
|
19
|
-
# of modifications or other derivative works may not use the "OpenStudio"
|
20
|
-
# trademark, "OS", "os", or any other confusingly similar designation without
|
21
|
-
# specific prior written permission from Alliance for Sustainable Energy, LLC.
|
22
|
-
#
|
23
|
-
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
|
24
|
-
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
25
|
-
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
26
|
-
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
|
27
|
-
# UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
|
28
|
-
# THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
29
|
-
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
30
|
-
# OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
31
|
-
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
32
|
-
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
33
|
-
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
2
|
+
# OpenStudio(R), Copyright (c) Alliance for Sustainable Energy, LLC.
|
3
|
+
# See also https://openstudio.net/license
|
34
4
|
# *******************************************************************************
|
35
5
|
|
36
6
|
# insert your copyright here
|
@@ -152,12 +122,19 @@ class AddChilledWaterStorageTank < OpenStudio::Measure::ModelMeasure
|
|
152
122
|
secondary_delta_t.setDefaultValue(4.5)
|
153
123
|
args << secondary_delta_t
|
154
124
|
|
155
|
-
#
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
args <<
|
125
|
+
# make an argument for the start date of thermal storage
|
126
|
+
thermal_storage_startdate = OpenStudio::Measure::OSArgument.makeStringArgument('thermal_storage_startdate', false)
|
127
|
+
thermal_storage_startdate.setDisplayName('Start Date for thermal storage')
|
128
|
+
thermal_storage_startdate.setDescription('In MM-DD format')
|
129
|
+
thermal_storage_startdate.setDefaultValue('01-01')
|
130
|
+
args << thermal_storage_startdate
|
131
|
+
|
132
|
+
# make an argument for the end date of thermal storage
|
133
|
+
thermal_storage_enddate = OpenStudio::Measure::OSArgument.makeStringArgument('thermal_storage_enddate', false)
|
134
|
+
thermal_storage_enddate.setDisplayName('End Date for thermal storage')
|
135
|
+
thermal_storage_enddate.setDescription('In MM-DD format')
|
136
|
+
thermal_storage_enddate.setDefaultValue('12-31')
|
137
|
+
args << thermal_storage_enddate
|
161
138
|
|
162
139
|
# Make string arguments for ctes discharge times
|
163
140
|
discharge_start = OpenStudio::Measure::OSArgument.makeStringArgument('discharge_start', true)
|
@@ -259,7 +236,8 @@ class AddChilledWaterStorageTank < OpenStudio::Measure::ModelMeasure
|
|
259
236
|
tank_charge_sp = runner.getDoubleArgumentValue('tank_charge_sp', user_arguments)
|
260
237
|
primary_delta_t = runner.getStringArgumentValue('primary_delta_t', user_arguments)
|
261
238
|
secondary_delta_t = runner.getDoubleArgumentValue('secondary_delta_t', user_arguments)
|
262
|
-
|
239
|
+
thermal_storage_startdate = runner.getStringArgumentValue('thermal_storage_startdate', user_arguments)
|
240
|
+
thermal_storage_enddate = runner.getStringArgumentValue('thermal_storage_enddate', user_arguments)
|
263
241
|
discharge_start = runner.getStringArgumentValue('discharge_start', user_arguments)
|
264
242
|
discharge_end = runner.getStringArgumentValue('discharge_end', user_arguments)
|
265
243
|
charge_start = runner.getStringArgumentValue('charge_start', user_arguments)
|
@@ -279,7 +257,7 @@ class AddChilledWaterStorageTank < OpenStudio::Measure::ModelMeasure
|
|
279
257
|
end
|
280
258
|
|
281
259
|
# if_overnight: 1 or 0; wknds (if applicable to weekends): 1 or 0
|
282
|
-
def create_sch(model, sch_name, start_time, end_time,
|
260
|
+
def create_sch(model, sch_name, start_time, end_time, start_date, end_date, wknds)
|
283
261
|
day_start_time = Time.strptime("00:00", '%H:%M')
|
284
262
|
# create discharging schedule
|
285
263
|
new_sch_ruleset = OpenStudio::Model::ScheduleRuleset.new(model)
|
@@ -304,13 +282,14 @@ class AddChilledWaterStorageTank < OpenStudio::Measure::ModelMeasure
|
|
304
282
|
end
|
305
283
|
end
|
306
284
|
|
307
|
-
|
308
|
-
|
309
|
-
|
285
|
+
start_month = start_date.monthOfYear.value
|
286
|
+
start_day = start_date.dayOfMonth
|
287
|
+
end_month = end_date.monthOfYear.value
|
288
|
+
end_day = end_date.dayOfMonth
|
310
289
|
ts_rule = OpenStudio::Model::ScheduleRule.new(new_sch_ruleset, new_sch_ruleset.defaultDaySchedule)
|
311
|
-
ts_rule.setName("#{new_sch_ruleset.name} #{
|
312
|
-
ts_rule.setStartDate(
|
313
|
-
ts_rule.setEndDate(
|
290
|
+
ts_rule.setName("#{new_sch_ruleset.name} #{start_month}/#{start_day}-#{end_month}/#{end_day} Rule")
|
291
|
+
ts_rule.setStartDate(start_date)
|
292
|
+
ts_rule.setEndDate(end_date)
|
314
293
|
ts_rule.setApplyWeekdays(true)
|
315
294
|
if wknds
|
316
295
|
ts_rule.setApplyWeekends(true)
|
@@ -318,22 +297,22 @@ class AddChilledWaterStorageTank < OpenStudio::Measure::ModelMeasure
|
|
318
297
|
ts_rule.setApplyWeekends(false)
|
319
298
|
end
|
320
299
|
|
321
|
-
unless
|
300
|
+
unless start_month == 1 && start_day == 1
|
322
301
|
new_rule_day = OpenStudio::Model::ScheduleDay.new(model)
|
323
302
|
new_rule_day.addValue(OpenStudio::Time.new(0,24), 0)
|
324
303
|
new_rule = OpenStudio::Model::ScheduleRule.new(new_sch_ruleset, new_rule_day)
|
325
|
-
new_rule.setName("#{new_sch_ruleset.name} 01/01-#{
|
304
|
+
new_rule.setName("#{new_sch_ruleset.name} 01/01-#{start_month}/#{start_day} Rule")
|
326
305
|
new_rule.setStartDate(model.getYearDescription.makeDate(1, 1))
|
327
|
-
new_rule.setEndDate(model.getYearDescription.makeDate(
|
306
|
+
new_rule.setEndDate(model.getYearDescription.makeDate(start_month, start_day))
|
328
307
|
new_rule.setApplyAllDays(true)
|
329
308
|
end
|
330
309
|
|
331
|
-
unless
|
310
|
+
unless end_month == 12 && end_day == 31
|
332
311
|
new_rule_day = OpenStudio::Model::ScheduleDay.new(model)
|
333
312
|
new_rule_day.addValue(OpenStudio::Time.new(0,24), 0)
|
334
313
|
new_rule = OpenStudio::Model::ScheduleRule.new(new_sch_ruleset, new_rule_day)
|
335
|
-
new_rule.setName("#{new_sch_ruleset.name} #{
|
336
|
-
new_rule.setStartDate(model.getYearDescription.makeDate(
|
314
|
+
new_rule.setName("#{new_sch_ruleset.name} #{end_month}/#{end_day}-12/31 Rule")
|
315
|
+
new_rule.setStartDate(model.getYearDescription.makeDate(end_month, end_day))
|
337
316
|
new_rule.setEndDate(model.getYearDescription.makeDate(12, 31))
|
338
317
|
new_rule.setApplyAllDays(true)
|
339
318
|
end
|
@@ -342,7 +321,7 @@ class AddChilledWaterStorageTank < OpenStudio::Measure::ModelMeasure
|
|
342
321
|
end
|
343
322
|
|
344
323
|
if discharge_start > discharge_end
|
345
|
-
runner.
|
324
|
+
runner.registerInfo('Dischage start time is later than discharge ' \
|
346
325
|
'end time (discharge overnight). Verify schedule inputs.')
|
347
326
|
end
|
348
327
|
|
@@ -360,7 +339,28 @@ class AddChilledWaterStorageTank < OpenStudio::Measure::ModelMeasure
|
|
360
339
|
runner.registerError("Wrong energy storage objective input, can be either 'Full Storage' or 'Partial Storage'. ")
|
361
340
|
return false
|
362
341
|
end
|
342
|
+
|
343
|
+
# check date inputs
|
344
|
+
md = /(\d\d)-(\d\d)/.match(thermal_storage_startdate)
|
345
|
+
if md
|
346
|
+
thermal_storage_start_month = md[1].to_i
|
347
|
+
thermal_storage_start_day = md[2].to_i
|
348
|
+
else
|
349
|
+
runner.registerError('Start date must be in MM-DD format.')
|
350
|
+
return false
|
351
|
+
end
|
352
|
+
|
353
|
+
md = /(\d\d)-(\d\d)/.match(thermal_storage_enddate)
|
354
|
+
if md
|
355
|
+
thermal_storage_end_month = md[1].to_i
|
356
|
+
thermal_storage_end_day = md[2].to_i
|
357
|
+
else
|
358
|
+
runner.registerError('End date must be in MM-DD format.')
|
359
|
+
return false
|
360
|
+
end
|
363
361
|
|
362
|
+
thermal_storage_startdate_os = model.getYearDescription.makeDate(thermal_storage_start_month, thermal_storage_start_day)
|
363
|
+
thermal_storage_enddate_os = model.getYearDescription.makeDate(thermal_storage_end_month, thermal_storage_end_day)
|
364
364
|
|
365
365
|
# report initial condition of model
|
366
366
|
runner.registerInitialCondition("Original primary chilled water loop: #{selected_primary_loop.name}.")
|
@@ -581,8 +581,8 @@ class AddChilledWaterStorageTank < OpenStudio::Measure::ModelMeasure
|
|
581
581
|
selected_primary_loop.addDemandBranchForComponent(chw_storage_tank)
|
582
582
|
|
583
583
|
# create discharging and charging schedule and apply to chilled water tank and primary loop
|
584
|
-
discharge_sch = create_sch(model, 'Chilled water tank discharge schedule', discharge_start, discharge_end,
|
585
|
-
charge_sch = create_sch(model, 'Chilled water tank charge schedule', charge_start, charge_end,
|
584
|
+
discharge_sch = create_sch(model, 'Chilled water tank discharge schedule', discharge_start, discharge_end, thermal_storage_startdate_os, thermal_storage_enddate_os, wknds)
|
585
|
+
charge_sch = create_sch(model, 'Chilled water tank charge schedule', charge_start, charge_end, thermal_storage_startdate_os, thermal_storage_enddate_os, wknds)
|
586
586
|
chw_storage_tank.setUseSideAvailabilitySchedule(discharge_sch)
|
587
587
|
chw_storage_tank.setSourceSideAvailabilitySchedule(charge_sch)
|
588
588
|
avm_sch = OpenStudio::Model::AvailabilityManagerScheduled.new(model)
|
@@ -605,7 +605,7 @@ class AddChilledWaterStorageTank < OpenStudio::Measure::ModelMeasure
|
|
605
605
|
clg_op_scheme_tank.addEquipment(chw_storage_tank)
|
606
606
|
clg_op_scheme_sec_chiller = OpenStudio::Model::PlantEquipmentOperationCoolingLoad.new(model)
|
607
607
|
clg_op_scheme_sec_chiller.addEquipment(sec_chiller)
|
608
|
-
undischarge_sch = create_sch(model, 'Chilled water tank not discharge schedule', discharge_end, discharge_start,
|
608
|
+
undischarge_sch = create_sch(model, 'Chilled water tank not discharge schedule', discharge_end, discharge_start, thermal_storage_startdate_os, thermal_storage_enddate_os, wknds)
|
609
609
|
# in this way, sequence in E+ will be tank first then chiller. In fact the sequence here doesn't matter as each schema is coupled with schedule
|
610
610
|
sec_loop.setPlantEquipmentOperationCoolingLoad(clg_op_scheme_tank)
|
611
611
|
sec_loop.setPlantEquipmentOperationCoolingLoadSchedule(discharge_sch)
|
@@ -1,9 +1,10 @@
|
|
1
|
+
<?xml version="1.0"?>
|
1
2
|
<measure>
|
2
3
|
<schema_version>3.0</schema_version>
|
3
4
|
<name>add_chilled_water_storage_tank</name>
|
4
5
|
<uid>8aafeff8-7798-43ab-8075-9cfe59a611b8</uid>
|
5
|
-
<version_id>
|
6
|
-
<version_modified>
|
6
|
+
<version_id>762ec571-fcf5-4617-a95a-5aaa2951f61d</version_id>
|
7
|
+
<version_modified>20230719T172112Z</version_modified>
|
7
8
|
<xml_checksum>6394841D</xml_checksum>
|
8
9
|
<class_name>AddChilledWaterStorageTank</class_name>
|
9
10
|
<display_name>Add Chilled Water Storage Tank</display_name>
|
@@ -11,16 +12,176 @@
|
|
11
12
|
<modeler_description>This measure adds a chilled water storage tank and links it to an existing chilled water loop.</modeler_description>
|
12
13
|
<arguments>
|
13
14
|
<argument>
|
14
|
-
<name>
|
15
|
-
<display_name>
|
16
|
-
<
|
15
|
+
<name>tank_vol</name>
|
16
|
+
<display_name>Thermal storage chilled water tank volume in m3</display_name>
|
17
|
+
<type>Double</type>
|
18
|
+
<required>false</required>
|
19
|
+
<model_dependent>false</model_dependent>
|
20
|
+
</argument>
|
21
|
+
<argument>
|
22
|
+
<name>objective</name>
|
23
|
+
<display_name>Select Energy Storage Objective:</display_name>
|
24
|
+
<type>Choice</type>
|
25
|
+
<required>true</required>
|
26
|
+
<model_dependent>false</model_dependent>
|
27
|
+
<default_value>Partial Storage</default_value>
|
28
|
+
<choices>
|
29
|
+
<choice>
|
30
|
+
<value>Full Storage</value>
|
31
|
+
<display_name>Full Storage</display_name>
|
32
|
+
</choice>
|
33
|
+
<choice>
|
34
|
+
<value>Partial Storage</value>
|
35
|
+
<display_name>Partial Storage</display_name>
|
36
|
+
</choice>
|
37
|
+
</choices>
|
38
|
+
</argument>
|
39
|
+
<argument>
|
40
|
+
<name>selected_primary_loop_name</name>
|
41
|
+
<display_name>Select Primary Loop:</display_name>
|
42
|
+
<description>Error: No Cooling Loop Found</description>
|
43
|
+
<type>Choice</type>
|
44
|
+
<required>false</required>
|
45
|
+
<model_dependent>false</model_dependent>
|
46
|
+
<default_value></default_value>
|
47
|
+
<choices>
|
48
|
+
<choice>
|
49
|
+
<value></value>
|
50
|
+
<display_name></display_name>
|
51
|
+
</choice>
|
52
|
+
</choices>
|
53
|
+
</argument>
|
54
|
+
<argument>
|
55
|
+
<name>primary_loop_sp</name>
|
56
|
+
<display_name>Primary Loop (charging) Setpoint Temperature degree C:</display_name>
|
57
|
+
<type>Double</type>
|
58
|
+
<required>true</required>
|
59
|
+
<model_dependent>false</model_dependent>
|
60
|
+
<default_value>6.7</default_value>
|
61
|
+
</argument>
|
62
|
+
<argument>
|
63
|
+
<name>secondary_loop_sp</name>
|
64
|
+
<display_name>Secondary Loop (discharging) Setpoint Temperature degree C:</display_name>
|
65
|
+
<type>Double</type>
|
66
|
+
<required>true</required>
|
67
|
+
<model_dependent>false</model_dependent>
|
68
|
+
<default_value>6.7</default_value>
|
69
|
+
</argument>
|
70
|
+
<argument>
|
71
|
+
<name>tank_charge_sp</name>
|
72
|
+
<display_name>Chilled Water Tank Setpoint Temperature degree C:</display_name>
|
73
|
+
<type>Double</type>
|
74
|
+
<required>true</required>
|
75
|
+
<model_dependent>false</model_dependent>
|
76
|
+
<default_value>6.7</default_value>
|
77
|
+
</argument>
|
78
|
+
<argument>
|
79
|
+
<name>primary_delta_t</name>
|
80
|
+
<display_name>Loop Design Temperature Difference degree C:</display_name>
|
81
|
+
<description>Enter numeric value to adjust selected loop settings.</description>
|
17
82
|
<type>String</type>
|
18
83
|
<required>true</required>
|
19
84
|
<model_dependent>false</model_dependent>
|
85
|
+
<default_value>Use Existing Loop Value</default_value>
|
86
|
+
</argument>
|
87
|
+
<argument>
|
88
|
+
<name>secondary_delta_t</name>
|
89
|
+
<display_name>Secondary Loop Design Temperature Difference degree C</display_name>
|
90
|
+
<type>Double</type>
|
91
|
+
<required>true</required>
|
92
|
+
<model_dependent>false</model_dependent>
|
93
|
+
<default_value>4.5</default_value>
|
94
|
+
</argument>
|
95
|
+
<argument>
|
96
|
+
<name>thermal_storage_startdate</name>
|
97
|
+
<display_name>Start Date for thermal storage</display_name>
|
98
|
+
<description>In MM-DD format</description>
|
99
|
+
<type>String</type>
|
100
|
+
<required>false</required>
|
101
|
+
<model_dependent>false</model_dependent>
|
102
|
+
<default_value>01-01</default_value>
|
103
|
+
</argument>
|
104
|
+
<argument>
|
105
|
+
<name>thermal_storage_enddate</name>
|
106
|
+
<display_name>End Date for thermal storage</display_name>
|
107
|
+
<description>In MM-DD format</description>
|
108
|
+
<type>String</type>
|
109
|
+
<required>false</required>
|
110
|
+
<model_dependent>false</model_dependent>
|
111
|
+
<default_value>12-31</default_value>
|
112
|
+
</argument>
|
113
|
+
<argument>
|
114
|
+
<name>discharge_start</name>
|
115
|
+
<display_name>Enter Starting Time for Chilled Water Tank Discharge:</display_name>
|
116
|
+
<description>Use 24 hour format (HR:MM)</description>
|
117
|
+
<type>String</type>
|
118
|
+
<required>true</required>
|
119
|
+
<model_dependent>false</model_dependent>
|
120
|
+
<default_value>08:00</default_value>
|
121
|
+
</argument>
|
122
|
+
<argument>
|
123
|
+
<name>discharge_end</name>
|
124
|
+
<display_name>Enter End Time for Chilled Water Tank Discharge:</display_name>
|
125
|
+
<description>Use 24 hour format (HR:MM)</description>
|
126
|
+
<type>String</type>
|
127
|
+
<required>true</required>
|
128
|
+
<model_dependent>false</model_dependent>
|
129
|
+
<default_value>21:00</default_value>
|
130
|
+
</argument>
|
131
|
+
<argument>
|
132
|
+
<name>charge_start</name>
|
133
|
+
<display_name>Enter Starting Time for Chilled Water Tank charge:</display_name>
|
134
|
+
<description>Use 24 hour format (HR:MM)</description>
|
135
|
+
<type>String</type>
|
136
|
+
<required>true</required>
|
137
|
+
<model_dependent>false</model_dependent>
|
138
|
+
<default_value>23:00</default_value>
|
139
|
+
</argument>
|
140
|
+
<argument>
|
141
|
+
<name>charge_end</name>
|
142
|
+
<display_name>Enter End Time for Chilled Water Tank charge:</display_name>
|
143
|
+
<description>Use 24 hour format (HR:MM)</description>
|
144
|
+
<type>String</type>
|
145
|
+
<required>true</required>
|
146
|
+
<model_dependent>false</model_dependent>
|
147
|
+
<default_value>07:00</default_value>
|
148
|
+
</argument>
|
149
|
+
<argument>
|
150
|
+
<name>wknds</name>
|
151
|
+
<display_name>Allow Chilled Water Tank Work on Weekends</display_name>
|
152
|
+
<type>Boolean</type>
|
153
|
+
<required>true</required>
|
154
|
+
<model_dependent>false</model_dependent>
|
155
|
+
<default_value>false</default_value>
|
156
|
+
<choices>
|
157
|
+
<choice>
|
158
|
+
<value>true</value>
|
159
|
+
<display_name>true</display_name>
|
160
|
+
</choice>
|
161
|
+
<choice>
|
162
|
+
<value>false</value>
|
163
|
+
<display_name>false</display_name>
|
164
|
+
</choice>
|
165
|
+
</choices>
|
166
|
+
</argument>
|
167
|
+
<argument>
|
168
|
+
<name>run_output_path</name>
|
169
|
+
<display_name>Output path for tank sizing run (if tank volume is not provided)</display_name>
|
170
|
+
<type>Path</type>
|
171
|
+
<required>false</required>
|
172
|
+
<model_dependent>false</model_dependent>
|
173
|
+
<default_value>"."</default_value>
|
174
|
+
</argument>
|
175
|
+
<argument>
|
176
|
+
<name>epw_path</name>
|
177
|
+
<display_name>epw file path for tank sizing run (if tank volume is not provided)</display_name>
|
178
|
+
<type>Path</type>
|
179
|
+
<required>false</required>
|
180
|
+
<model_dependent>false</model_dependent>
|
20
181
|
</argument>
|
21
182
|
</arguments>
|
22
|
-
<outputs/>
|
23
|
-
<provenances/>
|
183
|
+
<outputs />
|
184
|
+
<provenances />
|
24
185
|
<tags>
|
25
186
|
<tag>HVAC.Cooling</tag>
|
26
187
|
</tags>
|
@@ -62,6 +223,24 @@
|
|
62
223
|
</attribute>
|
63
224
|
</attributes>
|
64
225
|
<files>
|
226
|
+
<file>
|
227
|
+
<filename>README.md.erb</filename>
|
228
|
+
<filetype>erb</filetype>
|
229
|
+
<usage_type>readmeerb</usage_type>
|
230
|
+
<checksum>703C9964</checksum>
|
231
|
+
</file>
|
232
|
+
<file>
|
233
|
+
<filename>.gitkeep</filename>
|
234
|
+
<filetype>gitkeep</filetype>
|
235
|
+
<usage_type>doc</usage_type>
|
236
|
+
<checksum>00000000</checksum>
|
237
|
+
</file>
|
238
|
+
<file>
|
239
|
+
<filename>example_model.osm</filename>
|
240
|
+
<filetype>osm</filetype>
|
241
|
+
<usage_type>test</usage_type>
|
242
|
+
<checksum>53D14E69</checksum>
|
243
|
+
</file>
|
65
244
|
<file>
|
66
245
|
<version>
|
67
246
|
<software_program>OpenStudio</software_program>
|
@@ -71,43 +250,37 @@
|
|
71
250
|
<filename>measure.rb</filename>
|
72
251
|
<filetype>rb</filetype>
|
73
252
|
<usage_type>script</usage_type>
|
74
|
-
<checksum>
|
253
|
+
<checksum>EFE2DEC1</checksum>
|
75
254
|
</file>
|
76
255
|
<file>
|
77
256
|
<filename>LICENSE.md</filename>
|
78
257
|
<filetype>md</filetype>
|
79
258
|
<usage_type>license</usage_type>
|
80
|
-
<checksum>
|
259
|
+
<checksum>BFFB1AA6</checksum>
|
81
260
|
</file>
|
82
261
|
<file>
|
83
|
-
<filename>
|
84
|
-
<filetype>
|
85
|
-
<usage_type>
|
86
|
-
<checksum>
|
262
|
+
<filename>add_chilled_water_storage_tank_test.rb</filename>
|
263
|
+
<filetype>rb</filetype>
|
264
|
+
<usage_type>test</usage_type>
|
265
|
+
<checksum>AC813F36</checksum>
|
87
266
|
</file>
|
88
267
|
<file>
|
89
|
-
<filename
|
90
|
-
<filetype>
|
91
|
-
<usage_type>
|
92
|
-
<checksum>
|
268
|
+
<filename>README.md</filename>
|
269
|
+
<filetype>md</filetype>
|
270
|
+
<usage_type>readme</usage_type>
|
271
|
+
<checksum>107C2731</checksum>
|
93
272
|
</file>
|
94
273
|
<file>
|
95
|
-
<filename>
|
96
|
-
<filetype>
|
274
|
+
<filename>CZ06RV2.epw</filename>
|
275
|
+
<filetype>epw</filetype>
|
97
276
|
<usage_type>test</usage_type>
|
98
|
-
<checksum>
|
277
|
+
<checksum>52282D70</checksum>
|
99
278
|
</file>
|
100
279
|
<file>
|
101
|
-
<filename>
|
280
|
+
<filename>restaurant.osm</filename>
|
102
281
|
<filetype>osm</filetype>
|
103
282
|
<usage_type>test</usage_type>
|
104
|
-
<checksum>
|
105
|
-
</file>
|
106
|
-
<file>
|
107
|
-
<filename>README.md</filename>
|
108
|
-
<filetype>md</filetype>
|
109
|
-
<usage_type>readme</usage_type>
|
110
|
-
<checksum>1EBF4EB5</checksum>
|
283
|
+
<checksum>75E857EB</checksum>
|
111
284
|
</file>
|
112
285
|
</files>
|
113
286
|
</measure>
|
data/lib/measures/add_chilled_water_storage_tank/tests/add_chilled_water_storage_tank_test.rb
CHANGED
@@ -1,36 +1,6 @@
|
|
1
1
|
# *******************************************************************************
|
2
|
-
# OpenStudio(R), Copyright (c)
|
3
|
-
#
|
4
|
-
# Redistribution and use in source and binary forms, with or without
|
5
|
-
# modification, are permitted provided that the following conditions are met:
|
6
|
-
#
|
7
|
-
# (1) Redistributions of source code must retain the above copyright notice,
|
8
|
-
# this list of conditions and the following disclaimer.
|
9
|
-
#
|
10
|
-
# (2) Redistributions in binary form must reproduce the above copyright notice,
|
11
|
-
# this list of conditions and the following disclaimer in the documentation
|
12
|
-
# and/or other materials provided with the distribution.
|
13
|
-
#
|
14
|
-
# (3) Neither the name of the copyright holder nor the names of any contributors
|
15
|
-
# may be used to endorse or promote products derived from this software without
|
16
|
-
# specific prior written permission from the respective party.
|
17
|
-
#
|
18
|
-
# (4) Other than as required in clauses (1) and (2), distributions in any form
|
19
|
-
# of modifications or other derivative works may not use the "OpenStudio"
|
20
|
-
# trademark, "OS", "os", or any other confusingly similar designation without
|
21
|
-
# specific prior written permission from Alliance for Sustainable Energy, LLC.
|
22
|
-
#
|
23
|
-
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
|
24
|
-
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
25
|
-
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
26
|
-
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
|
27
|
-
# UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
|
28
|
-
# THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
29
|
-
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
30
|
-
# OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
31
|
-
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
32
|
-
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
33
|
-
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
2
|
+
# OpenStudio(R), Copyright (c) Alliance for Sustainable Energy, LLC.
|
3
|
+
# See also https://openstudio.net/license
|
34
4
|
# *******************************************************************************
|
35
5
|
|
36
6
|
# insert your copyright here
|
@@ -72,7 +42,8 @@ class AddChilledWaterStorageTankTest < Minitest::Test
|
|
72
42
|
args_hash = {}
|
73
43
|
args_hash['run_output_path'] = File.join(File.dirname(__FILE__ ), "output")
|
74
44
|
args_hash['epw_path'] = File.join(File.dirname(__FILE__ ), "CZ06RV2.epw")
|
75
|
-
|
45
|
+
args_hash['thermal_storage_startdate'] = '04-01'
|
46
|
+
args_hash['thermal_storage_enddate'] = '10-31'
|
76
47
|
args_hash['objective'] = 'Full Storage'
|
77
48
|
|
78
49
|
# populate argument with specified hash value if specified
|
@@ -93,7 +64,6 @@ class AddChilledWaterStorageTankTest < Minitest::Test
|
|
93
64
|
|
94
65
|
# assert that it ran correctly
|
95
66
|
assert_equal('Success', result.value.valueName)
|
96
|
-
assert(result.info.size == 1)
|
97
67
|
assert(result.warnings.empty?)
|
98
68
|
|
99
69
|
# save the model to test output directory
|