Implement GDP-based floor cost scenario and refactor related code#2310
Conversation
Co-authored-by: lecfab <1883023+lecfab@users.noreply.github.com>
…rameters Co-authored-by: lecfab <1883023+lecfab@users.noreply.github.com>
…ased, consolidate equations with ifthenE Co-authored-by: lecfab <1883023+lecfab@users.noreply.github.com>
…edundancy Co-authored-by: lecfab <1883023+lecfab@users.noreply.github.com>
…pital Co-authored-by: lecfab <1883023+lecfab@users.noreply.github.com>
Co-authored-by: lecfab <1883023+lecfab@users.noreply.github.com>
…emove useless parens Co-authored-by: lecfab <1883023+lecfab@users.noreply.github.com>
…in.gms Co-authored-by: lecfab <1883023+lecfab@users.noreply.github.com>
…dYear; apply style to modified blocks Co-authored-by: lecfab <1883023+lecfab@users.noreply.github.com>
…avoid overwrite Co-authored-by: lecfab <1883023+lecfab@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…) which only refers to 2005 value and is misleading for VRE
…differentiate-floor-costs
…differentiate-floor-costs
|
Extensive tests of all AMT scenarios available here:
|
fschreyer
left a comment
There was a problem hiding this comment.
Yeah, thanks for this development and also extensive clean-up. As far as I understand the default does not change for now. And the floor cost switch variations seem plausible.
Maybe we check with RSE that all the macro refactoring is fine. I do start to like it but it should be defined somewhere centrally. Maybe for later, @LaviniaBaumstark
| q_costTeCapital(t,regi,teLearn)$(NOT (pm_data(regi,"tech_stat",teLearn) eq 4 AND t.val le 2020)) .. | ||
|
|
||
| $macro macro_capCumGlob (sum(regi2, vm_capCum(t,regi2,teLearn)) + pm_capCumForeign(t,regi,teLearn)) | ||
| $macro macro_costRegi (pm_data(regi,"floorcost",teLearn) + pm_data(regi,"learnMult_wFC",teLearn) * macro_capCumGlob ** pm_data(regi,"learnExp_wFC",teLearn)) |
There was a problem hiding this comment.
Where are those macros used? Are they really used many times? Looks quite specific to the learning parameter initializtation?
There was a problem hiding this comment.
They greaaatly simplify the equations below :) because then the equations just say "start with regional, then slowly go to global", etc.
| + pm_capCumForeign(t,regi,teLearn) | ||
| ) ** fm_dataglob("learnExp_wFC",teLearn) | ||
| ) | ||
| *** after 2020 for specific cm_floorCostScen: regional capital costs |
There was a problem hiding this comment.
Why does that go into core/equations.gms? Previously this was in datainput, right?
There was a problem hiding this comment.
Ok, I understand it better now. Acutally there is also a super nice documentation of the learning curve approach. I wasn't aware of that. I assume you added this before.
There was a problem hiding this comment.
Yeah the separation between datainput and equations is not super clear, but broadly:
- datainput defines the global and regional parameters for floor costs and learning rates
- equations put that together to obtain the correct curve depending on cm_floorCostScen
- yes a while ago I pushed that :) Documenting learning equations #1937
|
Btw, why is total capacity of electricity higher in GDP-based floor cost? |
|
Thanks for your comments Felix, I merged now! @LaviniaBaumstark: just flagging the use of local macros in this PR for code simplification (see equations.gms) @robertpietzcker I did not change the default setting, but I think the objective was to use |

Purpose of this PR
Note: upon request by @robertpietzcker, CHA sees the price corresponding to half of its GDPpCap, reflecting its leading role in new technologies.
Results
Changes of
pm_data floorcost(in $/W)See details in this sheet. Mostly matters for spv and windon


Changed in Pk750 scenario
gdpBasedType 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)
/p/tmp/fabricel/floorCostGDPbased/202605-changed, see compScen pdfs there