REMIND - REgional Model of INvestments and Development

2.1.3

created with goxygen 1.1.0

Industry (37_industry)

Description

This module models final energy use in the industry sector and its subsectors, as well as the emissions generated by them.

Interfaces

Interfaces to other modules
Interfaces to other modules

Input

module inputs (A: fixed_shares | B: off | C: subsectors)
  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

Output

module outputs
  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\)

Realizations

(A) fixed_shares

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: MAC curve example 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.

(B) off

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.

(C) subsectors

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.

Definitions

Objects

module-internal objects (A: fixed_shares | B: off | C: subsectors)
  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

Sets

sets in use
  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

Authors

Michaja Pehl

See Also

01_macro, 20_growth, 29_CES_parameters, core

References

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.