This module models final energy use in the industry sector and its subsectors, as well as the emissions generated by them.
Description | Unit | A | B | C | |
---|---|---|---|---|---|
cm_CCS_cement | CCS for cement sub-sector | x | x | x | |
cm_CCS_chemicals | CCS for chemicals sub-sector | x | x | ||
cm_CCS_steel | CCS for steel sub-sector | x | x | ||
cm_emiscen | policy scenario choice | x | |||
cm_IndCCSscen | CCS for Industry | x | x | x | |
cm_optimisticMAC | assume optimistic Industry MAC from AR5 Ch. 10? | x | |||
cm_startyear | first optimized modelling time step | \(year\) | x | x | |
fm_dataemiglob (all_enty, all_enty, all_te, all_enty) |
read-in of emissions factors co2,cco2 | x | x | ||
pm_calibrate_eff_scale (all_in, all_in, eff_scale_par) |
parameters for scaling efficiencies in CES calibration | x | |||
pm_CementAbatementPrice (ttot, all_regi) |
CO2 price used during calculation of cement demand reduction | \(\$/tCO2\) | x | x | |
pm_CementDemandReductionCost (tall, all_regi) |
cost of reducing cement demand | \(tn\$2005\) | x | x | x |
pm_cesdata (tall, all_regi, all_in, cesParameter) |
parameters of the CES function | x | x | ||
pm_cesdata_sigma (ttot, all_in) |
elasticities of substitution | x | x | ||
pm_delta_kap (all_regi, all_in) |
Depreciation rate of capital. | x | |||
pm_fedemand | final energy demand | x | |||
pm_macAbat (tall, all_regi, all_enty, steps) |
abatement levels based on data from van Vuuren | \(fraction\) | x | x | |
pm_macAbatLev (tall, all_regi, all_enty) |
actual level of abatement per time step, region, and source | \(fraction\) | x | x | x |
pm_macCostSwitch (all_enty) |
switch to include mac costs in the code (e.g. in coupled scenarios, we want to include the costs in REMIND, but MAC effects on emissions are calculated in MAgPIE) | x | |||
pm_macStep (tall, all_regi, all_enty) |
step number of abatement level | \(integer\) | x | x | |
pm_macSwitch (all_enty) |
switch to include mac option in the code | x | x | x | |
pm_ppfen_ratios (all_in, all_in) |
Limit ratio of two primary production factors of energy (ppfEn). | x | |||
pm_ppfen_shares (all_in, all_in) |
Limit the share of one ppfEn in total CES nest inputs. | x | |||
pm_priceCO2 (tall, all_regi) |
carbon price | \(\$/tC\) | x | x | |
pm_ResidualCementDemand (tall, all_regi) |
reduction in cemend demand (and thus process emissions) due to climate policy | \(0...1\) | x | x | |
pm_ttot_val (ttot) |
value of ttot set element | x | x | ||
sm_dmac | step in MAC functions | \(US\$\) | x | x | |
sm_eps | small number: 1e-9 | x | x | ||
sm_MtCH4_2_TWa | Energy content of methane. MtCH4 –> TWa: 1 MtCH4 = 1.23 * 10^6 toe * 42 GJ/toe * 10^-9 EJ/GJ * 1 TWa/31.536 EJ = 0.001638 TWa (BP statistical review) | x | |||
sm_tmp | temporary scalar that can be used locally | x | |||
vm_cesIO (tall, all_regi, all_in) |
Production factor | x | x | ||
vm_effGr (ttot, all_regi, all_in) |
growth of factor efficiency | x | |||
vm_emiMacSector (ttot, all_regi, all_enty) |
total non-energy-related emission of each region. | \(GtC, Mt CH4, Mt N\) | x | x | |
vm_macBase (ttot, all_regi, all_enty) |
baseline emissions for all emissions subject to MACCs (type emismac) | x | x | x |
Description | Unit | |
---|---|---|
pm_abatparam_Ind (ttot, all_regi, all_enty, steps) |
industry CCS MAC curves | \(ratio @ US\$2005\) |
pm_ue_eff_target (all_in) |
energy efficiency target trajectories | \(\% p.a.\) |
vm_emiIndCCS (ttot, all_regi, all_enty) |
industry CCS emissions | \(GtC/a\) |
vm_IndCCSCost (ttot, all_regi, all_enty) |
industry CCS cost | |
vm_macBaseInd (ttot, all_regi, all_enty, secInd37) |
industry CCS baseline emissions | \(GtC/a\) |
The region-specific shares of final energy use in industry subsectors (cement, chemicals, and steel production, as well as all other industry production) are kept constant on the 2005 level. This potentially overestimates the potential for electrification and thus underestimates the emissions, especially from coal in the steel and cement sectors.
Subsector-specific MAC curves for CCS are applied to emissions calculated from energy use and emission factors.
The region-specific shares of final energy use in industry subsectors (cement, chemicals, and steel production, as well as all other industry production) are kept constant on the 2005 level. This potentially overestimates the potential for electrification and thus underestimates the emissions, especially from coal in the steel and cement sectors.
Subsector-specific MAC curves for CCS are applied to emissions calculated from energy use and emission factors.
Baseline (emitted and captured) emissions by final energy carrier and industry subsector are calculated from final energy use in industry, the subsectors’ shares in that final energy carriers use, and the emission factor the final energy carrier.
\[\begin{multline*} vm\_macBaseInd(ttot,regi,entyFE,secInd37) = \sum_{fe2ppfEn(entyFE,in),ces\_industry\_dyn37("enhi",in)}\left( vm\_cesIO(ttot,regi,in) \cdot p37\_shIndFE(regi,in,secInd37) \right) \cdot p37\_fctEmi(entyFE) \end{multline*}\]
The maximum abatable emissions of a given type (industry subsector, fuel or process) are calculated from the baseline emissions and the possible abatement level (depending on the carbon price of the previous iteration).
\[\begin{multline*} v37\_emiIndCCSmax(ttot,regi,emiInd37) = \sum_{emiMac2mac(emiInd37,macInd37)}\left( \left( \sum_{secInd37\_2\_emiInd37(secInd37,emiInd37),entyFE}\left( vm\_macBaseInd(ttot,regi,entyFE,secInd37) \right)\$\left( NOT sameas(emiInd37,"co2cement\_process") \right) + \left( vm\_macBaseInd(ttot,regi,"co2cement\_process","cement") \right)\$ sameas(emiInd37,"co2cement\_process") \right) \cdot pm\_macSwitch(macInd37) \cdot pm\_macAbatLev(ttot,regi,macInd37) \right) \end{multline*}\]
Industry CCS is limited to below the maximum abatable emissions.
\[\begin{multline*} vm\_emiIndCCS(ttot,regi,emiInd37) \leq v37\_emiIndCCSmax(ttot,regi,emiInd37) \end{multline*}\]
The CCS capture rates of cement fuel and process emissions are identical, as they are captured in the same installation.
\[\begin{multline*} vm\_emiIndCCS(ttot,regi,"co2cement") \cdot v37\_emiIndCCSmax(ttot,regi,"co2cement\_process") = vm\_emiIndCCS(ttot,regi,"co2cement\_process") \cdot v37\_emiIndCCSmax(ttot,regi,"co2cement") \end{multline*}\]
Industry CCS costs (by subsector) are equal to the integral below the MAC cost curve. For the calculation, consider this figure: To make the calculations involving MAC curves leaner, they are discretised into 5 $/tC steps (parameter sm_dmac
) and transformed into step-wise curves. The parameter pm_macStep
holds the current step on the MAC curve the model is on (given the CO2 price of the last iteration), and pm_macAbat
holds the abatement level (as a fraction) on that step. The emission abatement equals the area under the MAC curve (turqoise area in the figure). To calculate it, pm_macStep
is multiplied by pm_macAbat
(the horizontal and vertical lines enclosing the coloured rectangle in the
\[\begin{multline*} vm\_IndCCSCost(ttot,regi,emiInd37) = 1e-3 \cdot pm\_macSwitch(emiInd37) \cdot \left( \sum_{enty,secInd37\_2\_emiInd37(secInd37,emiInd37)}\left( vm\_macBaseInd(ttot,regi,enty,secInd37) \right)\$\left( NOT sameas(emiInd37,"co2cement\_process") \right) + \left( vm\_macBaseInd(ttot,regi,"co2cement\_process","cement") \right)\$ sameas(emiInd37,"co2cement\_process") \right) \cdot sm\_dmac \cdot \sum_{emiMac2mac(emiInd37,enty)}\left( \left( pm\_macStep(ttot,regi,emiInd37) \cdot \sum_{steps\$\left( ord(steps) eq pm\_macStep(ttot,regi,emiInd37) \right)}\left( pm\_macAbat(ttot,regi,enty,steps) \right) \right) - \sum_{steps\$\left( ord(steps) le pm\_macStep(ttot,regi,emiInd37) \right)}\left( pm\_macAbat(ttot,regi,enty,steps) \right) \right) \end{multline*}\]
The region-specific shares of final energy use in industry subsectors (cement, chemicals, and steel production, as well as all other industry production) are kept constant on the 2005 level. This potentially overestimates the potential for electrification and thus underestimates the emissions, especially from coal in the steel and cement sectors.
Subsector-specific MAC curves for CCS are applied to emissions calculated from energy use and emission factors.
Limitations There are no known limitations.
This realisation does not differentiate between industry subsectors and does not allow for CCS in industry. CO2 emissions from industry fuel use are calculated based on final energy use and emission factors. CO2 process emissions from cement production are calculated based on an econometric relationship, described in Strefler (2014).
This realisation does not differentiate between industry subsectors and does not allow for CCS in industry. CO2 emissions from industry fuel use are calculated based on final energy use and emission factors. CO2 process emissions from cement production are calculated based on an econometric relationship, described in Strefler (2014).
Cement (clinker) production causes process CO2 emissions of about 0.5 t CO2 per tonne of clinker. As cement prices are of the magnitude of 100 US$/t, CO2 pricing (on the scale of 100–1000 US$/t) will lead to significant price markups and thus demand response.
This realisation does not differentiate between industry subsectors and does not allow for CCS in industry. CO2 emissions from industry fuel use are calculated based on final energy use and emission factors. CO2 process emissions from cement production are calculated based on an econometric relationship, described in Strefler (2014).
Limitations There are no known limitations.
Under development. Do not use.
Emission factors for calculating industry emissions Clinker-to-cement ratios converge to the lowest regional 2005 value by 2100.
\[\begin{multline*} \sum_{ces\_eff\_target\_dyn37(out,in)}\left( vm\_cesIO(ttot,regi,in) \right) \cdot p37\_energy\_limit(out) \geq vm\_cesIO(ttot,regi,out) \end{multline*}\]
\[\begin{multline*} 9 \cdot vm\_cesIO(ttot,regi,"ue\_steel\_primary") \geq vm\_cesIO(ttot,regi,"ue\_steel\_secondary") \end{multline*}\]
Compute gross industry emissions before CCS by multiplying sub-sector energy use with fuel-specific emission factors.
\[\begin{multline*} vm\_macBaseInd(ttot,regi,entyFE,secInd37) = \sum_{fe2ppfen\left(entyFE,ppfen\_industry\_dyn37(in)\right)}\left( vm\_cesIO(ttot,regi,in) \cdot p37\_fctEmi(entyFE) \right) \end{multline*}\]
Compute maximum possible CCS level in industry sub-sectors given the current CO2 price.
\[\begin{multline*} v37\_emiIndCCSmax(ttot,regi,emiInd37) = \sum_{emiMac2mac(emiInd37,macInd37)}\left( \left( \sum_{secInd37\_2\_emiINd37(secInd37,emiInd37),entyFE}\left( vm\_macBaseInd(ttot,regi,entyFE,secInd37) \right)\$\left( NOT sameas(emiInd37,"co2cement\_process") \right) + \left( vm\_macBaseInd(ttot,regi,"co2cement\_process","cement") \right)\$ sameas(emiInd37,"co2cement\_process") \right) \cdot pm\_macSwitch(macInd37) \cdot pm\_macAbatLev(ttot,regi,macInd37) \right) \end{multline*}\]
Limit industry CCS to maximum possible CCS level.
\[\begin{multline*} vm\_emiIndCCS(ttot,regi,emiInd37) \leq v37\_emiIndCCSmax(ttot,regi,emiInd37) \end{multline*}\]
Fix cement fuel and cement process emissions to the same abatement level.
\[\begin{multline*} vm\_emiIndCCS(ttot,regi,"co2cement") \cdot v37\_emiIndCCSmax(ttot,regi,"co2cement\_process") = vm\_emiIndCCS(ttot,regi,"co2cement\_process") \cdot v37\_emiIndCCSmax(ttot,regi,"co2cement") \end{multline*}\]
Calculate industry CCS costs.
\[\begin{multline*} vm\_IndCCSCost(ttot,regi,emiInd37) = 1e-3 \cdot pm\_macSwitch(emiInd37) \cdot \left( \sum_{enty,secInd37\_2\_emiInd37(secInd37,emiInd37)}\left( vm\_macBaseInd(ttot,regi,enty,secInd37) \right)\$\left( NOT sameas(emiInd37,"co2cement\_process") \right) + \left( vm\_macBaseInd(ttot,regi,"co2cement\_process","cement") \right)\$ sameas(emiInd37,"co2cement\_process") \right) \cdot sm\_dmac \cdot \sum_{emiMac2mac(emiInd37,enty)}\left( \left( pm\_macStep(ttot,regi,enty) \cdot \sum_{steps\$\left( ord(steps) eq pm\_macStep(ttot,regi,enty) \right)}\left( pm\_macAbat(ttot,regi,enty,steps) \right) \right) - \sum_{steps\$\left( ord(steps) le pm\_macStep(ttot,regi,enty) \right)}\left( pm\_macAbat(ttot,regi,enty,steps) \right) \right) \end{multline*}\]
FIXME testing Limit specific total energy use to that of the baseline run
\[\begin{multline*} \sum_{ces\_eff\_target\_dyn37(out,in)} vm\_cesIO(ttot,regi,in) \cdot p37\_cesIO\_base(ttot,regi,out) \cdot \left(cm\_emiscen ne 1\right) \leq \sum_{ces\_eff\_target\_dyn37(out,in)} p37\_cesIO\_base(ttot,regi,in) \cdot vm\_cesIO(ttot,regi,out) \end{multline*}\]
end FIXME testing
\[\begin{multline*} vm\_cesIO(ttot,regi,in) \geq vm\_cesIO(ttot,regi,in2) \cdot p37\_arcane\_FE\_limits(in,in2) \end{multline*}\]
The process emissions from cement production are calculated using a fixed CO2-to-clinker ratio (0.5262 kg CO2/kg clinker), region-specific clinker-to-cement ratios, and the cement production from the production function. Last iteration’s cement production value is used, since the MAC mechanism is outside of the optimisation loop.
Prepare industry emissions for post-processing
Limitations There are no known limitations.
Description | Unit | A | B | C | |
---|---|---|---|---|---|
o37_cementProcessEmissions (ttot, all_regi, all_enty) |
cement process emissions | \(GtC/a\) | x | x | x |
o37_CESderivatives (ttot, all_regi, all_in, all_in) |
derivatives of production CES function | x | |||
o37_emiInd (ttot, all_regi, all_enty, secInd37, all_enty) |
industry CCS emissions | \(GtC/a\) | x | x | x |
p37_arcane_FE_limits (all_in, all_in) |
minimum ratio of feelhth/feelwlth and feh2/fega (may be needed for calibration) | x | |||
p37_cesdata_sigma (all_in) |
substitution elasticities | x | x | ||
p37_cesIO_base (ttot, all_regi, all_in) |
baseline scenario pf quantities | x | |||
p37_cesIO_up_steel_secondary (tall, all_regi, all_GDPscen) |
upper limit to secondary steel production based on scrap availability | x | |||
p37_clinker_cement_ratio (ttot, all_regi) |
clinker content per unit cement used | x | |||
p37_energy_limit (all_in) |
thermodynamic/technical limits of energy use | \(GJ/product\) | x | ||
p37_fctEmi (all_enty) |
emission factors of FE carriers | \(GtC/TWa\) | x | x | |
p37_shIndFE (all_regi, all_in, secInd37) |
share of industry sub-sectors in FE use | \(ratio\) | x | ||
q37_arcane_FE_limits (ttot, all_regi, all_in, all_in) |
minimum ratio of feelhth/feelwlth and feh2/fega (may be needed for calibration) | x | |||
q37_cementCCS (ttot, all_regi) |
equal abatement levels for cement fuel and process emissions | x | x | ||
q37_emiIndCCSmax (ttot, all_regi, all_enty) |
calculate max industry CCS emissions | x | x | ||
q37_energy_limits (ttot, all_regi, all_in) |
thermodynamic/technical limit of energy use | x | |||
q37_indCCS (ttot, all_regi, all_enty) |
calculate industry CCS emissions | x | |||
q37_IndCCS (ttot, all_regi, emiInd37) |
limit industry emissions abatement | x | x | ||
q37_IndCCSCost (ttot, all_regi, all_enty) |
calculate cost for Industry CCS | x | x | ||
q37_limit_secondary_steel_share (ttot, all_regi) |
no more than 90% of steel from seconday production | x | |||
q37_limit_specific_total_energy (ttot, all_regi, all_in) |
limit specific energy use to baseline level | x | |||
q37_macBaseInd (ttot, all_regi, all_enty, secInd37) |
calculate industry CCS baseline emissions | x | x | ||
s37_clinker_process_CO2 | CO2 emissions per unit of clinker production | x | |||
v37_emiIndCCSmax (ttot, all_regi, all_enty) |
max industry CCS emissions | \(GtC/a\) | x | x | |
v37_emIIndCCSmax (ttot, all_regi, emiInd37) |
maximum abatable industry emissions | x |
description | |
---|---|
all_enty | all types of quantities |
all_GDPscen | all possible GDP scenarios |
all_in | all inputs and outputs of the CES function |
all_regi | all regions |
all_te | all energy technologies, including from modules |
c_expname | c_expname as set for use in GDX |
cal_ppf_industry_dyn37(all_in) | primary production factors for calibration - industry |
ces_eff_target_dyn37(all_in, all_in) | limits to specific total energy use |
ces_industry_dyn37(all_in, all_in) | CES tree structure - industry |
cesLevel2cesIO(counter, all_in) | CES tree structure by level |
cesOut2cesIn(all_in, all_in) | CES tree structure |
cesParameter | parameters of the CES functions and for calibration |
cm_GDPscen | cm_GDPscen as set for use in GDX |
counter | helper set to facilitate looping in defined order |
eff_scale_par | parameters for scaling certain efficiencies during calibration |
emiInd37(all_enty) | industry emissions |
emiInd37_fuel(all_enty) | industry emissions from fuel combustion |
emiMac2mac(all_enty, all_enty) | mapping of emission sources to MACs - caution: not all MACs exist, in that case they are zero |
emiMacSector(all_enty) | types of climate-relevant non-energy emissions with mac curve. Emissions in this set HAVE to be in emiMac2mac as well - if no MAC is available it will be set to zero automatically. |
energy_limits37(all_in, all_in) | thermodynamic limit of energy |
enty(all_enty) | all types of quantities |
entyFe(all_enty) | final energy types. Calculated in sets_calculations |
entyPe(all_enty) | Primary energy types (PE) |
fe_tax_sub_sbi(all_in, all_in) | correspondence between tax and subsidy input data resolution and model sectoral resolution. For FE which takes the pathway I to the CES |
fe_tax_sub37(all_in, all_in) | correspondence between tax and subsidy input data resolution and model sectoral resolution |
fe2ppfEn(all_enty, all_in) | mapping between CES FE variables and ESM FE variables |
fe2ppfen37(all_enty, all_in) | match ESM entyFE to ppfen |
fe2ppfEn37(all_enty, all_in) | match ESM entyFe to ppfEn |
in(all_in) | All inputs and outputs of the CES function |
in_industry_dyn37(all_in) | all inputs and outputs of the CES function - industry |
industry_ue_calibration_target_dyn37(all_in) | target values of industry calibration |
macBaseInd37(all_enty, secInd37) | FE and industry combinations that have emissions |
macInd37(all_enty) | industry CCS MACs |
modules | all the available modules |
p | parameter for ch4 and n2o waste emissions and co2 cement emissions |
pe2se(all_enty, all_enty, all_te) | map primary energy carriers to secondary |
peRe(all_enty) | Renewable primary energy sources |
pf_eff_target_dyn29(all_in) | production factors with efficiency target |
pf_eff_target_dyn37(all_in) | production factors with efficiency target |
pf_quan_target_dyn29(all_in) | production factors with quantity target |
pf_quan_target_dyn37(all_in) | production factors with quantity target |
pf_quantity_shares_37(all_in, all_in) | quantities for the calibration defined as a percentage of another pf |
ppfEn(all_in) | Primary production factors energy |
ppfen_industry_dyn37(all_in) | primary production factors energy - industry |
ppfKap(all_in) | Primary production factors capital |
ppfKap_industry_dyn37(all_in) | energy efficiency capital of industry |
regi(all_regi) | all regions used in the solution process |
regi_dyn29(all_regi) | dynamic region set for compatibility with testOneRegi |
se2fe(all_enty, all_enty, all_te) | map secondary energy to end-use energy using a technology |
secInd37 | industry sub-sectors |
secInd37_2_emiInd37(secInd37, emiInd37) | link industry sub-sectors to sector emissions |
secInd37_2_pf(secInd37, all_in) | link industry sub-sectors to energy to production factors |
steps | iterator for MAC steps |
t(ttot) | modeling time, usually starting in 2005, but later for fixed delay runs |
t0(tall) | start of modelling time, not optimization |
tall | time index |
te(all_te) | energy technologies |
ttot(tall) | time index with spin up |
ue_industry_dyn37(all_in) | industry production in physical or monetary values |
Michaja Pehl
01_macro, 20_growth, 29_CES_parameters, core
Strefler, Jessica. 2014. “Challenges for Low Stabilization of Climate Change: The Complementarity of Non-CO2 Greenhouse Gas and Aerosol Abatement to CO2 Emission Reductions.” PhD Thesis, Berlin, Germany: Technische Universität Berlin. http://dx.doi.org/10.14279/depositonce-4231.