Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Flexible setup of constraints for cooling technologies #242

Merged
merged 18 commits into from
Nov 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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 @@
# Build
build(context, scen)

# Set scenario as default
scen.set_as_default()

Check warning on line 271 in message_ix_models/model/water/cli.py

View check run for this annotation

Codecov / codecov/patch

message_ix_models/model/water/cli.py#L271

Added line #L271 was not covered by tests

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

Expand Down
Loading
Loading