diff --git a/doc/images/MAC_costs.png b/doc/images/MAC_costs.png new file mode 100644 index 0000000000000000000000000000000000000000..b4bdb721a65356466986fb440e55c29b5b6097f7 Binary files /dev/null and b/doc/images/MAC_costs.png differ diff --git a/modules/37_industry/fixed_shares/equations.gms b/modules/37_industry/fixed_shares/equations.gms index 84c42339f9e49a01da8dda06ec1e6e6478ab12dd..f0b827491e6743609be483e67463a30b9aca464e 100644 --- a/modules/37_industry/fixed_shares/equations.gms +++ b/modules/37_industry/fixed_shares/equations.gms @@ -60,9 +60,25 @@ q37_cementCCS(ttot,regi)$( ttot.val ge cm_startyear *' Industry CCS costs (by subsector) are equal to the integral below the MAC *' cost curve. -*' $$C_j = E_{\text{base},j} p \sum_{i = 1}^{n} \left(q_{n,j} - q_{i,j}\right)$$ -*' with $E_\text{base}$ the baseline emissions, $p$ the price step, and $q_i$ -*' the abatement fraction at step $i$ on the MAC. +*' 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 CO~2~ 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 colourd rectangle in the +*' figure). The `sum(steps$( ord(steps) eq pm_macStep ... )` part simply +*' selects the right step within the MAC curve. From this product (rectangle), +*' the area above the MAC curve (pink) is subtractad. To calculate it, the +*' abatement level at each MAC step up to and including the current step is +*' summed up. The area is subdivided into `pm_macStep` rectangles of height +*' `1 sm_dmac` and width `pm_macAbat(steps)` (which is zero for the first $n$ +*' steps at which price level no abatement is available). +*' Multiplying the area under the curve with the step width `sm_dmac` and the +*' baseline emissions (before mitigation) converts the units to $/tC and GtC. q37_IndCCSCost(ttot,regi,emiInd37)$( ttot.val ge cm_startyear ) .. vm_IndCCSCost(ttot,regi,emiInd37) =e=