The 33_carbonRemoval module adds further options to remove CO2 from the atmosphere beyond BECCS and afforestation, which are calculated in the core. Currently, direct air carbon capture and storage (DACCS) and enhanced weathering of rocks (EW) are available, ocean alkalinization (OAE) implemented as ocean liming. All options can be switched on and off individually via the switches called cm_33[option abbreviation]. The module calculates capacities, emissions (including captured carbon), energy demand & supply, costs, and limitations associated with the different options.
Interface plot missing!
| Description | Unit | A | |
|---|---|---|---|
| cm_33DAC | choose whether DAC (direct air capture) should be included into the CDR portfolio. | x | |
| cm_33EW | choose whether EW (enhanced weathering) should be included into the CDR portfolio. | x | |
| cm_33OAE | choose whether OAE (ocean alkalinity enhancement) should be included into the CDR portfolio. 0 = OAE not used, 1 = used | x | |
| cm_33_BCpriceForm | biochar price assumptions (revenue from using biochar in agriculture or construction) | x | |
| cm_33_EW_shortTermLimit | Limit on 2030 potential for enhanced weathering, defined as % of land on which EW is applied. Default 0.5% of land | x | |
| cm_33_EW_upScalingRateLimit | Annual growth rate limit on upscaling of mining & spreading rocks on fields | x | |
| cm_33_OAE_eff | OAE efficiency measured in tCO2 uptaken by the ocean per tCaO. Typically between 0.9-1.4 (which corresponds to 1.2-1.8 molCO2/molCaO). | \(tCO2/tCaO\) | x |
| cm_33_OAE_limit_EEZ | Global limit [Mt CO2 ocean uptake/a]. Upper bound on regions’ ocean uptake is set based on EEZ distribution. | x | |
| cm_33_OAE_scen | OAE distribution scenarios | x | |
| cm_33_OAE_startyr | The year when OAE could start being deployed | \(year\) | x |
| cm_33_maxFeShare | max share of the CDR sectors’ FE demand in the region’s total FE demand, by FE type. Default is 10% | x | |
| cm_LimRock | limit amount of rock spread each year | \(Gt\) | x |
| cm_ccapturescen | carbon capture option choice, no carbon capture only if CCS and CCU are switched off! | x | |
| cm_frac_NetNegEmi | tax on net negative emissions to reflect risk of overshooting, formulated as fraction of carbon price | x | |
| cm_gs_ew | grain size (for enhanced weathering, CDR module) | \(micrometre\) | x |
| cm_startyear | first optimized modelling time step | \(year\) | x |
| pm_dt (tall) |
difference to last timestep | x | |
| pm_emifac (tall, all_regi, all_enty, all_enty, all_te, all_enty) |
emission factor by technology for all types of energy-related emissions | \(GtC/TWa, Mt CH4/TWa, Mt N/TWa, Mt SO2/TWa, Mt BC/TWa, Mt OC/TWa\) | x |
| pm_gdp_gdx (tall, all_regi) |
GDP path from gdx, updated iteratively | \(T\$\) | x |
| pm_pop (tall, all_regi) |
population data | \(bn people\) | x |
| pm_taxCO2eqSum (ttot, all_regi) |
Total CO2 price including general trajectory (pm_taxCO2eq), regional markup (pm_taxCO2eqRegi) and social cost of carbon (pm_taxCO2eqSCC) [T\(/GtC]. Multiply by 272 to convert to\)/tCO2. | x | |
| pm_ts (tall) |
(t_n+1 - t_n-1)/2 for a timestep t_n | x | |
| pm_ttot_val (ttot) |
value of ttot set element | x | |
| sm_D2015_2_D2017 | Convert US$2015 to US$2017 | x | |
| sm_EJ_2_TWa | convert from Exa Joule to Tera Watt annum | x | |
| sm_c_2_co2 | convert mass from carbon to CO2 (44/12) | x | |
| sm_eps | small number: 1e-9 | x | |
| sm_giga_2_non | giga to non | x | |
| sm_tBC_2_TWa | t biochar to TWa biochar (28700 [MJ/tBC]*10^-12[EJ/MJ]/31.536[EJ/TWa]) | x | |
| sm_trillion_2_non | trillion to non | x | |
| vm_cap (tall, all_regi, all_te, rlf) |
net total capacities [TW] for energy conversion technologies, [GtC] for CCS chain in ccs2te (pipelines/injection) | x | |
| vm_capFac (ttot, all_regi, all_te) |
capacity factor of conversion technologies | \(share\) | x |
| vm_cesIO (tall, all_regi, all_in) |
Production factor | x | |
| vm_demFeSector_afterTax (ttot, all_regi, all_enty, all_enty, emi_sectors, all_emiMkt) |
final energy demand per sector and emissions market after taxation, demand sectors should use this variable in their final energy balance equations so demand-side marginals include taxes effects | \(TWa\) | x |
| vm_demSeOth (ttot, all_regi, all_enty, all_te) |
other sety demand from certain technologies, have to calculated in additional equations | \(TWa\) | x |
| vm_emiAllco2neg (ttot, all_regi) |
net-negative CO2 emissions (as positive variable) | x | |
| vm_emiCdr (ttot, all_regi, all_enty) |
total (negative) CO2 emissions from CDR technologies that are calculated in the CDR module. Note that it includes all atmospheric CO2 entering the CCUS chain (i.e. CO2 stored (CDR) AND used (not CDR)) | \(GtC\) | x |
| vm_prodFe (ttot, all_regi, all_enty, all_enty, all_te) |
final energy production | \(TWa\) | x |
| vm_prodSe (tall, all_regi, all_enty, all_enty, all_te) |
secondary energy production (including only production as first product, not production as second (coupled) product) | \(TWa\) | x |
| Description | Unit | |
|---|---|---|
| sm_capture_rate_cdrmodule | CO2 capture rate for CDR energy and process emissions, i.e. fegas use in OAE and DAC and for calcination emissions in oae | |
| vm_biocharRevenue (ttot, all_regi) |
Additional revenue from use of biochar | \(tril\$\) |
| vm_co2capture_cdr (ttot, all_regi, all_enty, all_enty, all_te, rlf) |
total emissions captured through technologies in the CDR module that enter the CCUS chain + captured emissions from associated FE demand | \(GtC / a\) |
| vm_co2emi_cdrFE_beforeCapture (ttot, all_regi, all_te) |
CO2 emissions from energy use in CDR-sector, before capture | \(GtC / a\) |
| vm_emiCdrTeDetail (ttot, all_regi, all_te) |
gross (negative) emissions from CDR technologies in the CDR module by technology. Includes all atmospheric CO2 that enter the CCUS chain (i.e. CO2 stored (CDR) AND used (not CDR)) | \(GtC / a\) |
| vm_omcosts_cdr (tall, all_regi) |
O&M costs for spreading grinded rocks on fields | \(T\$\) |
(DAC) Direct air capture uses heat and electricity to capture CO2 from the atmosphere, which can then either be used or stored. Modelled is a low-temperature solid adsorbent process based on the climeworks technology described in Beuttler et al. 2019. We assume 5.28 EJ/Gt C (* 12 Gt C/44 Gt CO2) = 1.44 GJ/tCO2 (10^6 kJ / GJ 1h/3600s) = 400 kWh/tCO2 electricity and 21.12 EJ/Gt C (* 12 Gt C/44 Gt CO2) = 5,76 GJ/tCO2 (10^6 kJ / GJ 1h/3600s) = 1600 kWh/tCO2 low-temperature heat demand. The heat can be provided via district heat, electricity, gas, or H2. If gas is used, the resulting CO2 is captured with a capture rate of 90%.
(EW) Basalt is mined and ground to fine grain sizes (specified in cm_gs_ew, by default 20 µm), and then spread on crop fields where it weathers in reaction with water and atmospheric CO2. Electricity is needed to grind the rocks and diesel is needed for transportation and spreading on crop fields. The weathering process leads to an exponential decay over time of the spread rocks. There is an upper limit on the amount of rock that can be on the fields, so that in equilibrium only the part that decays in one timestep can be replaced in the next. In addition, an arbitrary limit of the amount of rock spread each year can be set in cm_LimRock. Costs consist of costs for capital, O&M, distribution and transport (grades depend on region specific transport distance from mine to fields).
(OAE) Ocean alkalinity enhancement via ocean liming draws down CO2 from the atmosphere by adding (hydrated) lime to the coastal or open ocean. Calcination process, which involves heating limestone to typically around 900-1000°C, results in lime (CaO) and CO2. The CO2 from the process as well as burning gas (if used for fueling the calciner) is assumed to be captured with a capture rate of 90%. The steps required to produce hydrated lime for ocean liming, including limestone extraction, comminution, calcination, and hydration, are already well-established and used at a large scale in the cement industry. Two options for ocean liming are parametrized: obtaining lime using a traditional calciner fueled by natural gas and a novel calciner that can be fueled by either electricity or hydrogen. The efficiency of the method depends on exogenous parameter cm_33_OAE_eff and distribution scenario (which can be optimistic or pesimistic depending on the discharge rate, e.g., how hard it is to avoid precipitation when distributing the alkaline material).
Equations for each option determine the capacity, emissions, energy demand, costs and limits.
FE demand from Beuttler et al. 2019 (Climeworks)
p33_fedem("dac", "feels") = 5.28; !! FE demand electricity for ventilation
p33_fedem("dac", "fehes") = 21.12; !! FE demand heat for material recovery
fix costs [T$/Gt stone]. Data from strefler et al. in \(/t stone: mining, crushing, grinding (5.0 investment costs, 25.1 O&M costs), spreading (12.1 O&M costs) ``` s33_costs_fix = 0.0422; s33_co2_rem_pot = 0.3 * 12/44; !! default for basalt, for Olivine 1.1 ``` rock weathering rate (i.e. fraction of rock weathering per year) at ambient temperature (25 degree C), based on eq 2 in strefler, amann et al. (2018): wr = grain surface area based weathering rate (10^-10.53 mol m^-2 s^-1) * molar weight of basalt/forsterite (140.7 g/mol) * 3.155^7 s/a * specific surface area(depending on grain size cm_gs_ew) ``` s33_rock_weath_rate_ambientT = 10**(-10.53) * 125 * 3.155*10**7 * 69.18*(cm_gs_ew**(-1.24)); ``` rock weathering rate for different climate grades: SI Tab F-1 of strefler, amann et al. (2018) ``` p33_rock_weath_rate("1") = s33_rock_weath_rate_ambientT * 0.94; p33_rock_weath_rate("2") = s33_rock_weath_rate_ambientT * 0.29; ``` JeS FE demand fit from Thorben: SI D in strefler, amann et al. (2018) ``` p33_fedem("weathering", "feels") = 6.62 * cm_gs_ew**(-1.16); p33_fedem("weathering", "fedie") = 0.3; ``` Factor distributing the global rock limit across regions according to population ``` p33_LimRock(regi) = pm_pop("2005",regi) / sum(regi2,pm_pop("2005",regi2)); ``` Annual growth rate limit on upscaling of mining & spreading rocks on fields ``` p33_EW_upScalingLimit(ttot) = cm_33_EW_upScalingRateLimit; ``` Calculation of short term limit on rocks spread on field in terms of Gt rocks that can be spread. ``` p33_EW_shortTermEW_Limit(regi) = cm_33_EW_shortTermLimit * sum(rlf, f33_maxProdGradeRegiWeathering(regi, rlf)); ``` Narrative switch: what share of cropland can be used for EW? ``` parameter f33_EW_maxShareOfCropland(ext_regi) "Maximum share of cropland available for enhanced weathering by region" / %cm_33_EW_maxShareOfCropland% /; p33_EW_maxShareOfCropland(regi) = 1; !! if no value is assigned to GLO, the default share is set to 100% p33_EW_maxShareOfCropland(regi) = f33_EW_maxShareOfCropland("GLO"); !! if a value is assigned to GLO, this value is set for all regions loop(ext_regi\)f33_EW_maxShareOfCropland(ext_regi), p33_EW_maxShareOfCropland(regi)$(regi_groupExt(ext_regi, regi)) = f33_EW_maxShareOfCropland(ext_regi); );
#### Biochar input data
if deployment-independent path for biochar over time: fix price by timestep
parameter p33_BiocharPricePath(ttot,char) “Biochar price trajectories assumptions over time (independent of actual deployment) [US\(2015/t BC]" /\)ondelim \(include "./modules/33_carbonRemoval/portfolio/input/p33_BiocharPricePath.cs4r"\)offdelim /; p33_BiocharPricePath(ttot, char)\((ttot.val gt 2050) = p33_BiocharPricePath("2050", char); if (cm_33_BCpriceForm eq 1, p33_BiocharPrice(ttot) = p33_BiocharPricePath(ttot, "priceLow") / sm_tBC_2_TWa / sm_trillion_2_non * sm_D2015_2_D2017; elseif (cm_33_BCpriceForm eq 2), p33_BiocharPrice(ttot) = p33_BiocharPricePath(ttot, "priceHigh") / sm_tBC_2_TWa / sm_trillion_2_non * sm_D2015_2_D2017; else p33_BiocharPrice(ttot) = cm_33_BCpriceForm / sm_tBC_2_TWa / sm_trillion_2_non * sm_D2015_2_D2017; ); parameter p33_BiocharLimitCropland(all_regi) "Limits on Biochar deployment on land based on cropland in 2020. Assumption: max 50 t BC / ha / 10 yrs = 5 t BC / ha / yr. Unit: [Mt BC/ yr]" /\)ondelim \(include "./modules/33_carbonRemoval/portfolio/input/p33_BiocharLimitCropland.cs4r"\)offdelim /;
#### ocean alkalinity enhancement input data (Kowalczyk et al., 2024)
!! An assumption; generally the efficiency might vary between 0.9-1.4 tCO2/tCaO (1.2-1.8 molCO2/molCaO), !! depending on e.g., ocean chemistry and currents in a given region s33_OAE_efficiency = cm_33_OAE_eff / sm_c_2_co2; !! GtC (ocean uptake) per unit of GtCaO !! 0.78 tCO2 are emitted in the decomposition of limestone to produce 1 tCaO s33_OAE_chem_decomposition = 0.78 / sm_c_2_co2 / s33_OAE_efficiency; !! GtC from decomposition per 1GtC taken by the ocean, 0.78 t/tCaO p33_fedem(te_oae33, “feels”) = 1.0 / s33_OAE_efficiency; !! 996 MJ/tCaO, used for grinding, air separation, CO2 compression p33_fedem(te_oae33, “fehes”) = 3.1 / s33_OAE_efficiency; !! 3100 MJ/tCaO, used for calcination if(cm_33_OAE_scen = 0, !! pessimistic scenario for distribution, high diesel demand p33_fedem(te_oae33, “fedie”) = 2.6 / s33_OAE_efficiency; !! 2600 MJ/tCaO (corresponds to discharge rate of 30 t/h) ); !! fedie is used for inland transport of the material and maritime transport to distribute the material in the ocean if(cm_33_OAE_scen = 1, !! optimistic scenario for distribution, lower diesel demand p33_fedem(te_oae33, “fedie”) = 0.77 / s33_OAE_efficiency; !! 770 MJ/tCaO (corresponds to the discharge rate of 100 t/h) );
data for distribution of global oae limit based on EEZ size
Distribute global limit set for OAE based on size of EEZ
if (cm_33_OAE_limit_EEZ gt 0, p33_oae_eez_limit(regi) = cm_33_OAE_limit_EEZ / (sm_c_2_co2 * 1000) * p33_EEZdistribution(regi) ; !! [Mt CO2] / [Mt CO2/Gt C] * fraction = [Gt C] else p33_oae_eez_limit(regi) = 10; !! 10 Gt C ocean uptake effectively means no upper limit (i.e. 36.67 Gt CO2 by one region alone) );
#### All CDR qoptions
Upper bound for FE share by CDR approaches
p33_shfetot_up(t,regi,entyFe,sector)\((t.val ge 2040 AND sameAs(sector, "CDR") AND (sameAS(entyFe, "fedie") OR sameAS(entyFe, "feels") OR sameAS(entyFe, "fehes") OR sameAS(entyFe, "feh2s") OR sameAS(entyFe, "fegas"))) = cm_33_maxFeShare; v33_FE_total.l(t,regi,entyFe) = 0; parameter p33_GDP_NetNeg_share_s(ext_regi) "Maximum share of spending on NNE in GDP, global or region-specific" / %cm_33_GDP_netNegCDR_maxShare% /; p33_GDP_NetNeg_share(regi) = 1; !! if no value assigned to GLO, default is 100% p33_GDP_NetNeg_share(regi) = p33_GDP_NetNeg_share_s("GLO"); !! if a value is assigned to GLO, this value is set for all regions loop(ext_regi\)p33_GDP_NetNeg_share_s(ext_regi), p33_GDP_NetNeg_share(regi)$(regi_groupExt(ext_regi, regi)) = p33_GDP_NetNeg_share_s(ext_regi); ); ```
CDR Final Energy Balance
\[\begin{multline*} \sum_{fe2cdr(entyFe,entyFe2,te\_used33)}\left( v33\_FEdemand(t,regi,entyFe,entyFe2,te\_used33) \right) = \sum_{\left(entySe,te\right)\$se2fe(entySe,entyFe,te)}\left( vm\_demFeSector\_afterTax(t,regi,entySe,entyFe,"cdr","ETS") \right) \end{multline*}\]
First part: Sum over CDR-module technologies’ dedicated negative
emissions (Note: energy-supply side (BECCS, in the future biochar) and
land-use CDR are handled in core) Second part: The gross negative
emissions form oae are discounted by unavoidable
calcination emissions released due to <100 percent capture.
Accounting note: The variable is the maximum potential, as if all
captured carbon was stored. The net-effect is smaller, if not all
captured carbon (vm_co2capture_cdr -> v_co2capture in core)
is stored but used for CCU (or vented by capturevalve). The net effect
is only explicitly calculated in reportEmi.R. Furthermore, the CDR
module might also capture energy related and CDR process emissions that
are not part of vm_emiCdr but could lead to additional CDR if energy
carrier is biogenic or synfuel.
\[\begin{multline*} vm\_emiCdr(t,regi,"co2") = \sum_{te\_used33} vm\_emiCdrTeDetail(t,regi,te\_used33) + \left(1 - sm\_capture\_rate\_cdrmodule\right) \cdot \sum_{te\_oae33}\left( v33\_co2emi\_non\_atm\_calcination\left(t, regi, te\_oae33\right) \right) \end{multline*}\]
Calculation of gross (negative) CO2 emissions from capacity. Negative emissions from enhanced weathering also result from decaying rock spread in previous timesteps, so emissions do not equal to the capacity (i.e., how much rock is spread in a given timestep).
\[\begin{multline*} vm\_emiCdrTeDetail\left(t, regi, te\_used33\right) = - \sum_{teNoTransform2rlf33\left(te\_used33, rlf\right)}\left( vm\_capFac\left(t, regi, te\_used33\right) \cdot vm\_cap\left(t, regi, te\_used33, rlf\right) \right) \end{multline*}\]
CO2 emissions from fegas consumption for heat production before capture (OAE and DAC)
\[\begin{multline*} vm\_co2emi\_cdrFE\_beforeCapture\left(t, regi, te\_ccs33\right) = pm\_emifac(t,regi,"segafos","fegas","tdfosgas","co2") \cdot \sum_{fe2cdr\left("fegas", entyFe2, te\_ccs33\right)}\left( v33\_FEdemand\left(t, regi,"fegas", entyFe2, te\_ccs33\right)\right) \end{multline*}\]
Preparation of captured emissions to enter the CCUS chain. The first part of the equation describes emissons captured from the ambient air, the second part is CO2 captured from energy usage (OAE or DAC) the third part is CO2 captured from calcination for OAE
\[\begin{multline*} \sum_{teCCS2rlf\left(te, rlf\right)}\left( vm\_co2capture\_cdr\left(t, regi, "cco2", "ico2", te, rlf\right)\right) = - vm\_emiCdrTeDetail\left(t, regi, "dac"\right) + sm\_capture\_rate\_cdrmodule \cdot \left( \sum_{te\_ccs33}\left( vm\_co2emi\_cdrFE\_beforeCapture\left(t, regi, te\_ccs33\right)\right) + \sum_{te\_oae33}\left( v33\_co2emi\_non\_atm\_calcination\left(t, regi, te\_oae33\right)\right) \right) \end{multline*}\]
Limit the amount of H2 from biomass to the demand without CDR. It’s a sustainability bound to prevent a large demand for biomass.
\[\begin{multline*} \sum_{pe2se("pebiolc","seh2",te)} vm\_prodSe(t,regi,"pebiolc","seh2",te) \leq vm\_prodFe(t,regi,"seh2","feh2s","tdh2s") - \sum_{fe2cdr("feh2s",entyFe2,te\_used33)} v33\_FEdemand(t,regi,"feh2s",entyFe2,te\_used33) \end{multline*}\]
Calculation of FE demand for DAC, i.e., electricity demand for ventilation, and heat demand.
\[\begin{multline*} \sum_{fe2cdr(entyFe,entyFe2,"dac")} v33\_FEdemand(t,regi,entyFe,entyFe2,"dac") = p33\_fedem\left("dac", entyFe2\right) \cdot sm\_EJ\_2\_TWa \cdot \left(- vm\_emiCdrTeDetail(t,regi,"dac")\right) \end{multline*}\]
Calculation of the amount of ground rock spread in timestep t.
\[\begin{multline*} \sum_{rlf\_cz33, rlf} v33\_EW\_onfield(t,regi,rlf\_cz33,rlf) = \sum_{teNoTransform2rlf33("weathering",rlf)}\left( vm\_capFac(t,regi,"weathering") \cdot vm\_cap(t,regi,"weathering",rlf) \right) \end{multline*}\]
Calculation of the total amount of ground rock on the fields in timestep t. The first part of the equation describes the decay of the rocks added until that time, the rest describes the newly added rocks. The amounts already on or newly spread on the fields are multiplied with the total fraction remaining for the next time step, i.e. the fraction not weathering in the time step years. This fraction is generally calculated as (1-p33_rock_weath_rate)(time_step_years). For better solver solution, it is rewritten according to ab = exp(log(a)b) as exp(log(1-p33_rock_weath_rate) time_step_years).
\[\begin{multline*} v33\_EW\_onfield\_tot(ttot,regi,rlf\_cz33,rlf) = v33\_EW\_onfield\_tot(ttot-1,regi,rlf\_cz33,rlf) \cdot exp\left(log\left(1-p33\_rock\_weath\_rate(rlf\_cz33)\right) \cdot pm\_ts(ttot)\right) + v33\_EW\_onfield(ttot-1,regi,rlf\_cz33,rlf) \cdot \left( \sum_{tall\$\left(tall.val le \left(ttot.val -\frac{ pm\_ts(ttot)}{2}\right) and tall.val gt \left(ttot.val - pm\_ts(ttot)\right)\right)}\left( exp\left(log\left(1-p33\_rock\_weath\_rate(rlf\_cz33)\right) \cdot \left(ttot.val - tall.val\right)\right)\right) \right) + v33\_EW\_onfield(ttot,regi,rlf\_cz33,rlf) \cdot \left( \sum_{tall\$\left(tall.val le ttot.val and tall.val gt \left(ttot.val -\frac{ pm\_ts(ttot)}{2}\right)\right)}\left( exp\left(log\left(1-p33\_rock\_weath\_rate(rlf\_cz33)\right) \cdot \left(ttot.val-tall.val\right)\right)\right) \right) \end{multline*}\]
Calculation of (negative) CO2 emissions from enhanced weathering.
\[\begin{multline*} vm\_emiCdrTeDetail\left(t,regi, "weathering"\right) = \sum_{rlf\_cz33, rlf}\left( - v33\_EW\_onfield\_tot(t,regi,rlf\_cz33,rlf) \cdot s33\_co2\_rem\_pot \cdot p33\_rock\_weath\_rate(rlf\_cz33) \right) \end{multline*}\]
Calculation of FE demand for enhanced weathering, i.e., electricity demand for grinding, and the diesel demand for transportation and spreading on crop fields.
\[\begin{multline*} \sum_{fe2cdr(entyFe,entyFe2,"weathering")} v33\_FEdemand(t,regi,entyFe,entyFe2,"weathering") = p33\_fedem("weathering",entyFe2) \cdot sm\_EJ\_2\_TWa \cdot \sum_{rlf\_cz33, rlf} v33\_EW\_onfield(t,regi,rlf\_cz33,rlf) \end{multline*}\]
O&M costs of EW, consisting of fix costs for mining, grinding and spreading, and transportation costs.
\[\begin{multline*} vm\_omcosts\_cdr(t,regi) = \sum_{rlf\_cz33, rlf}\left( \left(s33\_costs\_fix + p33\_EW\_transport\_costs(regi,rlf\_cz33,rlf)\right) \cdot v33\_EW\_onfield(t,regi,rlf\_cz33,rlf) \right) \end{multline*}\]
Limit total amount of ground rock on the fields to regional maximum potentials.
\[\begin{multline*} \sum_{rlf} v33\_EW\_onfield\_tot(t,regi,rlf\_cz33,rlf) \leq p33\_EW\_maxShareOfCropland(regi) \cdot f33\_maxProdGradeRegiWeathering(regi,rlf\_cz33) \end{multline*}\]
An annual limit for the maximum global amount of rocks spread [Gt] can be set via cm_LimRock, e.g. due to sustainability concerns.
\[\begin{multline*} \sum_{rlf\_cz33, rlf} v33\_EW\_onfield(t,regi,rlf\_cz33,rlf) \leq cm\_LimRock \cdot p33\_LimRock(regi) \end{multline*}\]
Short term bound on spreading of rock
\[\begin{multline*} \sum_{rlf\_cz33, rlf} v33\_EW\_onfield(t,regi,rlf\_cz33,rlf) \leq p33\_EW\_shortTermEW\_Limit(regi) \end{multline*}\]
Limits on the upscaling rate of mining and spreading of rocks. Current cost parameters do not include cost of additional mining being developed, thus adjustment cost are not effective.
\[\begin{multline*} \sum_{rlf\_cz33, rlf} v33\_EW\_onfield(ttot,regi,rlf\_cz33,rlf) \leq \left(1+p33\_EW\_upScalingLimit(ttot)\right)^{pm\_dt(ttot) } \cdot \sum_{rlf\_cz33, rlf} v33\_EW\_onfield(ttot-1,regi,rlf\_cz33,rlf) + p33\_EW\_shortTermEW\_Limit(regi) \end{multline*}\]
Revenue from Biochar
\[\begin{multline*} vm\_biocharRevenue\left(t, regi\right) = p33\_BiocharPrice(t) \cdot vm\_demSeOth(t,regi,"sebiochar","biocharuse") \end{multline*}\]
Calculation of FE demand for OAE, i.e., electricity for rock preprocessing, and heat for calcination.
\[\begin{multline*} \sum_{fe2cdr\left(entyFe, entyFe2, te\_oae33\right)}\left( v33\_FEdemand\left(t, regi, entyFe, entyFe2, te\_oae33\right)\right) = p33\_fedem\left(te\_oae33, entyFe2\right) \cdot sm\_EJ\_2\_TWa \cdot \left(- vm\_emiCdrTeDetail\left(t, regi, te\_oae33\right)\right) \end{multline*}\]
The CO2 captured from limestone decomposition (OAE technologies only).
\[\begin{multline*} v33\_co2emi\_non\_atm\_calcination\left(t, regi, te\_oae33\right) = - s33\_OAE\_chem\_decomposition \cdot vm\_emiCdrTeDetail\left(t, regi, te\_oae33\right) \end{multline*}\]
Limit OAE by region based on the regions’ share of the exclusive economic zone. There are still many uncertainties about whether OAE would more likely be done outside or inside EEZ. The equation is thus deactivated by default. Arguments in favor of OAE being done in EEZ, which can justify the distribution by EEZ in case the cost-efficient allocation via cm_implicitQttyTrgt is not feasible: 1. Tides lead to better mixing of the waters, thus more contact of the more alkaline surface waters with the atmosphere, leading to an expected higher CO2 uptake efficiency. 2. The generally lower water depth compared to the high seas helps OAE efficiency as the more alkaline surface waters don’t sink to the deep oceans as quickly/ easily. 3. Legal situation: likely easier to create a legal framework for EEZs than high seas, where a significantly larger number of countries would need to agree Potential issues to consider: 1. available EEZ-area is limited through other uses (fishing, offshore wind, marine protection etc.). Esp. marine protected areas are uncertain, as they are supposed to cover 30% of lgobal oceans by 2030 and are currently mainly in EEZ areas. Some could, however, also be primary target for OAE, e.g. with ecosystems susceptible to ocean acidification like coral reefs. 2. Sufficiency of available area: depending on deployment depth and time-scales until the new equilibrium is reached, the total EEZ area may not suffice for chosen uptake targets. At the default uptake efficiency of 1.2 tCO2/tCaO, 5 GtCO2 ocean uptake/yr corresponds ~ to distribution of CaO once a year on the entire EEZ area at 2m depth. 3. Uptake efficiency differs by local conditions, and high-efficiency areas may lie outside EEZ areas.
\[\begin{multline*} -p33\_oae\_eez\_limit(regi) \leq \sum_{te\_oae33}\left( vm\_emiCdrTeDetail\left(t,regi, te\_oae33\right)\right) \end{multline*}\]
Limit the amount of FE for CDR to a given fraction of total FE
\[\begin{multline*} v33\_FEsector\_total(t,regi,entyFe,sector) = \sum_{emiMkt\$sector2emiMkt(sector,emiMkt)}\left( \sum_{entySe\$sefe(entySe,entyFe)}\left( vm\_demFeSector\_afterTax(t,regi,entySe,entyFe,sector,emiMkt)\right)\right) \end{multline*}\]
\[\begin{multline*} v33\_FE\_total(t,regi,entyFe) = \sum_{sector2emiMkt(sector,emiMkt)}\left( \sum_{entySe\$sefe(entySe,entyFe)}\left( vm\_demFeSector\_afterTax(t,regi,entySe,entyFe,sector,emiMkt)\$entyFe2Sector(entyFe,sector)\right)\right) \end{multline*}\]
\[\begin{multline*} v33\_shfeSector(t,regi,entyFe,sector) \cdot v33\_FE\_total(t,regi,entyFe) = v33\_FEsector\_total(t,regi,entyFe,sector) \end{multline*}\]
Limit spending on net negative emissions to a share of the region’s GDP Warning: This needs to be adapted if cm_NetNegEmi_calculation = 1 is used.
\[\begin{multline*} v33\_NetNegEmi\_expenses(t,regi) = \left(1-cm\_frac\_NetNegEmi\right) \cdot pm\_taxCO2eqSum(t,regi) \cdot vm\_emiAllco2neg(t,regi) \end{multline*}\]
Limitations There are no known limitations.
| Description | |
|---|---|
| f33_EW_maxShareOfCropland (ext_regi) |
Maximum share of cropland available for enhanced weathering by region |
| f33_maxProdGradeRegiWeathering (all_regi, rlf) |
regional maximum potentials for enhanced weathering in Gt of grinded stone/a for different grades |
| p33_BiocharLimitCropland (all_regi) |
Limits on Biochar deployment on land based on cropland in 2020. Assumption: max 50 t BC / ha / 10 yrs = 5 t BC / ha / yr. Unit: |
| p33_BiocharPrice (ttot) |
Biochar prices assumption |
| p33_BiocharPricePath (ttot, char) |
Biochar price trajectories assumptions over time (independent of actual deployment) |
| p33_EEZdistribution (all_regi) |
share in total EEZ area |
| p33_EW_maxShareOfCropland (all_regi) |
Share of cropland that can be used for enhanced weathering. Limits maximum amount of rocks weathering. |
| p33_EW_shortTermEW_Limit (all_regi) |
Limit on 2030 potential for enhanced weathering, defined in Gt rocks, based on % of land on which EW is applied |
| p33_EW_transport_costs (all_regi, rlf, rlf) |
transport costs |
| p33_EW_upScalingLimit (ttot) |
Annual growth rate limit on upscaling of mining & spreading rocks on fields |
| p33_FE_limit (ttot, all_regi, all_enty, sector) |
Maximum amount of FE for a sector based on p33_shfetot_up |
| p33_GDP_NetNeg_share (all_regi) |
Upper bound on share of expenses for net negative emissions in GDP |
| p33_GDP_NetNeg_share_s (ext_regi) |
Maximum share of spending on NNE in GDP, global or region-specific |
| p33_LimRock (all_regi) |
regional share of EW limit [fraction], calculated ex ante for a maximal annual amount of 8 Gt rock in D:_technical_curve_transport_remind_regions.m |
| p33_fedem (all_te, all_enty) |
final energy demand of each technology [EJ/GtC] (for EW the unit is [EJ/Gt stone]) |
| p33_oae_eez_limit (all_regi) |
Regional limit on ocean uptake |
| p33_rock_weath_rate (rlf) |
fraction of stone weathering per year depending on climate grade (warm or temperate) |
| p33_shfetot_up (ttot, all_regi, all_enty, sector) |
Upper bound on share of a sector in final energy of a FE type |
| q33_DAC_FEdemand (ttot, all_regi, all_enty) |
calculates final energy demand from DAC |
| q33_EW_FEdemand (ttot, all_regi, all_enty) |
calculates final energy demand from enhanced weathering |
| q33_EW_LimEmi (ttot, all_regi) |
limits EW to a maximal annual amount of ground rock of cm_LimRock |
| q33_EW_ShortTermBound (ttot, all_regi) |
Limits short term potential for enhanced weathering |
| q33_EW_capconst (ttot, all_regi) |
calculates amount of ground rock spread on fields |
| q33_EW_emi (ttot, all_regi) |
calculates amount of carbon captured by EW |
| q33_EW_omcosts (ttot, all_regi) |
calculates O&M costs for spreading ground rocks on fields |
| q33_EW_onfield_tot (ttot, all_regi, rlf, rlf) |
total amount of ground rock on fields |
| q33_EW_potential (ttot, all_regi, rlf) |
limits the total potential of EW per region and grade |
| q33_EW_upscaling_rate (ttot, all_regi) |
limits spreading of rock to a steep but credible upscaling rate |
| q33_H2bio_lim (ttot, all_regi) |
limits H2 from bioenergy to FE - H2 demand from CDR, i.e. no H2 from bioenergy for DAC |
| q33_OAE_EEZ_limit (ttot, all_regi) |
sets upper bound on regional ocean uptake. A global limit is distributed according to size of the EEZ |
| q33_OAE_FEdemand (ttot, all_regi, all_enty, all_te) |
calculates final energy demand for ocean alkalinity enhancement |
| q33_OAE_co2emi_non_atm_calcination (ttot, all_regi, all_te) |
calculates the CO2 that comes from calcination (limestone decomposition) |
| q33_biocharRevenue (ttot, all_regi) |
calculates revenue from biochar use, biochar-price x quantity |
| q33_capconst (ttot, all_regi, all_te) |
calculates amount of carbon captured by DAC and OAE |
| q33_carbonRemovalspending (ttot, all_regi) |
expenses for net negative emissions relative to GDP |
| q33_cco2_cdr_fromFE (ttot, all_regi, all_te) |
calculates the amount of captured CO2 that comes from burning gas |
| q33_ccsbal (ttot, all_regi) |
calculates CCS emissions from CDR technologies |
| q33_demFeCDR (ttot, all_regi, all_enty) |
CDR demand balance for final energy |
| q33_emiCDR (ttot, all_regi) |
aggregates the (negative) emissions captured by the CDR technologies |
| q33_shfeSector_SectorTotal (ttot, all_regi, all_enty, emi_sectors) |
a sector’s final energy type demand |
| q33_shfeSector_Total (ttot, all_regi, all_enty) |
total FE demand in a region (aggregating similar fe types) |
| q33_shfeSector_share (ttot, all_regi, all_enty, emi_sectors) |
share of a sector’s final energy type demand in the region’s total FE type |
| s33_OAE_chem_decomposition | the fraction of CO2 that comes from chemical decomposition in the calcination process |
| s33_OAE_efficiency | the amount of rock required to sequester 1GtC |
| s33_OAE_glo_limit | global limit for OAE |
| s33_co2_rem_pot | specific carbon removal potential |
| s33_costs_fix | fixed costs for mining, grinding, spreading |
| s33_rock_weath_rate_ambientT | fraction of stone weathering per year at ambient temperature (25 degree C) |
| s33_step | size of bins in v33_weathering_onfield |
| v33_EW_onfield (ttot, all_regi, rlf, rlf) |
amount of ground rock spread on fields in each timestep |
| v33_EW_onfield_tot (ttot, all_regi, rlf, rlf) |
total amount of ground rock on fields, for each climate zone and transportation distance |
| v33_FE_total (ttot, all_regi, all_enty) |
total FE demand in a region (aggregating similar fe types) |
| v33_FEdemand (ttot, all_regi, all_enty, all_enty, all_te) |
FE demand of each technology |
| v33_FEsector_total (ttot, all_regi, all_enty, emi_sectors) |
FE type demand by sector |
| v33_NetNegEmi_expenses (ttot, all_regi) |
expenses for net negative emissions |
| v33_co2emi_non_atm_calcination (ttot, all_regi, all_te) |
CO2 emissions from calcination before capture |
| v33_shfeSector (ttot, all_regi, all_enty, emi_sectors) |
share of a sector’s final energy type demand in the region’s total FE type |
| Unit | A | |
|---|---|---|
| f33_EW_maxShareOfCropland (ext_regi) |
x | |
| f33_maxProdGradeRegiWeathering (all_regi, rlf) |
x | |
| p33_BiocharLimitCropland (all_regi) |
\(Mt BC/ yr\) | x |
| p33_BiocharPrice (ttot) |
\(trilUS\$2017/TWa BC\) | x |
| p33_BiocharPricePath (ttot, char) |
\(US\$2015/t BC\) | x |
| p33_EEZdistribution (all_regi) |
\(fraction\) | x |
| p33_EW_maxShareOfCropland (all_regi) |
x | |
| p33_EW_shortTermEW_Limit (all_regi) |
x | |
| p33_EW_transport_costs (all_regi, rlf, rlf) |
\(T\$/Gt stone\) | x |
| p33_EW_upScalingLimit (ttot) |
x | |
| p33_FE_limit (ttot, all_regi, all_enty, sector) |
x | |
| p33_GDP_NetNeg_share (all_regi) |
x | |
| p33_GDP_NetNeg_share_s (ext_regi) |
x | |
| p33_LimRock (all_regi) |
x | |
| p33_fedem (all_te, all_enty) |
x | |
| p33_oae_eez_limit (all_regi) |
x | |
| p33_rock_weath_rate (rlf) |
x | |
| p33_shfetot_up (ttot, all_regi, all_enty, sector) |
x | |
| q33_DAC_FEdemand (ttot, all_regi, all_enty) |
x | |
| q33_EW_FEdemand (ttot, all_regi, all_enty) |
x | |
| q33_EW_LimEmi (ttot, all_regi) |
x | |
| q33_EW_ShortTermBound (ttot, all_regi) |
x | |
| q33_EW_capconst (ttot, all_regi) |
x | |
| q33_EW_emi (ttot, all_regi) |
x | |
| q33_EW_omcosts (ttot, all_regi) |
x | |
| q33_EW_onfield_tot (ttot, all_regi, rlf, rlf) |
x | |
| q33_EW_potential (ttot, all_regi, rlf) |
x | |
| q33_EW_upscaling_rate (ttot, all_regi) |
x | |
| q33_H2bio_lim (ttot, all_regi) |
x | |
| q33_OAE_EEZ_limit (ttot, all_regi) |
x | |
| q33_OAE_FEdemand (ttot, all_regi, all_enty, all_te) |
x | |
| q33_OAE_co2emi_non_atm_calcination (ttot, all_regi, all_te) |
x | |
| q33_biocharRevenue (ttot, all_regi) |
x | |
| q33_capconst (ttot, all_regi, all_te) |
x | |
| q33_carbonRemovalspending (ttot, all_regi) |
x | |
| q33_cco2_cdr_fromFE (ttot, all_regi, all_te) |
x | |
| q33_ccsbal (ttot, all_regi) |
x | |
| q33_demFeCDR (ttot, all_regi, all_enty) |
x | |
| q33_emiCDR (ttot, all_regi) |
x | |
| q33_shfeSector_SectorTotal (ttot, all_regi, all_enty, emi_sectors) |
x | |
| q33_shfeSector_Total (ttot, all_regi, all_enty) |
x | |
| q33_shfeSector_share (ttot, all_regi, all_enty, emi_sectors) |
x | |
| s33_OAE_chem_decomposition | x | |
| s33_OAE_efficiency | \(Gt rock / GtC\) | x |
| s33_OAE_glo_limit | \(tC / a\) | x |
| s33_co2_rem_pot | \(Gt C/Gt ground rock\) | x |
| s33_costs_fix | \(T\$/Gt stone\) | x |
| s33_rock_weath_rate_ambientT | x | |
| s33_step | \(Gt stone\) | x |
| v33_EW_onfield (ttot, all_regi, rlf, rlf) |
\(Gt\) | x |
| v33_EW_onfield_tot (ttot, all_regi, rlf, rlf) |
\(Gt\) | x |
| v33_FE_total (ttot, all_regi, all_enty) |
x | |
| v33_FEdemand (ttot, all_regi, all_enty, all_enty, all_te) |
\(TWa\) | x |
| v33_FEsector_total (ttot, all_regi, all_enty, emi_sectors) |
x | |
| v33_NetNegEmi_expenses (ttot, all_regi) |
x | |
| v33_co2emi_non_atm_calcination (ttot, all_regi, all_te) |
\(GtC / a\) | x |
| v33_shfeSector (ttot, all_regi, all_enty, emi_sectors) |
x |
| description | |
|---|---|
| all_emiMkt | emission markets |
| all_enty | all types of quantities |
| all_in | all inputs and outputs of the CES function |
| all_regi | all regions |
| all_te | all energy technologies, including from modules |
| ccs2te(all_enty, all_enty, all_te) | chain for ccs |
| char | characteristics of technologies |
| emi(all_enty) | types of emissions, these emissions are given to the climate module |
| emi_sectors | comprehensive sector set used for more detailed emissions accounting (REMIND-EU) and for CH4 tier 1 scaling - potentially to be integrated with similar set all_exogEmi |
| enty(all_enty) | all types of quantities |
| entyFe(all_enty) | final energy types. |
| entyFe2FeType(all_enty, all_enty) | final energy categories mapping to final energy for CDR |
| entyFe2Sector(all_enty, emi_sectors) | final energy (stationary and transportation) mapping to sectors (industry, buildings, transportation and cdr) |
| entySe(all_enty) | secondary energy types |
| ext_regi | extended regions list (includes subsets of H12 regions) |
| fe2cdr(all_enty, all_enty, all_te) | mapping of FE carriers supplying FE demand for all technologies |
| pe2se(all_enty, all_enty, all_te) | map primary energy carriers to secondary |
| regi(all_regi) | all regions used in the solution process |
| regi_groupExt(ext_regi, all_regi) | extended region group mapping. Mapping model regions that belong to region group, including one to one region mapping |
| rlf | cost levels of fossil fuels |
| rlf_cz33(rlf) | representing weathering rates depending on climate zones according to Strefler, Amann et al. (2017) |
| se2fe(all_enty, all_enty, all_te) | map secondary energy to end-use energy using a technology |
| sector2emiMkt(emi_sectors, all_emiMkt) | mapping sectors to emission markets |
| sefe(all_enty, all_enty) | map secondary energy to final energy |
| t(ttot) | optimisation time, years between cm_startyear and 2150 with 5 to 20 years time steps |
| tall | time index, each year from 1900 to 3000 |
| te(all_te) | energy technologies |
| teAdj(all_te) | technologies with adjustment costs on capacity additions |
| teAdj33(all_te) | used CDR technologies with linearly growing constraint on control variable |
| teCCS2rlf(all_te, rlf) | mapping for CCS technologies to grades |
| teLearn(all_te) | Learning technologies (for which investment costs are reduced endogenously through capacity deployment). |
| teLearn33(all_te) | used learning CDR technologies |
| teNoTransform(all_te) | all technologies that do not transform energy but still have investment and O&M costs (like storage or grid) |
| teNoTransform2rlf(all_te, rlf) | mapping for no transformation technologies to grades |
| teNoTransform2rlf33(all_te, rlf) | mapping for final energy to grades (used CDR technologies) |
| teNoTransform33(all_te) | used CDR technologies that do not transform energy but still have investment and O&M costs (like storage or grid) |
| te_all33(all_te) | all CDR technologies |
| te_ccs33(all_te) | used CDR technologies that require CCS |
| te_oae33(all_te) | OAE technologies used |
| te_used33(all_te) | used CDR technologies (specified by switches) |
| ttot(tall) | time index with spin-up, years between 1900 and 2150 with 5 to 20 years time steps |
Jessica Strefler, Katarzyna Kowalczyk, Anne Merfort, Tabea Dorndorf
01_macro, 21_tax, 46_carbonpriceRegi, 47_regipol, core