Version 1.2.0 (Month X, 2025)
Preview of the upcoming MESSAGEix-Materials release.
This upcoming release of MESSAGEix-Materials introduces significant enhancements to the current model. It features improved calibration and updated parameterization, drawing on the latest statistics and findings from recent literature. Most of these updates reflect developments made during the ScenarioMIP project.
Model changes
Iron & steel sector
Revisions & fixes
Added missing relation entries for maximum steel recycling rates
Full calibration of the steel sector for 2020 and 2025, including:
Historical production and capacity additions for all major steel production technologies.
Historical steel demand.
Update of techno-economic input data for several technologies to more recent or accurate literature.
Removed water commodity flows due to incompatibility with new MESSAGEix-GLOBIOM-GAINS model structure.
Extensions
Explicit representation of India-specific DRI technology using rotary coal kilns.
gen_cokeoven_co2_cc()
function added to generate coke oven CO2 emission factors.Added functionality to differentiate steel model parameterization along SSP narratives:
get_scrap_prep_cost()
function added to generate scrap preparation costs.gen_max_recycling_rel()
function added to generate maximum recycling rates.gen_grow_cap_up()
function added to generate growth constraints for steel CCS capacity.Use of Investment and fixed costs (tools.costs) for iron/steel production technologies.
New steel projections derived from relationship of macro-economic investment to per capita steel demand.
Regionally differentiated scrap availability from steel finishing and manufacturing based on statistics.
Non-metallic minerals sector
Clinker input for cement production is now differentiated by region based on literature data.
2020 and 2025 demand calibrated based on recent statistics, independent of SSP.
Previous fuel use calibration was updated based on most recent data.
Growth constraints for clinker CCS capacity are differentiated by SSP.
The energy requirement for clinker CCS was adjusted based on recent literature.
Non-ferrous metals sector
Trade representation for alumina has been implemented.
The aluminum has been fixed in 2025 independent of SSP setting.
The 2020 aluminum demand was slightly revised in some regions.
The energy intensity of alumina refining was revised and differentiated by region based on IAI data.
The fuel use for alumina refining in 2020 was calibrated based on IAI data.
The energy intensity of aluminum smelting was revised and differentiated by region based on IAI data.
The historical smelting capacity was calibrated based on an accurate global capacity data set.
The historical smelting and refining activity in 2020 was calibrated based on BGS statistics.
The maximum recyclable aluminum scrap ratio is now differentiated by SSP.
The heat requirement and cost for aluminum scrap preparation is now differentiated by SSP.
Chemicals sector
Functionality added to differentiate chemicals demands by SSP.
gen_ccs_bounds()
function added to generate CCS bounds for ammonia production in 2020 and 2025.gen_meth_fs_downstream()
function added to generate new technology for methanol downstream use.gen_plastics_emission_factors()
,gen_chemicals_co2_ind_factors()
andgen_ethanol_to_ethylene_emi_factor()
added to generate CO2 emission factors for chemicals.
Power sector
Demand generator
Added functionality to project material demands based SSP narrative.
Added quantile regression option for demand projections.
Other
New residual industry demand model based on historical energy intensity trends.
Calibrated to IEA energy balances for 2020.
Fixed 2025 technology activity based on 2017-2022 trends.
Added SSP specific projections for other industry energy demand.
Updated share constraint parametrization for low temperature heat technologies.
Added share constraint for coal use in residual industry based on 2020 IEA energy balances.
Added non-CO2 emission factors for residual industry technologies based on GAINS data.
Added furnaces to GAINS driver
relation
IndThermDemLink.
CLI changes
The –datafile options has been removed from the material-ix commands, as it is no longer needed.
Deprecations
Model calibration:
Removed:
.modify_demand_and_hist_activity_debug
.modify_baseyear_bounds
.calc_hist_activity
.add_new_ind_hist_act
.calc_demand_shares
.calc_resid_ind_demand
.modify_industry_demand
.calc_demand_shares
.add_elec_lowerbound_2020
.add_coal_lowerbound_2020
.add_ccs_technologies
renamed toadd_cement_ccs_co2_tr_relation()
.
Reporting:
Functionalities of
model.material.report.reporting
replaced bymodel.material.report.run_reporting
. Will be removed completely in the future release.
MACRO calibration:
.load_GDP_COVID
removed..add_macro_COVID
renamed toadd_macro_materials()
.
Miscellaneous:
.combine_df_dictionaries
replaced bymerge_data()
.
New features
The following xlsx files have been replaced by multiple csv files for each sheet to facilitate version control and readability:
aluminum_techno_economic.xlsx
Global_cement_MESSAGE.xlsx
Global_steel_MESSAGE.xlsx
fert_techno_economic.xlsx
nh3_fertilizer_demand.xlsx
cost_conv_nh3.xlsx
The files are currently still available for reference, but will be removed in a future release.
read_sector_data()
andread_timeseries()
andread_rel()
was adjusted to read from csv files.New post-processing module for the industry sector in
model.material.report.run_reporting
providing:More generalized method of post-processing MESSAGEix-Materials results.
Configuration handled through
model.material.report.config
YAML files inmaterial/model/material/reporting/
.Higher resolution of post-processed results.
New module to generate share constraints in
model.material.share_constraints
.Automatized MACRO calibration input data generation with
update_macro_calib_file()
including data input templates for all SSPs indata/material/macro/
.
Note
The MACRO calibration workflow only supports MESSAGEix-GLOBIOM-Materials model with R12 regions.
The implementation automates the Excel functions previously used to derive price_ref
and cost_ref
and is not supposed to be a longterm solution.
Ultimately, the message_ix
.add_macro
functionalities should be used once issue #859 is resolved.
See also internal Slack discussion here.