Skip to content

Commit

Permalink
Merge pull request #242 from iiasa/wat_SSP_upd2
Browse files Browse the repository at this point in the history
Flexible setup of constraints for cooling technologies
  • Loading branch information
khaeru authored Nov 4, 2024
2 parents b15268e + eb7aa18 commit 0645fd5
Show file tree
Hide file tree
Showing 17 changed files with 423 additions and 79 deletions.
4 changes: 4 additions & 0 deletions doc/water/index.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
MESSAGEix-Nexus (:mod:`.model.water`)
*************************************

.. note:: The current version of :mod:`.model.water` is configured to work with scenarios that have technology set elements including ``csp_sm1_ppl`` and ``csp_sm3_ppl`` instead of ``solar_th_ppl``.
Previous versions (in :mod:`message_ix_models` v2024.8.6 and earlier) were configured to work with scenarios including the technology ``solar_th_ppl``.
See further discussion at :pull:`242`.

:mod:`message_ix_models.model.water` adds water usage and demand related representation to the MESSAGEix-GLOBIOM global model.
The resulting model is referred to as **“MESSAGEix-Nexus”**.
This work extends the water sector linkage described by Parkinson et al. (2019) :cite:`parkinson-2019`.
Expand Down
3 changes: 2 additions & 1 deletion doc/whatsnew.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ What's new
Next release
============

- Fix the nexus/cooling function and adding test for checking some input data (:pull:`236`).
- Make setup of constraints for cooling technologies flexible and update solar csp tech. name (:pull:`242`).
- Fix the nexus/cooling function and add test for checking some input data (:pull:`236`).
- Add :doc:`/project/circeular` project code and documentation (:pull:`232`).
- Update water availability data and major code editing to allow a new test suite for the water module (:pull:`106`).
- Expand :doc:`repro` with sections on :ref:`repro-doc` and :ref:`versioning`, including :ref:`a list of external model names and ‘versions’ <model-names>` like “MESSAGEix-GLOBIOM 2.0” (:issue:`224`, :pull:`226`).
Expand Down
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
63 changes: 60 additions & 3 deletions message_ix_models/data/water/set.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ nexus:
- cooling__loil_ppl
- cooling__nuc_hc
- cooling__solar_th_ppl
- cooling__csp_sm1_ppl
- cooling__csp_sm3_ppl

add:
- electr
Expand Down Expand Up @@ -210,9 +212,16 @@ nexus:
- nuc_hc__ot_saline
- solar_th_ppl__ot_fresh
- solar_th_ppl__cl_fresh
- solar_th_ppl__cl_fresh
- solar_th_ppl__ot_saline
- solar_th_ppl__air
- csp_sm1_ppl__ot_fresh
- csp_sm1_ppl__cl_fresh
- csp_sm1_ppl__ot_saline
- csp_sm1_ppl__air
- csp_sm3_ppl__ot_fresh
- csp_sm3_ppl__cl_fresh
- csp_sm3_ppl__ot_saline
- csp_sm3_ppl__air
- extract__freshwater_supply
- extract__freshwater_instream
- extract__saline_supply
Expand Down Expand Up @@ -318,6 +327,14 @@ nexus:
- solar_th_ppl__cl_fresh
- solar_th_ppl__ot_saline
- solar_th_ppl__air
- csp_sm1_ppl__ot_fresh
- csp_sm1_ppl__cl_fresh
- csp_sm1_ppl__ot_saline
- csp_sm1_ppl__air
- csp_sm3_ppl__ot_fresh
- csp_sm3_ppl__cl_fresh
- csp_sm3_ppl__ot_saline
- csp_sm3_ppl__air

# cat_addon includes cooling technology addons for parent technologies
type_addon:
Expand Down Expand Up @@ -345,6 +362,8 @@ nexus:
- cooling__nuc_hc
- cooling__nuc_lc
- cooling__solar_th_ppl
- cooling__csp_sm1_ppl
- cooling__csp_sm3_ppl

map_tec_addon:
add:
Expand All @@ -370,7 +389,8 @@ nexus:
- [loil_ppl, cooling__loil_ppl]
- [nuc_hc, cooling__nuc_hc]
- [nuc_lc, cooling__nuc_lc]
# - [solar_th_ppl, cooling__solar_th_ppl]
- [csp_sm1_ppl, cooling__csp_sm1_ppl]
- [csp_sm3_ppl, cooling__csp_sm3_ppl]


cat_addon:
Expand Down Expand Up @@ -468,6 +488,14 @@ nexus:
- [cooling__solar_th_ppl, solar_th_ppl__cl_fresh]
- [cooling__solar_th_ppl, solar_th_ppl__ot_saline]
- [cooling__solar_th_ppl, solar_th_ppl__air]
- [cooling__csp_sm1_ppl, csp_sm1_ppl__ot_fresh]
- [cooling__csp_sm1_ppl, csp_sm1_ppl__cl_fresh]
- [cooling__csp_sm1_ppl, csp_sm1_ppl__ot_saline]
- [cooling__csp_sm1_ppl, csp_sm1_ppl__air]
- [cooling__csp_sm3_ppl, csp_sm3_ppl__ot_fresh]
- [cooling__csp_sm3_ppl, csp_sm3_ppl__cl_fresh]
- [cooling__csp_sm3_ppl, csp_sm3_ppl__ot_saline]
- [cooling__csp_sm3_ppl, csp_sm3_ppl__air]

type_tec:
add:
Expand Down Expand Up @@ -611,6 +639,8 @@ cooling:
- cooling__loil_ppl
- cooling__nuc_hc
- cooling__solar_th_ppl
- cooling__csp_sm1_ppl
- cooling__csp_sm3_ppl

add:
- electr
Expand Down Expand Up @@ -747,9 +777,16 @@ cooling:
- nuc_hc__ot_saline
- solar_th_ppl__ot_fresh
- solar_th_ppl__cl_fresh
- solar_th_ppl__cl_fresh
- solar_th_ppl__ot_saline
- solar_th_ppl__air
- csp_sm1_ppl__ot_fresh
- csp_sm1_ppl__cl_fresh
- csp_sm1_ppl__ot_saline
- csp_sm1_ppl__air
- csp_sm3_ppl__ot_fresh
- csp_sm3_ppl__cl_fresh
- csp_sm3_ppl__ot_saline
- csp_sm3_ppl__air
- extract__upstream_landuse
- extract__saline_supply
- extract__freshwater_supply
Expand Down Expand Up @@ -856,6 +893,14 @@ cooling:
- solar_th_ppl__cl_fresh
- solar_th_ppl__ot_saline
- solar_th_ppl__air
- csp_sm1_ppl__ot_fresh
- csp_sm1_ppl__cl_fresh
- csp_sm1_ppl__ot_saline
- csp_sm1_ppl__air
- csp_sm3_ppl__ot_fresh
- csp_sm3_ppl__cl_fresh
- csp_sm3_ppl__ot_saline
- csp_sm3_ppl__air

# cat_addon includes cooling technology addons for parent technologies
type_addon:
Expand Down Expand Up @@ -883,6 +928,8 @@ cooling:
- cooling__nuc_hc
- cooling__nuc_lc
- cooling__solar_th_ppl
- cooling__csp_sm1_ppl
- cooling__csp_sm3_ppl

map_tec_addon:
add:
Expand All @@ -909,6 +956,8 @@ cooling:
- [nuc_hc, cooling__nuc_hc]
- [nuc_lc, cooling__nuc_lc]
# - [solar_th_ppl, cooling__solar_th_ppl]
- [csp_sm1_ppl, cooling__csp_sm1_ppl]
- [csp_sm3_ppl, cooling__csp_sm3_ppl]


cat_addon:
Expand Down Expand Up @@ -1006,6 +1055,14 @@ cooling:
- [cooling__solar_th_ppl, solar_th_ppl__cl_fresh]
- [cooling__solar_th_ppl, solar_th_ppl__ot_saline]
- [cooling__solar_th_ppl, solar_th_ppl__air]
- [cooling__csp_sm1_ppl, csp_sm1_ppl__ot_fresh]
- [cooling__csp_sm1_ppl, csp_sm1_ppl__cl_fresh]
- [cooling__csp_sm1_ppl, csp_sm1_ppl__ot_saline]
- [cooling__csp_sm1_ppl, csp_sm1_ppl__air]
- [cooling__csp_sm3_ppl, csp_sm3_ppl__ot_fresh]
- [cooling__csp_sm3_ppl, csp_sm3_ppl__cl_fresh]
- [cooling__csp_sm3_ppl, csp_sm3_ppl__ot_saline]
- [cooling__csp_sm3_ppl, csp_sm3_ppl__air]


unit:
Expand Down
98 changes: 98 additions & 0 deletions message_ix_models/data/water/technology.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -576,6 +576,54 @@ nexus:
technology using parasitic electricity
input: {commodity: electr}

csp_sm1_ppl__ot_fresh:
description: >-
Solar thermal power plant with storage cooling by once through cooling
technology using freshwater supply
input: {commodity: freshwater_supply}

csp_sm1_ppl__cl_fresh:
description: >-
Solar thermal power plant with storage cooling by closed loop cooling
technology using freshwater supply & parasitic electricity
input: {commodity: freshwater_supply,electr}

csp_sm1_ppl__ot_saline:
description: >-
Solar thermal power plant with storage cooling by once through cooling
technology using freshwater supply
input: {commodity: saline_supply_ppl}

csp_sm1_ppl__air:
description: >-
Solar thermal power plant with storage cooling by once through cooling
technology using parasitic electricity
input: {commodity: electr}

csp_sm3_ppl__ot_fresh:
description: >-
Solar thermal power plant with storage cooling by once through cooling
technology using freshwater supply
input: {commodity: freshwater_supply}

csp_sm3_ppl__cl_fresh:
description: >-
Solar thermal power plant with storage cooling by closed loop cooling
technology using freshwater supply & parasitic electricity
input: {commodity: freshwater_supply,electr}

csp_sm3_ppl__ot_saline:
description: >-
Solar thermal power plant with storage cooling by once through cooling
technology using freshwater supply
input: {commodity: saline_supply_ppl}

csp_sm3_ppl__air:
description: >-
Solar thermal power plant with storage cooling by once through cooling
technology using parasitic electricity
input: {commodity: electr}

urban_t_d:
description: >-
Urban water transmission & distribution
Expand Down Expand Up @@ -1324,3 +1372,53 @@ cooling:
technology using parasitic electricity
input: {commodity: electr}

csp_sm1_ppl__ot_fresh:
description: >-
Solar thermal power plant with storage cooling by once through cooling
technology using freshwater supply
input: {commodity: freshwater_supply}

csp_sm1_ppl__cl_fresh:
description: >-
Solar thermal power plant with storage cooling by closed loop cooling
technology using freshwater supply & parasitic electricity
input: {commodity: freshwater_supply,electr}

csp_sm1_ppl__ot_saline:
description: >-
Solar thermal power plant with storage cooling by once through cooling
technology using freshwater supply
input: {commodity: saline_supply_ppl}

csp_sm1_ppl__air:
description: >-
Solar thermal power plant with storage cooling by once through cooling
technology using parasitic electricity
input: {commodity: electr}

csp_sm3_ppl__ot_fresh:
description: >-
Solar thermal power plant with storage cooling by once through cooling
technology using freshwater supply
input: {commodity: freshwater_supply}

csp_sm3_ppl__cl_fresh:
description: >-
Solar thermal power plant with storage cooling by closed loop cooling
technology using freshwater supply & parasitic electricity
input: {commodity: freshwater_supply,electr}

csp_sm3_ppl__ot_saline:
description: >-
Solar thermal power plant with storage cooling by once through cooling
technology using freshwater supply
input: {commodity: saline_supply_ppl}

csp_sm3_ppl__air:
description: >-
Solar thermal power plant with storage cooling by once through cooling
technology using parasitic electricity
input: {commodity: electr}



3 changes: 3 additions & 0 deletions message_ix_models/model/water/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,9 @@ def cooling(context, regions, rcps, rels):
# Build
build(context, scen)

# Set scenario as default
scen.set_as_default()

# Solve
scen.solve(solve_options={"lpmethod": "4"}, case=caseName)

Expand Down
Loading

0 comments on commit 0645fd5

Please sign in to comment.