From 707d0fd36df09e092e0fa57662a71b5c4910a55e Mon Sep 17 00:00:00 2001 From: urwahah Date: Wed, 26 Aug 2026 12:40:49 -0700 Subject: [PATCH 1/6] add york YVWH HRC --- data/input/equipment_data.JSON | 82 ++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/data/input/equipment_data.JSON b/data/input/equipment_data.JSON index 52e803d..ca1965b 100644 --- a/data/input/equipment_data.JSON +++ b/data/input/equipment_data.JSON @@ -206,6 +206,88 @@ } } }, + { + "eq_id": "hr06", + "eq_type": "hr_heat_pump", + "eq_subtype": "water_to_water", + "eq_calc_type": "specific", + "eq_manufacturer": "York", + "model": "YVWH", + "nominal_capacity_W": 1320000, + "fuel": "electricity", + "refrigerant": "R-515B", + "refrigerant_weight_g": 420000, + "refrigerant_gwp": 292, + "dimensions": { + "length": 4.2, + "width": 2.2, + "height": 2.5 + }, + "operating_weight_g": 10792000, + "electrical": { + "mca": 1100, + "voltage": 460, + "phase": 3 + }, + "performance": { + "heating": { + "capacity_W": [373400, 439600, 549500, 586200, 732700, 879200, 1025800, 1099000, 1172300, 1318900, 1377500], + "leaving_supply_t": { + "57.2": { + "cop": [4.374, 4.374, 4.374, 4.176, 4.176, 4.176, 4.176, 4.176, 4.072, 4.072, 4.072] + }, + "76.7": { + "cop": [2.327, 2.473, 2.43, 2.43, 2.54, 2.685, 2.736, 2.738, 2.738, 2.736, 2.754] + } + }, + "constraints": { + "min_temp_C": 57.2, + "max_temp_C": 76.7 + } + } + } + }, + { + "eq_id": "hr07", + "eq_type": "hr_heat_pump", + "eq_subtype": "water_to_water", + "eq_calc_type": "specific", + "eq_manufacturer": "York", + "model": "YVWH", + "nominal_capacity_W": 1320000, + "fuel": "electricity", + "refrigerant": "R-1234ze", + "refrigerant_weight_g": 420000, + "refrigerant_gwp": 1, + "dimensions": { + "length": 4.2, + "width": 2.2, + "height": 2.5 + }, + "operating_weight_g": 10792000, + "electrical": { + "mca": 1100, + "voltage": 460, + "phase": 3 + }, + "performance": { + "heating": { + "capacity_W": [373400, 439600, 549500, 586200, 732700, 879200, 1025800, 1099000, 1172300, 1318900, 1377500], + "leaving_supply_t": { + "57.2": { + "cop": [4.374, 4.374, 4.374, 4.176, 4.176, 4.176, 4.176, 4.176, 4.072, 4.072, 4.072] + }, + "76.7": { + "cop": [2.327, 2.473, 2.43, 2.43, 2.54, 2.685, 2.736, 2.738, 2.738, 2.736, 2.754] + } + }, + "constraints": { + "min_temp_C": 57.2, + "max_temp_C": 76.7 + } + } + } + }, { "eq_id": "hp01", "eq_type": "heat_pump", From fb06481dec41824626d10ae3fdc1f4a5aaf82301 Mon Sep 17 00:00:00 2001 From: urwahah Date: Sun, 30 Aug 2026 20:34:09 -0700 Subject: [PATCH 2/6] add flow CO2 AWHP --- data/input/equipment_data.JSON | 84 ++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/data/input/equipment_data.JSON b/data/input/equipment_data.JSON index ca1965b..fc9464a 100644 --- a/data/input/equipment_data.JSON +++ b/data/input/equipment_data.JSON @@ -811,6 +811,90 @@ } } }, + { + "eq_id": "hp08", + "eq_type": "heat_pump", + "eq_subtype": "air_to_water", + "eq_calc_type": "specific", + "eq_manufacturer": "Flow", + "model": "ANSWR C", + "nominal_capacity_W": 70300, + "fuel": "electricity", + "refrigerant": "R-744", + "refrigerant_weight_g": 26000, + "refrigerant_gwp": 1, + "dimensions": { + "length": 2.26, + "width": 0.81, + "height": 1.93 + }, + "operating_weight_g": 1695075, + "electrical": { + "mca": 120, + "voltage": 460, + "phase": 3 + }, + "performance": { + "heating": { + "t_out_C": [-15, -8.3, 8.3], + "leaving_supply_t": { + "40": { + "cop": [2.35, 2.67, 3.95], + "capacity_W": [80900, 88500, 105200], + "constraints": { + "min_temp_C": -40, + "max_temp_C": 35 + } + }, + "49": { + "cop": [2.03, 2.28, 3.22], + "capacity_W": [80300, 87900, 103400], + "constraints": { + "min_temp_C": -23, + "max_temp_C": 35 + } + }, + "60": { + "cop": [1.8, 1.87, 2.4], + "capacity_W": [80000, 86800, 98500], + "constraints": { + "min_temp_C": -10, + "max_temp_C": 35 + } + }, + "82": { + "cop": [1.34, 1.46, 1.63], + "capacity_W": [61800, 65400, 66800], + "constraints": { + "min_temp_C": -10, + "max_temp_C": 35 + } + } + }, + "constraints": { + "min_temp_C": 40, + "max_temp_C": 82 + } + }, + "cooling": { + "t_out_C": [4.4, 15.6, 26.7, 37.8, 48.9], + "leaving_supply_t": { + "6.7": { + "cop": [5.05, 5.48, 3.42, 2.58, 1.87], + "capacity_W": [66800, 66800, 66800, 65200, 60600], + "constraints": { + "min_temp_C": -17, + "max_temp_C": 49 + } + } + }, + "constraints": { + "min_temp_C": 6.7, + "max_temp_C": 6.7 + } + } + } + }, { "eq_id": "bo01", "eq_type": "backup_heating", From fe3c8fd89c71bd7a746f0f436bf66e487be3d149 Mon Sep 17 00:00:00 2001 From: urwahah Date: Wed, 2 Sep 2026 16:08:46 -0700 Subject: [PATCH 3/6] add scenarios & groups --- data/input/equipment_data.JSON | 95 ++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/data/input/equipment_data.JSON b/data/input/equipment_data.JSON index fc9464a..4df7b92 100644 --- a/data/input/equipment_data.JSON +++ b/data/input/equipment_data.JSON @@ -1414,6 +1414,91 @@ "awhp_sizing_priority": "heating", "backup_heating": "res02", "chiller": "ch02" + }, + { + "eq_scen_id": "eq_scenario_18", + "eq_scen_name": "100% R410A AWHP (H+C)+Elec Backup", + "hr_wwhp": null, + "hr_wwhp_performance_model": "interpolate_HHWST", + "hr_wwhp_h_supply_t": 48.9, + "awhp": "hp04", + "awhp_performance_model": "interpolate_HHWST_fixed", + "awhp_sizing_mode": "integer_sizing_peak_load", + "awhp_sizing_value": 1, + "awhp_redundancy": 1, + "awhp_h_supply_t": 50, + "awhp_use_cooling": true, + "awhp_sizing_priority": "heating", + "backup_heating": "res02", + "chiller": "ch02" + }, + { + "eq_scen_id": "eq_scenario_19", + "eq_scen_name": "100% R454B AWHP (H+C)+Elec Backup", + "hr_wwhp": null, + "hr_wwhp_performance_model": "interpolate_HHWST", + "hr_wwhp_h_supply_t": 48.9, + "awhp": "hp06", + "awhp_performance_model": "interpolate_HHWST_fixed", + "awhp_sizing_mode": "integer_sizing_peak_load", + "awhp_sizing_value": 1, + "awhp_redundancy": 1, + "awhp_h_supply_t": 50, + "awhp_use_cooling": true, + "awhp_sizing_priority": "heating", + "backup_heating": "res02", + "chiller": "ch02" + }, + { + "eq_scen_id": "eq_scenario_20", + "eq_scen_name": "100% CO2 AWHP (H+C)+Elec Backup", + "hr_wwhp": null, + "hr_wwhp_performance_model": "interpolate_HHWST", + "hr_wwhp_h_supply_t": 48.9, + "awhp": "hp08", + "awhp_performance_model": "interpolate_HHWST_fixed", + "awhp_sizing_mode": "integer_sizing_peak_load", + "awhp_sizing_value": 1, + "awhp_redundancy": 1, + "awhp_h_supply_t": 40, + "awhp_use_cooling": true, + "awhp_sizing_priority": "heating", + "backup_heating": "res02", + "chiller": "ch02" + }, + { + "eq_scen_id": "eq_scenario_21", + "eq_scen_name": "R-515B HR WWHP+100% AWHP (H+C)+Elec Backup", + "hr_wwhp": "hr06", + "hr_wwhp_performance_model": "interpolate_HHWST", + "hr_wwhp_h_supply_t": 57.2, + "awhp": "hp01", + "awhp_performance_model": "interpolate_HHWST_fixed", + "awhp_sizing_mode": "integer_sizing_peak_load", + "awhp_sizing_value": 1, + "awhp_redundancy": 1, + "awhp_h_supply_t": 38, + "awhp_use_cooling": true, + "awhp_sizing_priority": "heating", + "backup_heating": "res02", + "chiller": "ch02" + }, + { + "eq_scen_id": "eq_scenario_22", + "eq_scen_name": "R-1234ze HR WWHP+100% AWHP (H+C)+Elec Backup", + "hr_wwhp": "hr07", + "hr_wwhp_performance_model": "interpolate_HHWST", + "hr_wwhp_h_supply_t": 57.2, + "awhp": "hp01", + "awhp_performance_model": "interpolate_HHWST_fixed", + "awhp_sizing_mode": "integer_sizing_peak_load", + "awhp_sizing_value": 1, + "awhp_redundancy": 1, + "awhp_h_supply_t": 38, + "awhp_use_cooling": true, + "awhp_sizing_priority": "heating", + "backup_heating": "res02", + "chiller": "ch02" } ], "scenario_groups": [ @@ -1436,6 +1521,16 @@ "group_id": "hhw_supply_temps", "group_name": "HHW Supply Temps", "scenario_ids": ["eq_scenario_4", "eq_scenario_13", "eq_scenario_14", "eq_scenario_5", "eq_scenario_15"] + }, + { + "group_id": "awhp_refrigerant_types", + "group_name": "Varying AWHP Refrigerant", + "scenario_ids": ["eq_scenario_18", "eq_scenario_19", "eq_scenario_20"] + }, + { + "group_id": "wwhp_refrigerant_types", + "group_name": "Varying WWHP Refrigerant", + "scenario_ids": ["eq_scenario_21", "eq_scenario_22"] } ] } \ No newline at end of file From 70d8e58d7e1828b7daca1a18537edd126d4ab40c Mon Sep 17 00:00:00 2001 From: urwahah Date: Wed, 2 Sep 2026 18:25:35 -0700 Subject: [PATCH 4/6] update eq_scen ids --- data/input/equipment_data.JSON | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/data/input/equipment_data.JSON b/data/input/equipment_data.JSON index 4df7b92..c70f04a 100644 --- a/data/input/equipment_data.JSON +++ b/data/input/equipment_data.JSON @@ -1416,7 +1416,7 @@ "chiller": "ch02" }, { - "eq_scen_id": "eq_scenario_18", + "eq_scen_id": "eq_scenario_19", "eq_scen_name": "100% R410A AWHP (H+C)+Elec Backup", "hr_wwhp": null, "hr_wwhp_performance_model": "interpolate_HHWST", @@ -1433,7 +1433,7 @@ "chiller": "ch02" }, { - "eq_scen_id": "eq_scenario_19", + "eq_scen_id": "eq_scenario_20", "eq_scen_name": "100% R454B AWHP (H+C)+Elec Backup", "hr_wwhp": null, "hr_wwhp_performance_model": "interpolate_HHWST", @@ -1450,7 +1450,7 @@ "chiller": "ch02" }, { - "eq_scen_id": "eq_scenario_20", + "eq_scen_id": "eq_scenario_21", "eq_scen_name": "100% CO2 AWHP (H+C)+Elec Backup", "hr_wwhp": null, "hr_wwhp_performance_model": "interpolate_HHWST", @@ -1467,7 +1467,7 @@ "chiller": "ch02" }, { - "eq_scen_id": "eq_scenario_21", + "eq_scen_id": "eq_scenario_22", "eq_scen_name": "R-515B HR WWHP+100% AWHP (H+C)+Elec Backup", "hr_wwhp": "hr06", "hr_wwhp_performance_model": "interpolate_HHWST", @@ -1484,7 +1484,7 @@ "chiller": "ch02" }, { - "eq_scen_id": "eq_scenario_22", + "eq_scen_id": "eq_scenario_23", "eq_scen_name": "R-1234ze HR WWHP+100% AWHP (H+C)+Elec Backup", "hr_wwhp": "hr07", "hr_wwhp_performance_model": "interpolate_HHWST", @@ -1525,12 +1525,12 @@ { "group_id": "awhp_refrigerant_types", "group_name": "Varying AWHP Refrigerant", - "scenario_ids": ["eq_scenario_18", "eq_scenario_19", "eq_scenario_20"] + "scenario_ids": ["eq_scenario_19", "eq_scenario_20", "eq_scenario_21"] }, { "group_id": "wwhp_refrigerant_types", "group_name": "Varying WWHP Refrigerant", - "scenario_ids": ["eq_scenario_21", "eq_scenario_22"] + "scenario_ids": ["eq_scenario_22", "eq_scenario_23"] } ] } \ No newline at end of file From 9020a8db1800df64a087a34b929b6959bb726b77 Mon Sep 17 00:00:00 2001 From: urwahah Date: Thu, 10 Sep 2026 11:20:16 -0700 Subject: [PATCH 5/6] resolve merge conflicts --- data/input/equipment_data.JSON | 100 ++++++++++++++++++++++++++++++++- 1 file changed, 99 insertions(+), 1 deletion(-) diff --git a/data/input/equipment_data.JSON b/data/input/equipment_data.JSON index c70f04a..d2acfe9 100644 --- a/data/input/equipment_data.JSON +++ b/data/input/equipment_data.JSON @@ -983,6 +983,31 @@ } } }, + { + "eq_id": "bo05", + "eq_type": "backup_heating", + "eq_subtype": "hot_water", + "eq_calc_type": "specific", + "model": "GenericBoiler", + "fuel": "natural_gas", + "capacity_W": 190500, + "dimensions": { + "length": 1.06, + "width": 0.833, + "height": 2.01 + }, + "operating_weight_g": 305000, + "electrical": { + "mca": 10, + "voltage": 120, + "phase": 1 + }, + "performance": { + "heating": { + "efficiency": 0.6 + } + } + }, { "eq_id": "ch01", "eq_type": "chiller", @@ -1175,6 +1200,7 @@ "awhp_use_cooling": false, "awhp_sizing_priority": "heating", "backup_heating": "bo03", + "fuel_switching": false, "chiller": "ch02" }, { @@ -1192,6 +1218,7 @@ "awhp_use_cooling": false, "awhp_sizing_priority": "heating", "backup_heating": "res02", + "fuel_switching": false, "chiller": "ch02" }, { @@ -1209,6 +1236,7 @@ "awhp_use_cooling": true, "awhp_sizing_priority": "heating", "backup_heating": "bo03", + "fuel_switching": false, "chiller": "ch02" }, { @@ -1226,6 +1254,7 @@ "awhp_use_cooling": true, "awhp_sizing_priority": "heating", "backup_heating": "res02", + "fuel_switching": false, "chiller": "ch02" }, { @@ -1243,6 +1272,7 @@ "awhp_use_cooling": true, "awhp_sizing_priority": "heating", "backup_heating": "res02", + "fuel_switching": false, "chiller": "ch02" }, { @@ -1260,6 +1290,7 @@ "awhp_use_cooling": true, "awhp_sizing_priority": "heating", "backup_heating": "bo03", + "fuel_switching": false, "chiller": "ch02" }, { @@ -1277,6 +1308,7 @@ "awhp_use_cooling": true, "awhp_sizing_priority": "heating", "backup_heating": "bo03", + "fuel_switching": false, "chiller": "ch02" }, { @@ -1294,6 +1326,7 @@ "awhp_use_cooling": true, "awhp_sizing_priority": "heating", "backup_heating": "bo03", + "fuel_switching": false, "chiller": "ch02" }, { @@ -1311,6 +1344,7 @@ "awhp_use_cooling": true, "awhp_sizing_priority": "heating", "backup_heating": "bo03", + "fuel_switching": false, "chiller": "ch02" }, { @@ -1328,6 +1362,7 @@ "awhp_use_cooling": false, "awhp_sizing_priority": "heating", "backup_heating": "bo03", + "fuel_switching": false, "chiller": "ch02" }, { @@ -1345,6 +1380,7 @@ "awhp_use_cooling": false, "awhp_sizing_priority": "heating", "backup_heating": "res02", + "fuel_switching": false, "chiller": "ch02" }, { @@ -1362,6 +1398,7 @@ "awhp_use_cooling": true, "awhp_sizing_priority": "heating", "backup_heating": "res02", + "fuel_switching": false, "chiller": "ch02" }, { @@ -1379,6 +1416,7 @@ "awhp_use_cooling": true, "awhp_sizing_priority": "heating", "backup_heating": "res02", + "fuel_switching": false, "chiller": "ch02" }, { @@ -1396,6 +1434,7 @@ "awhp_use_cooling": true, "awhp_sizing_priority": "heating", "backup_heating": "res02", + "fuel_switching": false, "chiller": "ch02" }, { @@ -1415,6 +1454,60 @@ "backup_heating": "res02", "chiller": "ch02" }, + { + "eq_scen_id": "eq_scenario_16", + "eq_scen_name": "90% Eff. Gas Boiler+AC Chiller", + "hr_wwhp": null, + "hr_wwhp_performance_model": "interpolate_HHWST", + "hr_wwhp_h_supply_t": 48.9, + "awhp": null, + "awhp_performance_model": "interpolate_HHWST_fixed", + "awhp_sizing_mode": "integer_sizing_peak_load", + "awhp_sizing_value": 1, + "awhp_redundancy": 1, + "awhp_h_supply_t": 38, + "awhp_use_cooling": false, + "awhp_sizing_priority": "heating", + "backup_heating": "bo02", + "fuel_switching": false, + "chiller": "ch02" + }, + { + "eq_scen_id": "eq_scenario_17", + "eq_scen_name": "50% AWHP (H+C)+Gas Backup", + "hr_wwhp": null, + "hr_wwhp_performance_model": "interpolate_HHWST", + "hr_wwhp_h_supply_t": 48.9, + "awhp": "hp01", + "awhp_performance_model": "interpolate_HHWST_fixed", + "awhp_sizing_mode": "integer_sizing_peak_load", + "awhp_sizing_value": 0.5, + "awhp_redundancy": 1, + "awhp_h_supply_t": 38, + "awhp_use_cooling": true, + "awhp_sizing_priority": "heating", + "backup_heating": "bo02", + "fuel_switching": false, + "chiller": "ch02" + }, + { + "eq_scen_id": "eq_scenario_18", + "eq_scen_name": "100% AWHP (H+C)+Fuel Switching", + "hr_wwhp": null, + "hr_wwhp_performance_model": "interpolate_HHWST", + "hr_wwhp_h_supply_t": 48.9, + "awhp": "hp01", + "awhp_performance_model": "interpolate_HHWST_fixed", + "awhp_sizing_mode": "integer_sizing_peak_load", + "awhp_sizing_value": 1, + "awhp_redundancy": 1, + "awhp_h_supply_t": 38, + "awhp_use_cooling": true, + "awhp_sizing_priority": "heating", + "backup_heating": "bo02", + "fuel_switching": true, + "chiller": "ch02" + }, { "eq_scen_id": "eq_scenario_19", "eq_scen_name": "100% R410A AWHP (H+C)+Elec Backup", @@ -1504,7 +1597,7 @@ "scenario_groups": [ { "group_id": "default", - "group_name": "Default", + "group_name": "Example Equipment", "scenario_ids": ["eq_scenario_1", "eq_scenario_2", "eq_scenario_3", "eq_scenario_4", "eq_scenario_5"] }, { @@ -1522,6 +1615,11 @@ "group_name": "HHW Supply Temps", "scenario_ids": ["eq_scenario_4", "eq_scenario_13", "eq_scenario_14", "eq_scenario_5", "eq_scenario_15"] }, + { + "group_id": "fuel_switching", + "group_name": "Dynamic Fuel Switching", + "scenario_ids": ["eq_scenario_16", "eq_scenario_17", "eq_scenario_4", "eq_scenario_18"] + }, { "group_id": "awhp_refrigerant_types", "group_name": "Varying AWHP Refrigerant", From 0760011e0a48f28a5126cb7da4f26b6b090f463a Mon Sep 17 00:00:00 2001 From: urwahah Date: Tue, 15 Sep 2026 20:21:34 -0700 Subject: [PATCH 6/6] update AWHP scenario group name, correct HHWST to be consistent --- data/input/equipment_data.JSON | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/data/input/equipment_data.JSON b/data/input/equipment_data.JSON index 0da0145..6d031d7 100644 --- a/data/input/equipment_data.JSON +++ b/data/input/equipment_data.JSON @@ -1544,7 +1544,7 @@ "awhp_sizing_mode": "integer_sizing_peak_load", "awhp_sizing_value": 1, "awhp_redundancy": 1, - "awhp_h_supply_t": 50, + "awhp_h_supply_t": 45, "awhp_use_cooling": true, "awhp_sizing_priority": "heating", "backup_heating": "res02", @@ -1561,7 +1561,7 @@ "awhp_sizing_mode": "integer_sizing_peak_load", "awhp_sizing_value": 1, "awhp_redundancy": 1, - "awhp_h_supply_t": 50, + "awhp_h_supply_t": 45, "awhp_use_cooling": true, "awhp_sizing_priority": "heating", "backup_heating": "res02", @@ -1578,7 +1578,7 @@ "awhp_sizing_mode": "integer_sizing_peak_load", "awhp_sizing_value": 1, "awhp_redundancy": 1, - "awhp_h_supply_t": 40, + "awhp_h_supply_t": 45, "awhp_use_cooling": true, "awhp_sizing_priority": "heating", "backup_heating": "res02", @@ -1647,7 +1647,7 @@ }, { "group_id": "awhp_refrigerant_types", - "group_name": "Varying AWHP Refrigerant", + "group_name": "Varying AWHP Model+Refrigerant", "scenario_ids": ["eq_scenario_19", "eq_scenario_20", "eq_scenario_21"] }, {