Enable and revise switches on CO2 capture, utilization, and storage assumption - #2424
Enable and revise switches on CO2 capture, utilization, and storage assumption #2424tabeado wants to merge 10 commits into
Conversation
|
@JakobBD please check if the renaming works from your perspective! |
|
Generally looks good to me! Main comment:To a non-CarMa person, it may not always be instantly clear that "capture" means carbon capture. Could also mean that some sector/phenomenon is captured by the model. I would opt for Runner-ups:
I see that it's not as nice and clean, but the reduced ambiguity outweighs that to me, personally. Nit-pick:As far as I know, we are mostly using camelCase in REMIND, and the convention for acronyms at the beginning of a variable name is all lowercase, so |
|
Thanks for making that point, @JakobBD! I checked other switch and variable naming again, and changed it to |
lecfab
left a comment
There was a problem hiding this comment.
Thanks for the consistent renaming!
and the years are restricted to t.val ge cm_startyear
This should not be necessary, as t already does that in core/sets.gms:
t(ttot) "optimisation time, years between cm_startyear and 2150 with 5 to 20 years time steps",
*** This set includes only the active modeled years, which are the years from ttot greater than or equal to the model run year defined in cm_startyear.
*** t is a subset of ttot and contains only elements defined in ttot.
*** It is a dynamic set:
*** Values are calculated dynamically in GAMS, see a few lines below.
*** t may not be used in certain operations like declarations or equations including lag terms.
...
t(ttot) $ (ttot.val ge cm_startyear) = Yes;
| parameter | ||
| cm_IndCCSscen "CCS for Industry" | ||
| cm_optimisticMAC "assume optimistic Industry MAC from AR5 Ch. 10?" | ||
| ; | ||
| cm_IndCCSscen = 1; !! def = 1 | ||
| cm_optimisticMAC = 0; !! def = 0 | ||
| *' | ||
| parameter | ||
| cm_optimisticMAC "assume optimistic Industry MAC from AR5 Ch. 10?" | ||
| cm_co2captureInd "carbon capture for Industry on/off" | ||
| ; | ||
| cm_optimisticMAC = 0; !! def = 0 | ||
| cm_co2captureInd = 1; !! def = 1 | ||
| *' | ||
| parameter | ||
| cm_CCS_cement "CCS for cement sub-sector" | ||
| cm_co2captureCement "carbon capture for cement sub-sector on/off" | ||
| ; | ||
| cm_CCS_cement = 1; !! def = 1 | ||
| cm_co2captureCement = 1; !! def = 1 | ||
| *' | ||
| parameter | ||
| cm_CCS_chemicals "CCS for chemicals sub-sector" | ||
| cm_co2captureChemicals "carbon capture for chemicals sub-sector on/off" | ||
| ; | ||
| cm_CCS_chemicals = 1; !! def = 1 | ||
| cm_co2captureChemicals = 1; !! def = 1 | ||
| *' | ||
| parameter | ||
| cm_CCS_steel "CCS for steel sub-sector" | ||
| cm_co2captureSteel "carbon capture for steel sub-sector on/off" | ||
| ; | ||
| cm_CCS_steel = 1; !! def = 1 | ||
| cm_co2captureSteel = 1; !! def = 1 |
There was a problem hiding this comment.
would add the !! regexp = 0|1 where relevant
There was a problem hiding this comment.
the switch implementation is referring to only ne / eq 1, but I agree that it makes sense. Hope @JakobBD does not mind
Co-authored-by: Fabrice Lécuyer <lecfab+git@gmail.com>


Purpose of this PR
The switches disabling CO2 capture, geologic CO2 storage, and CO2 utilization led to infeasibilities. This PR revises the implementation by avoiding infeasibilities, improving consistency of switch naming, and improving clarity of switches.
Refactoring and Standardization of Carbon Capture Parameters:
cm_ccapturescen-->c_co2captureEnergycm_IndCCSscen-->cm_co2captureIndcm_CCS_cement-->cm_co2captureCementcm_CCS_chemicals-->cm_co2captureChemicalscm_CCS_steel-->cm_co2captureSteelc_regi_capturescen-->c_regi_co2captureEnergycm_CCS_markup-->cm_co2captureEnergyMarkupcm_Industry_CCS_markup-->cm_co2captureIndMarkupcm_ccapturescen(c_co2captureEnergy) applicationTurning off carbon capture via this switch (i.e.
=2) so far meant that also geologic storage was turned off and thatvm_emiCDr.lwas set to 0 incarbonRemoval/portfolio/presolve. Now, this switch really just adjusts the carbon capture of the teCCS technologies, i.e. energy conversion technologies with CCS in the core. Any other carbon capture technologies - in industry, dac, and oae - have to be set separately; and geologic storage and CCU are also operated individually.This is clarified in the switch description, provides greatest flexibility without adding new switches, and avoids unwanted conflicts.
Updates of bounds to fix infeasibilities when turning off technologies
Turning off carbon capture, geologic storage, and CO2 utilization led to infeasibilities because the variables were fixed to 0 for all t. Instead of fixing capacities, upper bounds on
vm_deltaCapare now set tosm_eps.Type of change
Indicate the items relevant for your PR by replacing ◻️ with ☑️.
Do not delete any lines. This makes it easier to understand which areas are affected by your changes and which are not.
Parts concerned
Impact
Checklist
Do not delete any line. Leave unfinished elements unchecked so others know how far along you are.
In the end all checkboxes must be ticked before you can merge.
make test) after my final commit and all tests pass (FAIL 0)remind2if and where it was neededforbiddenColumnNamesin readCheckScenarioConfig.R in case the PR leads to deprecated switchesCHANGELOG.mdcorrectly (added, changed, fixed, removed, input data/calibration)Further information (optional)