urbanopt-reopt 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/nightly_ci_build.yml +1 -1
- data/CHANGELOG.md +11 -0
- data/CONTRIBUTING.md +3 -3
- data/Gemfile +24 -19
- data/LICENSE.md +1 -1
- data/RDOC_MAIN.md +2 -2
- data/README.md +2 -2
- data/Rakefile +1 -1
- data/developer_nrel_key.rb +1 -1
- data/doc_templates/LICENSE.md +1 -1
- data/doc_templates/copyright_erb.txt +1 -1
- data/doc_templates/copyright_js.txt +1 -1
- data/doc_templates/copyright_ruby.txt +1 -1
- data/docs/README.md +2 -2
- data/docs/package.json +1 -1
- data/index.md +2 -2
- data/lib/urbanopt/reopt/extension.rb +1 -1
- data/lib/urbanopt/reopt/feature_report_adapter.rb +10 -11
- data/lib/urbanopt/reopt/{reopt_ghp_adapter.rb → reopt_ghp_adapter_ghp.rb} +238 -48
- data/lib/urbanopt/reopt/reopt_ghp_api.rb +3 -3
- data/lib/urbanopt/reopt/reopt_ghp_files/reopt_ghp_assumption.json +3 -3
- data/lib/urbanopt/reopt/reopt_ghp_post_processor.rb +13 -4
- data/lib/urbanopt/reopt/reopt_ghp_result.rb +145 -0
- data/lib/urbanopt/reopt/reopt_lite_api.rb +54 -13
- data/lib/urbanopt/reopt/reopt_logger.rb +1 -1
- data/lib/urbanopt/reopt/reopt_post_processor.rb +54 -18
- data/lib/urbanopt/reopt/reopt_schema/REopt-BAU-input.json +174 -0
- data/lib/urbanopt/reopt/reopt_schema/REopt-GHP-input.json +263 -95
- data/lib/urbanopt/reopt/scenario/reopt_scenario_csv.rb +1 -1
- data/lib/urbanopt/reopt/scenario_report_adapter.rb +8 -9
- data/lib/urbanopt/reopt/utilities.rb +1 -1
- data/lib/urbanopt/reopt/version.rb +2 -2
- data/lib/urbanopt/reopt.rb +3 -2
- data/lib/urbanopt/reopt_scenario.rb +1 -1
- data/lib/urbanopt-reopt.rb +1 -1
- data/urbanopt-reopt.gemspec +6 -3
- metadata +53 -9
|
@@ -1,148 +1,316 @@
|
|
|
1
1
|
{
|
|
2
|
+
"title": "URBANopt REopt GHP Inputs",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"properties": {
|
|
2
5
|
"Site": {
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
3
8
|
"latitude": {
|
|
4
|
-
|
|
5
|
-
|
|
9
|
+
"type": "number",
|
|
10
|
+
"minimum": -90,
|
|
11
|
+
"maximum": 90,
|
|
12
|
+
"description": "The approximate latitude of the site in decimal degrees."
|
|
6
13
|
},
|
|
7
14
|
"longitude": {
|
|
8
|
-
|
|
9
|
-
|
|
15
|
+
"type": "number",
|
|
16
|
+
"minimum": -180,
|
|
17
|
+
"maximum": 180,
|
|
18
|
+
"description": "The approximate longitude of the site in decimal degrees."
|
|
10
19
|
}
|
|
20
|
+
},
|
|
21
|
+
"required": [
|
|
22
|
+
"latitude",
|
|
23
|
+
"longitude"
|
|
24
|
+
]
|
|
11
25
|
},
|
|
12
26
|
"SpaceHeatingLoad": {
|
|
27
|
+
"type": "object",
|
|
28
|
+
"properties": {
|
|
13
29
|
"fuel_loads_mmbtu_per_hour": {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
"
|
|
17
|
-
|
|
30
|
+
"type": "array",
|
|
31
|
+
"items": {
|
|
32
|
+
"type": "number"
|
|
33
|
+
},
|
|
34
|
+
"description": "Fuel energy consumption for space heating at building level (8760 timeseries). Used in BAU LCCA for the GHP iteration.",
|
|
35
|
+
"note": "This parameter is required to run REopt's GHP module as per the REopt formatting requirements, but is not used to calculate URBANopt's GHP system LCCA.\nUsers can set this to values close to 0 (but have to be > 0) in the GHP scenario."
|
|
18
36
|
}
|
|
37
|
+
},
|
|
38
|
+
"required": [
|
|
39
|
+
"fuel_loads_mmbtu_per_hour"
|
|
40
|
+
]
|
|
19
41
|
},
|
|
20
42
|
"DomesticHotWaterLoad": {
|
|
43
|
+
"type": "object",
|
|
44
|
+
"properties": {
|
|
21
45
|
"fuel_loads_mmbtu_per_hour": {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
"
|
|
46
|
+
"type": "array",
|
|
47
|
+
"items": {
|
|
48
|
+
"type": "number"
|
|
49
|
+
},
|
|
50
|
+
"description": "Fuel consumption for DHW at building level (8760 timeseries). Used in LCCA per iteration context.",
|
|
51
|
+
"note": "15 min interval data do not work in GHP module. Please make sure all timeseries are 8760."
|
|
25
52
|
}
|
|
53
|
+
},
|
|
54
|
+
"required": [
|
|
55
|
+
"fuel_loads_mmbtu_per_hour"
|
|
56
|
+
]
|
|
26
57
|
},
|
|
27
58
|
"ElectricLoad": {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
59
|
+
"type": "object",
|
|
60
|
+
"properties": {
|
|
61
|
+
"loads_kw": {
|
|
62
|
+
"type": "array",
|
|
63
|
+
"items": {
|
|
64
|
+
"type": "number"
|
|
65
|
+
},
|
|
66
|
+
"description": "Building electric load (kW) for the GHP scenario (8760). Sum of secondary pump, heat pump, and ETS pump powers.",
|
|
67
|
+
"note": "15 min interval data do not work in GHP module. Please make sure all timeseries are 8760."
|
|
33
68
|
}
|
|
69
|
+
},
|
|
70
|
+
"required": [
|
|
71
|
+
"loads_kw"
|
|
72
|
+
]
|
|
34
73
|
},
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
74
|
+
"ElectricTariff": {
|
|
75
|
+
"type": "object",
|
|
76
|
+
"description": "Define electric tariff by exactly ONE of: (1) urdb_label, (2) blended_annual_energy_rate, (3) urdb_response.",
|
|
77
|
+
"properties": {
|
|
78
|
+
"urdb_label": {
|
|
79
|
+
"type": "string",
|
|
80
|
+
"description": "Label attribute of utility rate structure from https://openei.org/services/doc/rest/util_rates/?version=3"
|
|
81
|
+
},
|
|
82
|
+
"blended_annual_energy_rate": {
|
|
83
|
+
"type": "number",
|
|
84
|
+
"description": "Annual blended energy rate [$ per kWh] (total annual energy kWh / annual cost $)."
|
|
85
|
+
},
|
|
86
|
+
"urdb_response": {
|
|
87
|
+
"type": "object",
|
|
88
|
+
"description": "Utility Rate Database API JSON (if user-provided, ensure periods are zero-indexed)."
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
"oneOf": [
|
|
92
|
+
{
|
|
93
|
+
"required": [
|
|
94
|
+
"urdb_label"
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"required": [
|
|
99
|
+
"blended_annual_energy_rate"
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"required": [
|
|
104
|
+
"urdb_response"
|
|
105
|
+
]
|
|
106
|
+
}
|
|
107
|
+
]
|
|
38
108
|
},
|
|
39
109
|
"GHP": {
|
|
110
|
+
"type": "object",
|
|
111
|
+
"properties": {
|
|
40
112
|
"require_ghp_purchase": {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
"description": "choices of 0 or 1. Always set at 1 for URBANopt's LCCA"
|
|
113
|
+
"type": "number",
|
|
114
|
+
"description": "Always set to true (1) for URBANopt's LCCA."
|
|
44
115
|
},
|
|
45
116
|
"building_sqft": {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
"note": "for the GHX iteration, set building_sqft to a number close to 0 but not exactly 0"
|
|
117
|
+
"type": "number",
|
|
118
|
+
"description": "Building footprint area (sq.ft.) used to calculate hydronic loop cost.",
|
|
119
|
+
"note": "For the GHX iteration, set building_sqft to 0."
|
|
50
120
|
},
|
|
51
121
|
"heatpump_capacity_sizing_factor_on_peak_load": {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
"description": "always set to 1"
|
|
122
|
+
"type": "number",
|
|
123
|
+
"description": "Always set to 1."
|
|
55
124
|
},
|
|
56
|
-
"ghpghx_responses":{
|
|
57
|
-
|
|
58
|
-
|
|
125
|
+
"ghpghx_responses": {
|
|
126
|
+
"type": "array",
|
|
127
|
+
"minItems": 1,
|
|
128
|
+
"items": {
|
|
129
|
+
"type": "object",
|
|
130
|
+
"properties": {
|
|
131
|
+
"outputs": {
|
|
132
|
+
"type": "object",
|
|
133
|
+
"properties": {
|
|
134
|
+
"heat_pump_configuration": {
|
|
59
135
|
"type": "string",
|
|
60
|
-
"
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
"
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
"
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
136
|
+
"description": "Set as WSHP"
|
|
137
|
+
},
|
|
138
|
+
"peak_combined_heatpump_thermal_ton": {
|
|
139
|
+
"type": "number",
|
|
140
|
+
"description": "Max of GHP heating/cooling capacity (tons) from Modelica; used in GHP LCCA.",
|
|
141
|
+
"note": "In the GHX iteration, set to a small positive number (NOT 0)."
|
|
142
|
+
},
|
|
143
|
+
"number_of_boreholes": {
|
|
144
|
+
"type": "integer",
|
|
145
|
+
"description": "Count from Thermal Network sizing; used in GHX LCCA.",
|
|
146
|
+
"note": "In the GHP iteration, set to 0."
|
|
147
|
+
},
|
|
148
|
+
"length_boreholes_ft": {
|
|
149
|
+
"type": "number",
|
|
150
|
+
"description": "Borehole length (ft) from Thermal Network sizing; used in GHX LCCA.",
|
|
151
|
+
"note": "In the GHP iteration, set to 0."
|
|
152
|
+
},
|
|
153
|
+
"yearly_total_electric_consumption_series_kw": {
|
|
154
|
+
"type": "array",
|
|
155
|
+
"items": {
|
|
156
|
+
"type": "number"
|
|
157
|
+
},
|
|
158
|
+
"description": "8760 series of building total electric consumption (kW).",
|
|
159
|
+
"note": "Set to 0 for all GHP and GHX iterations."
|
|
160
|
+
},
|
|
161
|
+
"yearly_ghx_pump_electric_consumption_series_kw": {
|
|
80
162
|
"type": "array",
|
|
81
|
-
"
|
|
82
|
-
|
|
83
|
-
|
|
163
|
+
"items": {
|
|
164
|
+
"type": "number"
|
|
165
|
+
},
|
|
166
|
+
"description": "8760 series of district pump electric power (kW); used in GHX LCCA.",
|
|
167
|
+
"note": "In the GHP iteration, set to 0."
|
|
168
|
+
}
|
|
84
169
|
},
|
|
85
|
-
"
|
|
170
|
+
"required": [
|
|
171
|
+
"heat_pump_configuration",
|
|
172
|
+
"peak_combined_heatpump_thermal_ton",
|
|
173
|
+
"number_of_boreholes",
|
|
174
|
+
"length_boreholes_ft",
|
|
175
|
+
"yearly_total_electric_consumption_series_kw",
|
|
176
|
+
"yearly_ghx_pump_electric_consumption_series_kw"
|
|
177
|
+
]
|
|
178
|
+
},
|
|
179
|
+
"inputs": {
|
|
180
|
+
"type": "object",
|
|
181
|
+
"properties": {
|
|
182
|
+
"heating_thermal_load_mmbtu_per_hr": {
|
|
86
183
|
"type": "array",
|
|
87
|
-
"
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
"heating_thermal_load_mmbtu_per_hr": {
|
|
184
|
+
"items": {
|
|
185
|
+
"type": "number"
|
|
186
|
+
},
|
|
187
|
+
"description": "Required by REopt formatting; not used for URBANopt GHP LCCA. Set to near-zero positives."
|
|
188
|
+
},
|
|
189
|
+
"cooling_thermal_load_ton": {
|
|
94
190
|
"type": "array",
|
|
95
|
-
"
|
|
96
|
-
|
|
191
|
+
"items": {
|
|
192
|
+
"type": "number"
|
|
193
|
+
},
|
|
194
|
+
"description": "Required by REopt formatting; not used for URBANopt GHP LCCA. Can be zeros."
|
|
195
|
+
}
|
|
97
196
|
},
|
|
98
|
-
"
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}
|
|
197
|
+
"required": [
|
|
198
|
+
"heating_thermal_load_mmbtu_per_hr",
|
|
199
|
+
"cooling_thermal_load_ton"
|
|
200
|
+
]
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
"required": [
|
|
204
|
+
"outputs",
|
|
205
|
+
"inputs"
|
|
206
|
+
]
|
|
207
|
+
}
|
|
104
208
|
},
|
|
105
209
|
"installed_cost_heatpump_per_ton": {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
"description": "installation cost per unit (ton) of GHP"
|
|
210
|
+
"type": "number",
|
|
211
|
+
"description": "Installed cost per ton of GHP ($/ton). Optional; defaults may be applied."
|
|
109
212
|
},
|
|
110
213
|
"installed_cost_ghx_per_ft": {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
"description": "installation cost per unit (ft) of GHX"
|
|
214
|
+
"type": "number",
|
|
215
|
+
"description": "Installed cost per ft of GHX ($/ft). Optional; defaults may be applied."
|
|
114
216
|
},
|
|
115
217
|
"installed_cost_building_hydronic_loop_per_sqft": {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
"description": "installation cost per sqft of building hydronic loop"
|
|
218
|
+
"type": "number",
|
|
219
|
+
"description": "Installed cost for building hydronic loop ($/sqft of footprint). Optional; defaults may be applied."
|
|
119
220
|
},
|
|
120
221
|
"om_cost_per_sqft_year": {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
"description": "if not specified, the value is -$0.51, capturing saving from HVAC operation. Recommended setting at 0"
|
|
222
|
+
"type": "number",
|
|
223
|
+
"description": "O&M cost ($/sqft-year). Default often negative (savings); 0 recommended for positive NPV clarity."
|
|
124
224
|
},
|
|
125
225
|
"macrs_bonus_fraction": {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
226
|
+
"type": "number",
|
|
227
|
+
"minimum": 0,
|
|
228
|
+
"maximum": 1,
|
|
229
|
+
"description": "MACRS bonus fraction for GHP."
|
|
129
230
|
},
|
|
130
231
|
"macrs_itc_reduction": {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
232
|
+
"type": "number",
|
|
233
|
+
"minimum": 0,
|
|
234
|
+
"maximum": 1,
|
|
235
|
+
"description": "MACRS ITC reduction fraction."
|
|
134
236
|
},
|
|
135
237
|
"federal_itc_fraction": {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
238
|
+
"type": "number",
|
|
239
|
+
"minimum": 0,
|
|
240
|
+
"maximum": 1,
|
|
241
|
+
"description": "Investment Tax Credit fraction."
|
|
242
|
+
},
|
|
243
|
+
"avoided_capex_by_ghp_present_value": {
|
|
244
|
+
"type": "number",
|
|
245
|
+
"description": "Present value of avoided BAU capital expenses.",
|
|
246
|
+
"note": "Use to capture avoided BAU system cost when switching to GHP for accurate NPV."
|
|
139
247
|
}
|
|
248
|
+
},
|
|
249
|
+
"required": [
|
|
250
|
+
"require_ghp_purchase",
|
|
251
|
+
"building_sqft",
|
|
252
|
+
"heatpump_capacity_sizing_factor_on_peak_load",
|
|
253
|
+
"ghpghx_responses"
|
|
254
|
+
]
|
|
140
255
|
},
|
|
141
256
|
"ExistingBoiler": {
|
|
257
|
+
"type": "object",
|
|
258
|
+
"properties": {
|
|
142
259
|
"fuel_cost_per_mmbtu": {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
260
|
+
"type": "number",
|
|
261
|
+
"description": "Fuel cost for existing boiler ($/MMBtu). Required for BAU LCCA; required as formatting in GHP scenario."
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
"required": [
|
|
265
|
+
"fuel_cost_per_mmbtu"
|
|
266
|
+
]
|
|
267
|
+
},
|
|
268
|
+
"Financial": {
|
|
269
|
+
"type": "object",
|
|
270
|
+
"properties": {
|
|
271
|
+
"elec_cost_escalation_rate_fraction": {
|
|
272
|
+
"type": "number",
|
|
273
|
+
"minimum": -1,
|
|
274
|
+
"maximum": 1,
|
|
275
|
+
"default": 0.026,
|
|
276
|
+
"description": "Annual nominal utility electricity cost escalation rate."
|
|
277
|
+
},
|
|
278
|
+
"owner_discount_rate_fraction": {
|
|
279
|
+
"type": "number",
|
|
280
|
+
"minimum": 0,
|
|
281
|
+
"maximum": 1,
|
|
282
|
+
"default": 0.081,
|
|
283
|
+
"description": "Nominal host discount rate (owner-occupied)."
|
|
284
|
+
},
|
|
285
|
+
"offtaker_discount_rate_fraction": {
|
|
286
|
+
"type": "number",
|
|
287
|
+
"minimum": 0,
|
|
288
|
+
"maximum": 1,
|
|
289
|
+
"default": 0.081,
|
|
290
|
+
"description": "Nominal discount rate (third-party financed)."
|
|
291
|
+
},
|
|
292
|
+
"owner_tax_rate_fraction": {
|
|
293
|
+
"type": "number",
|
|
294
|
+
"minimum": 0,
|
|
295
|
+
"maximum": 1,
|
|
296
|
+
"default": 0.26,
|
|
297
|
+
"description": "Owner tax rate (owner-occupied case)."
|
|
298
|
+
},
|
|
299
|
+
"offtaker_tax_rate_fraction": {
|
|
300
|
+
"type": "number",
|
|
301
|
+
"minimum": 0,
|
|
302
|
+
"maximum": 1,
|
|
303
|
+
"default": 0.26,
|
|
304
|
+
"description": "Offtaker tax rate (third-party financed case)."
|
|
305
|
+
},
|
|
306
|
+
"om_cost_escalation_rate_fraction": {
|
|
307
|
+
"type": "number",
|
|
308
|
+
"minimum": -1,
|
|
309
|
+
"maximum": 1,
|
|
310
|
+
"default": 0.025,
|
|
311
|
+
"description": "Annual nominal O&M cost escalation rate."
|
|
146
312
|
}
|
|
313
|
+
}
|
|
147
314
|
}
|
|
315
|
+
}
|
|
148
316
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# *********************************************************************************
|
|
2
|
-
# URBANopt (tm), Copyright (c) Alliance for
|
|
2
|
+
# URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
|
|
3
3
|
# See also https://github.com/urbanopt/urbanopt-reopt-gem/blob/develop/LICENSE.md
|
|
4
4
|
# *********************************************************************************
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# *********************************************************************************
|
|
2
|
-
# URBANopt (tm), Copyright (c) Alliance for
|
|
2
|
+
# URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
|
|
3
3
|
# See also https://github.com/urbanopt/urbanopt-reopt-gem/blob/develop/LICENSE.md
|
|
4
4
|
# *********************************************************************************
|
|
5
5
|
|
|
@@ -211,14 +211,13 @@ module URBANopt # :nodoc:
|
|
|
211
211
|
scenario_report.distributed_generation.year_one_bill_before_tax_bau = reopt_output['outputs']['ElectricTariff']['year_one_bill_before_tax_bau'] || 0
|
|
212
212
|
scenario_report.distributed_generation.lifecycle_demand_cost_after_tax_bau = reopt_output['outputs']['ElectricTariff']['lifecycle_demand_cost_after_tax_bau'] || 0
|
|
213
213
|
scenario_report.distributed_generation.lifecycle_energy_cost_after_tax_bau = reopt_output['outputs']['ElectricTariff']['lifecycle_energy_cost_after_tax_bau'] || 0
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
end
|
|
214
|
+
|
|
215
|
+
# Additional Cost Analysis Fields (includes NPV already added above)
|
|
216
|
+
scenario_report.distributed_generation.initial_capital_costs = reopt_output['outputs']['Financial']['initial_capital_costs']
|
|
217
|
+
scenario_report.distributed_generation.initial_capital_costs_after_incentives = reopt_output['outputs']['Financial']['initial_capital_costs_after_incentives']
|
|
218
|
+
scenario_report.distributed_generation.lifecycle_capital_costs = reopt_output['outputs']['Financial']['lifecycle_capital_costs']
|
|
219
|
+
scenario_report.distributed_generation.lifecycle_fuel_costs_after_tax = reopt_output['outputs']['Financial']['lifecycle_fuel_costs_after_tax']
|
|
220
|
+
scenario_report.distributed_generation.lifecycle_elecbill_after_tax = reopt_output['outputs']['Financial']['lifecycle_elecbill_after_tax']
|
|
222
221
|
|
|
223
222
|
if reopt_output['outputs']['PV'].is_a?(Hash)
|
|
224
223
|
reopt_output['outputs']['PV'] = [reopt_output['outputs']['PV']]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# *********************************************************************************
|
|
2
|
-
# URBANopt (tm), Copyright (c) Alliance for
|
|
2
|
+
# URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
|
|
3
3
|
# See also https://github.com/urbanopt/urbanopt-reopt-gem/blob/develop/LICENSE.md
|
|
4
4
|
# *********************************************************************************
|
|
5
5
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# *********************************************************************************
|
|
2
|
-
# URBANopt (tm), Copyright (c) Alliance for
|
|
2
|
+
# URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
|
|
3
3
|
# See also https://github.com/urbanopt/urbanopt-reopt-gem/blob/develop/LICENSE.md
|
|
4
4
|
# *********************************************************************************
|
|
5
5
|
|
|
6
6
|
module URBANopt # :nodoc:
|
|
7
7
|
module REopt # :nodoc:
|
|
8
|
-
VERSION = '1.
|
|
8
|
+
VERSION = '1.2.0'.freeze
|
|
9
9
|
end
|
|
10
10
|
end
|
data/lib/urbanopt/reopt.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# *********************************************************************************
|
|
2
|
-
# URBANopt (tm), Copyright (c) Alliance for
|
|
2
|
+
# URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
|
|
3
3
|
# See also https://github.com/urbanopt/urbanopt-reopt-gem/blob/develop/LICENSE.md
|
|
4
4
|
# *********************************************************************************
|
|
5
5
|
|
|
@@ -10,5 +10,6 @@ require 'urbanopt/reopt/scenario_report_adapter'
|
|
|
10
10
|
require 'urbanopt/reopt/reopt_post_processor'
|
|
11
11
|
require 'urbanopt/reopt/version'
|
|
12
12
|
require 'urbanopt/reopt/reopt_ghp_post_processor'
|
|
13
|
-
require 'urbanopt/reopt/
|
|
13
|
+
require 'urbanopt/reopt/reopt_ghp_adapter_ghp'
|
|
14
14
|
require 'urbanopt/reopt/reopt_ghp_api'
|
|
15
|
+
require 'urbanopt/reopt/reopt_ghp_result'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# *********************************************************************************
|
|
2
|
-
# URBANopt (tm), Copyright (c) Alliance for
|
|
2
|
+
# URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
|
|
3
3
|
# See also https://github.com/urbanopt/urbanopt-reopt-gem/blob/develop/LICENSE.md
|
|
4
4
|
# *********************************************************************************
|
|
5
5
|
|
data/lib/urbanopt-reopt.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# *********************************************************************************
|
|
2
|
-
# URBANopt (tm), Copyright (c) Alliance for
|
|
2
|
+
# URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
|
|
3
3
|
# See also https://github.com/urbanopt/urbanopt-reopt-gem/blob/develop/LICENSE.md
|
|
4
4
|
# *********************************************************************************
|
|
5
5
|
|
data/urbanopt-reopt.gemspec
CHANGED
|
@@ -25,12 +25,15 @@ Gem::Specification.new do |spec|
|
|
|
25
25
|
# It would be nice to be able to use newer patches of Ruby 3.2, which would require os-extension to relax its dependency on bundler.
|
|
26
26
|
spec.required_ruby_version = '3.2.2'
|
|
27
27
|
|
|
28
|
-
spec.add_dependency 'openstudio-extension', '~> 0.
|
|
28
|
+
spec.add_dependency 'openstudio-extension', '~> 0.9.4'
|
|
29
29
|
# Matrix is in stdlib, but needs to be specifically added here for compatibility with Ruby 3.2
|
|
30
30
|
spec.add_dependency 'matrix', '~> 0.4.2'
|
|
31
|
-
spec.add_dependency 'urbanopt-scenario', '~> 1.
|
|
31
|
+
spec.add_dependency 'urbanopt-scenario', '~> 1.2.0'
|
|
32
32
|
|
|
33
|
-
spec.add_development_dependency '
|
|
33
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
|
34
|
+
spec.add_development_dependency 'rspec', '~> 3.9'
|
|
35
|
+
spec.add_development_dependency 'rubocop', '~> 1.50'
|
|
36
|
+
spec.add_development_dependency 'rubocop-performance', '~> 1.20'
|
|
34
37
|
spec.add_development_dependency 'simplecov', '~> 0.22.0'
|
|
35
38
|
spec.add_development_dependency 'simplecov-lcov', '~> 0.8.0'
|
|
36
39
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: urbanopt-reopt
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- ''
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-01-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: openstudio-extension
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 0.
|
|
19
|
+
version: 0.9.4
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 0.
|
|
26
|
+
version: 0.9.4
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: matrix
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -44,28 +44,70 @@ dependencies:
|
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: 1.
|
|
47
|
+
version: 1.2.0
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: 1.
|
|
54
|
+
version: 1.2.0
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: rake
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '13.0'
|
|
62
|
+
type: :development
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '13.0'
|
|
55
69
|
- !ruby/object:Gem::Dependency
|
|
56
70
|
name: rspec
|
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
|
58
72
|
requirements:
|
|
59
73
|
- - "~>"
|
|
60
74
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '3.
|
|
75
|
+
version: '3.9'
|
|
76
|
+
type: :development
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - "~>"
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '3.9'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: rubocop
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - "~>"
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '1.50'
|
|
90
|
+
type: :development
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - "~>"
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '1.50'
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: rubocop-performance
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - "~>"
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: '1.20'
|
|
62
104
|
type: :development
|
|
63
105
|
prerelease: false
|
|
64
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
107
|
requirements:
|
|
66
108
|
- - "~>"
|
|
67
109
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '
|
|
110
|
+
version: '1.20'
|
|
69
111
|
- !ruby/object:Gem::Dependency
|
|
70
112
|
name: simplecov
|
|
71
113
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -147,13 +189,15 @@ files:
|
|
|
147
189
|
- lib/urbanopt/reopt.rb
|
|
148
190
|
- lib/urbanopt/reopt/extension.rb
|
|
149
191
|
- lib/urbanopt/reopt/feature_report_adapter.rb
|
|
150
|
-
- lib/urbanopt/reopt/
|
|
192
|
+
- lib/urbanopt/reopt/reopt_ghp_adapter_ghp.rb
|
|
151
193
|
- lib/urbanopt/reopt/reopt_ghp_api.rb
|
|
152
194
|
- lib/urbanopt/reopt/reopt_ghp_files/reopt_ghp_assumption.json
|
|
153
195
|
- lib/urbanopt/reopt/reopt_ghp_post_processor.rb
|
|
196
|
+
- lib/urbanopt/reopt/reopt_ghp_result.rb
|
|
154
197
|
- lib/urbanopt/reopt/reopt_lite_api.rb
|
|
155
198
|
- lib/urbanopt/reopt/reopt_logger.rb
|
|
156
199
|
- lib/urbanopt/reopt/reopt_post_processor.rb
|
|
200
|
+
- lib/urbanopt/reopt/reopt_schema/REopt-BAU-input.json
|
|
157
201
|
- lib/urbanopt/reopt/reopt_schema/REopt-GHP-input.json
|
|
158
202
|
- lib/urbanopt/reopt/reopt_schema/reopt_input_schema.json
|
|
159
203
|
- lib/urbanopt/reopt/reopt_schema/reopt_output_schema.json
|