Skip to content

Commit 2a1f6ce

Browse files
Custom curve flhs hydro river, solar thermal & geothermal (#3223)
* Updating solar thermal and geothermal custom curve flh inputs * Removing unnecessary flh inputs * Minor changes in structure * Implementing preset_demand_by method in FLH curve inputs for heat * Adding steam hotwater method to FLH inputs for heat * Split up shallow and deep geothermal heat flh curves * Add extra documentation concerning FLH update inputs * Adjust node position * Minor updates in description and layout --------- Co-authored-by: Kyra de Haan <[email protected]>
1 parent 932f7f4 commit 2a1f6ce

9 files changed

+132
-18
lines changed

config/energy_node_positions.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1045,7 +1045,7 @@ energy_heat_well_shallow_heatpump_mt_geothermal:
10451045
"y": 6980
10461046
energy_heat_well_shallow_lt_geothermal:
10471047
x: 6060
1048-
"y": 6200
1048+
"y": 6080
10491049
energy_hydrogen_after_distribution:
10501050
x: 5200
10511051
"y": 8920

config/user_curves.yml

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ interconnector_1_export_must_run:
133133
display_group: must_run_interconnectors
134134
reduce:
135135
as: full_load_hours
136-
sets:
136+
sets:
137137
- external_coupling_interconnector_1_flh_of_export_user_curve
138138

139139
interconnector_2_price:
@@ -653,23 +653,31 @@ weather/solar_thermal:
653653
reduce:
654654
as: full_load_hours
655655
sets:
656-
- flh_of_solar_thermal
656+
- flh_of_solar_thermal_user_curve
657+
658+
geothermal_heat_shallow:
659+
type: capacity_profile
660+
display_group: heat_production
661+
reduce:
662+
as: full_load_hours
663+
sets:
664+
- flh_of_geothermal_heat_shallow_user_curve
657665

658-
geothermal_heat:
666+
geothermal_heat_deep:
659667
type: capacity_profile
660668
display_group: heat_production
661669
reduce:
662670
as: full_load_hours
663671
sets:
664-
- flh_of_geothermal_heat
672+
- flh_of_geothermal_heat_deep_user_curve
665673

666674
river:
667675
type: capacity_profile
668676
display_group: electricity_production
669677
reduce:
670678
as: full_load_hours
671679
sets:
672-
- flh_of_hydro_river
680+
- flh_of_hydro_river_user_curve
673681

674682
weather/air_temperature:
675683
type: temperature

inputs/full_load_hours/flh_of_geothermal_heat.ad

Lines changed: 0 additions & 4 deletions
This file was deleted.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# This input updates the FLHs of deep geothermal heat technologies when a custom curve is uploaded,
2+
# see configuration in user_curves.yml.
3+
# FLH of agriculture_geothermal are updated in a different manner since users
4+
# set the share of this technology in heat demand, whereas for the other technologies the
5+
# output capacity can be set. Therefore, the method for changing the FLHs of agricultural geothermal
6+
# will change the number of units and generates the same heat output, whereas for the other technologies
7+
# the number of units stay fixed and the heat output changes as result of changed FLHs.
8+
9+
- query =
10+
original_nou_energy_heat_well_deep_ht_geothermal = V(energy_heat_well_deep_ht_geothermal, number_of_units);
11+
original_nou_energy_heat_well_deep_mt_geothermal = V(energy_heat_well_deep_mt_geothermal, number_of_units);
12+
original_nou_industry_heat_well_geothermal = V(industry_heat_well_geothermal, number_of_units);
13+
14+
EACH(
15+
UPDATE(V(energy_heat_well_deep_ht_geothermal), full_load_hours, USER_INPUT()),
16+
UPDATE(V(energy_heat_well_deep_ht_geothermal), number_of_units, original_nou_energy_heat_well_deep_ht_geothermal),
17+
UPDATE(V(energy_heat_well_deep_ht_geothermal), preset_demand_by_steam_hot_water_production, V(energy_heat_well_deep_ht_geothermal, steam_hot_water_production_based_on_number_of_units)),
18+
19+
UPDATE(V(energy_heat_well_deep_mt_geothermal), full_load_hours, USER_INPUT()),
20+
UPDATE(V(energy_heat_well_deep_mt_geothermal), number_of_units, original_nou_energy_heat_well_deep_mt_geothermal),
21+
UPDATE(V(energy_heat_well_deep_mt_geothermal), preset_demand_by_steam_hot_water_production, V(energy_heat_well_deep_mt_geothermal, steam_hot_water_production_based_on_number_of_units)),
22+
23+
UPDATE(V(industry_heat_well_geothermal), full_load_hours, USER_INPUT()),
24+
UPDATE(V(industry_heat_well_geothermal), number_of_units, original_nou_industry_heat_well_geothermal),
25+
UPDATE(V(industry_heat_well_geothermal), preset_demand_by_steam_hot_water_production, V(industry_heat_well_geothermal, steam_hot_water_production_based_on_number_of_units)),
26+
27+
UPDATE(V(agriculture_geothermal), full_load_hours, USER_INPUT())
28+
)
29+
30+
- priority = 1
31+
- max_value = 8760.0
32+
- min_value = 0.0
33+
- start_value_gql = present:V(agriculture_geothermal, full_load_hours)
34+
- step_value = 1.0
35+
- unit = hours
36+
- update_period = future
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# This input updates the FLHs of shallow geothermal heat technologies when a custom curve is uploaded,
2+
# see configuration in user_curves.yml. When a custom curve is uploaded, the heat output of these
3+
# technologies changes whereas the number of units stay fixed.
4+
5+
- query =
6+
original_nou_energy_heat_well_shallow_lt_geothermal = V(energy_heat_well_shallow_lt_geothermal, number_of_units);
7+
original_nou_energy_heat_well_shallow_heatpump_mt_geothermal = V(energy_heat_well_shallow_heatpump_mt_geothermal, number_of_units);
8+
9+
EACH(
10+
UPDATE(V(energy_heat_well_shallow_lt_geothermal), full_load_hours, USER_INPUT()),
11+
UPDATE(V(energy_heat_well_shallow_lt_geothermal), number_of_units, original_nou_energy_heat_well_shallow_lt_geothermal),
12+
UPDATE(V(energy_heat_well_shallow_lt_geothermal), preset_demand_by_steam_hot_water_production, V(energy_heat_well_shallow_lt_geothermal, steam_hot_water_production_based_on_number_of_units)),
13+
14+
UPDATE(V(energy_heat_well_shallow_heatpump_mt_geothermal), full_load_hours, USER_INPUT()),
15+
UPDATE(V(energy_heat_well_shallow_heatpump_mt_geothermal), number_of_units, original_nou_energy_heat_well_shallow_heatpump_mt_geothermal),
16+
UPDATE(V(energy_heat_well_shallow_heatpump_mt_geothermal), preset_demand_by_steam_hot_water_production, V(energy_heat_well_shallow_heatpump_mt_geothermal, steam_hot_water_production_based_on_number_of_units)),
17+
)
18+
19+
- priority = 1
20+
- max_value = 8760.0
21+
- min_value = 0.0
22+
- start_value_gql = present:V(agriculture_geothermal, full_load_hours)
23+
- step_value = 1.0
24+
- unit = hours
25+
- update_period = future

inputs/full_load_hours/flh_of_hydro_river.ad

Lines changed: 0 additions & 4 deletions
This file was deleted.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# This input updates the FLHs of hydro river
2+
# These FLH inputs are not listed in the front-end, but is automatically triggered when a user uploads the corresponding custom curve
3+
# You can see this in the user_curves.yml
4+
5+
- query =
6+
original_nou = V(energy_power_hydro_river, number_of_units);
7+
8+
EACH(
9+
UPDATE(V(energy_power_hydro_river), full_load_hours, USER_INPUT()),
10+
UPDATE(V(energy_power_hydro_river), number_of_units, original_nou),
11+
UPDATE(V(energy_power_hydro_river), preset_demand_by_electricity_production, V(energy_power_hydro_river, production_based_on_number_of_units)),
12+
)
13+
- priority = 1
14+
- max_value = 8760.0
15+
- min_value = 0.0
16+
- start_value_gql = present:V(energy_power_hydro_river, full_load_hours)
17+
- step_value = 1.0
18+
- unit = hours
19+
- update_period = future

inputs/full_load_hours/flh_of_solar_thermal.ad

Lines changed: 0 additions & 4 deletions
This file was deleted.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# This input updates the FLHs of solar thermal technologies when a custom curve is uploaded,
2+
# see configuration in user_curves.yml.
3+
# FLH of solar thermal in buildings and households are updated in a different manner since users
4+
# set shares of this technology, whereas for the other technologies the
5+
# output capacity can be set. Therefore, the method for changing the FLHs of solar thermal in
6+
# buildings and households will change the number of units and generates the same heat output,
7+
# whereas for the other technologies the number of units stay fixed and the heat output changes
8+
# as result of changed FLHs.
9+
10+
- query =
11+
original_nou_energy_heat_solar_ht_solar_thermal = V(energy_heat_solar_ht_solar_thermal, number_of_units);
12+
original_nou_energy_heat_solar_lt_solar_thermal = V(energy_heat_solar_lt_solar_thermal, number_of_units);
13+
original_nou_energy_heat_solar_mt_solar_thermal = V(energy_heat_solar_mt_solar_thermal, number_of_units);
14+
15+
EACH(
16+
UPDATE(V(energy_heat_solar_ht_solar_thermal), full_load_hours, USER_INPUT()),
17+
UPDATE(V(energy_heat_solar_ht_solar_thermal), number_of_units, original_nou_energy_heat_solar_ht_solar_thermal),
18+
UPDATE(V(energy_heat_solar_ht_solar_thermal), preset_demand_by_steam_hot_water_production, V(energy_heat_solar_ht_solar_thermal, steam_hot_water_production_based_on_number_of_units)),
19+
20+
UPDATE(V(energy_heat_solar_lt_solar_thermal), full_load_hours, USER_INPUT()),
21+
UPDATE(V(energy_heat_solar_lt_solar_thermal), number_of_units, original_nou_energy_heat_solar_lt_solar_thermal),
22+
UPDATE(V(energy_heat_solar_lt_solar_thermal), preset_demand_by_steam_hot_water_production, V(energy_heat_solar_lt_solar_thermal, steam_hot_water_production_based_on_number_of_units)),
23+
24+
UPDATE(V(energy_heat_solar_mt_solar_thermal), full_load_hours, USER_INPUT()),
25+
UPDATE(V(energy_heat_solar_mt_solar_thermal), number_of_units, original_nou_energy_heat_solar_mt_solar_thermal),
26+
UPDATE(V(energy_heat_solar_mt_solar_thermal), preset_demand_by_steam_hot_water_production, V(energy_heat_solar_mt_solar_thermal, steam_hot_water_production_based_on_number_of_units)),
27+
28+
UPDATE(V(buildings_space_heater_solar_thermal), full_load_hours, USER_INPUT()),
29+
UPDATE(V(households_water_heater_solar_thermal), full_load_hours, USER_INPUT()),
30+
)
31+
32+
- priority = 1
33+
- max_value = 8760.0
34+
- min_value = 0.0
35+
- start_value_gql = present:V(households_water_heater_solar_thermal, full_load_hours)
36+
- step_value = 1.0
37+
- unit = hours
38+
- update_period = future

0 commit comments

Comments
 (0)