Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make windoff independent from windon #1782

Merged
merged 25 commits into from
Sep 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
b4ebfa4
windon replaces wind: update equations, hard-coded input, and copy fr…
lecfab Jul 17, 2024
6ab2e6d
input updated, gamscompile works
lecfab Jul 17, 2024
fa68ae9
remove wind from sets, apart from all_te for data input
lecfab Jul 18, 2024
8da1714
remove cm_wind_offshore switch
lecfab Jul 24, 2024
f0cd44c
changing wind to windon, associated cleaning
lecfab Jul 29, 2024
1ece70e
windon: missing inco0
lecfab Aug 5, 2024
f5cb9e4
windon: Energy IO based on IEA data
lecfab Aug 5, 2024
6ef5479
windon: remove pewin.seel.wind from pe2se
lecfab Aug 13, 2024
217e48b
windon: avoid wind wherever possible by restricting input to 'te' ins…
lecfab Aug 13, 2024
0f0badc
Merge branch 'remindmodel:develop' into offshoreNearterm
lecfab Aug 13, 2024
e60ccf1
Merge branch 'develop' of https://github.com/remindmodel/remind into …
lecfab Aug 13, 2024
34ac82d
windon: tidying before tests
lecfab Aug 13, 2024
8a48a8e
Merge branch 'offshoreNearterm' of github.com:lecfab/remind into offs…
lecfab Aug 13, 2024
b3b80f1
restore scenario_config
lecfab Aug 13, 2024
47272d9
Merge branch 'remindmodel:develop' into offshoreNearterm
lecfab Aug 26, 2024
611dc32
Merge branch 'develop' of github.com:lecfab/remind into offshoreNearterm
lecfab Sep 16, 2024
e7200fa
remove default slurmConfig; typo in sets description
lecfab Sep 20, 2024
e95602e
revert to H12 regions in sets.gms
lecfab Sep 20, 2024
771fafe
update cm_incolearn description
lecfab Sep 20, 2024
6601090
add comments following Robert's and Chris' review
lecfab Sep 20, 2024
ecd5516
p40_TechBound uses 'pewin' to describe sum of windon and windoff
lecfab Sep 25, 2024
c732ac4
fixing unused technologies to zero (wind-related and pcc/pco)
lecfab Sep 25, 2024
945a932
revert p40_TechBound to 'wind' as 'pewin' is not in all_te
lecfab Sep 25, 2024
1c4b365
fixing prodSe for unused tech
lecfab Sep 26, 2024
15c845a
merge
lecfab Sep 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions config/scenario_config.csv

Large diffs are not rendered by default.

76 changes: 33 additions & 43 deletions core/bounds.gms
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,14 @@ vm_costTeCapital.fx(t,regi,teNoLearn) = pm_inco0_t(t,regi,teNoLearn);

*' #### Model Bounds in Core
*' Lower limit on all P2SE technologies capacities to 100 kW of all technologies and all time steps
loop(pe2se(enty,enty2,te)$((not sameas(te,"biotr")) AND (not sameas(te,"biodiesel")) AND (not sameas(te,"bioeths")) AND (not sameas(te,"gasftcrec")) AND (not sameas(te,"gasftrec"))
AND (not sameas(te,"tnrs"))),
loop(pe2se(enty,enty2,te) $ (
(not sameas(te,"biotr")) AND
(not sameas(te,"biodiesel")) AND
(not sameas(te,"bioeths")) AND
(not sameas(te,"gasftcrec")) AND
(not sameas(te,"gasftrec")) AND
(not sameas(te,"tnrs"))
),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like it :-)

vm_cap.lo(t,regi,te,"1")$(t.val gt 2026 AND t.val le 2070) = 1e-7;
if( (NOT teCCS(te)),
vm_deltaCap.lo(t,regi,te,"1")$(t.val gt 2026 AND t.val le 2070) = 1e-8;
Expand Down Expand Up @@ -58,17 +64,26 @@ v_capDistr.fx(t,regi,te,rlf)$(rlf.val gt 9) = 0;
vm_cap.up("2010",regi,teStor,"1") = 0;

*' completely switching off technologies that are not used in the current version of REMIND, although their parameters are declared:
vm_cap.fx(t,regi,"solhe",rlf) = 0;
vm_deltaCap.fx(t,regi,"solhe",rlf) = 0;

vm_cap.fx(t,regi,"fnrs",rlf) = 0;
vm_deltaCap.fx(t,regi,"fnrs",rlf) = 0;

vm_cap.fx(t,regi,"pcc",rlf) = 0;
vm_deltaCap.fx(t,regi,"pcc",rlf) = 0;
loop(all_te $ (
sameas(all_te, "solhe") OR
sameas(all_te, "fnrs") OR
sameas(all_te, "pcc") OR
sameas(all_te, "pco") OR
sameas(all_te, "wind") OR
sameas(all_te, "storwind") OR
sameas(all_te, "gridwind")
),
vm_cap.fx(t,regi,all_te,rlf) = 0;
vm_deltaCap.fx(t,regi,all_te,rlf) = 0;
);

vm_cap.fx(t,regi,"pco",rlf) = 0;
vm_deltaCap.fx(t,regi,"pco",rlf) = 0;
vm_demPe.fx(t,regi,"pecoal","seel","pcc") = 0;
vm_demPe.fx(t,regi,"pecoal","seel","pco") = 0;
vm_prodSe.fx(t,regi,"pecoal","seel","pcc") = 0;
vm_prodSe.fx(t,regi,"pecoal","seel","pco") = 0;
*** windoffshore-todo: to remove when removing wind from all_te
vm_demPe.fx(t,regi,"pewin","seel","wind") = 0;
vm_prodSe.fx(t,regi,"pewin","seel","wind") = 0;

*' Switch off grey hydrogen investments in gash2 technology from 2025. Our current seh2 hydrogen represents only additional (clean) hydrogen use cases to current ones
*' and there are no plans to expand grey hydrogen production for that.
Expand Down Expand Up @@ -259,38 +274,13 @@ vm_emiMac.fx(t,regi,"oc") = 0;
*** -------------------------------------------------------------------------
*** Exogenous values:
*** -------------------------------------------------------------------------
***----
*RP* fix capacities for wind, spv and csp to real world 2010 and 2015 values:
*CG* adding 2020 values
***----
loop(te$(sameas(te,"csp")),
vm_cap.lo("2015",regi,te,"1") = 0.95 * pm_histCap("2015",regi,te)$(pm_histCap("2015",regi,te) gt 1e-10);
vm_cap.up("2015",regi,te,"1") = 1.05 * pm_histCap("2015",regi,te)$(pm_histCap("2015",regi,te) gt 1e-10);
);


$IFTHEN.WindOff %cm_wind_offshore% == "0"
loop(te$(sameas(te,"spv") OR sameas(te,"wind") ),
vm_cap.lo("2015",regi,te,"1") = 0.95 * pm_histCap("2015",regi,te)$(pm_histCap("2015",regi,te) gt 1e-10);
vm_cap.up("2015",regi,te,"1") = 1.05 * pm_histCap("2015",regi,te)$(pm_histCap("2015",regi,te) gt 1e-10);
vm_cap.lo("2020",regi,te,"1") = 0.95 * pm_histCap("2020",regi,te)$(pm_histCap("2020",regi,te) gt 1e-10);
vm_cap.up("2020",regi,te,"1") = 1.05 * pm_histCap("2020",regi,te)$(pm_histCap("2020",regi,te) gt 1e-10);
vm_cap.up("2025",regi,te,"1")$(pm_histCap("2025",regi,te) gt 1e-6) = 1.05 * pm_histCap("2025",regi,te)$(pm_histCap("2025",regi,te) gt 1e-6); !! only set a bound if values >1MW are in pm_histCap
);

$ENDIF.WindOff


$IFTHEN.WindOff %cm_wind_offshore% == "1"
loop(te$(sameas(te,"spv") OR sameas(te,"wind") OR sameas(te,"windoff")),
vm_cap.lo("2015",regi,te,"1") = 0.95 * pm_histCap("2015",regi,te)$(pm_histCap("2015",regi,te) gt 1e-10);
vm_cap.up("2015",regi,te,"1") = 1.05 * pm_histCap("2015",regi,te)$(pm_histCap("2015",regi,te) gt 1e-10);
vm_cap.lo("2020",regi,te,"1") = 0.95 * pm_histCap("2020",regi,te)$(pm_histCap("2020",regi,te) gt 1e-10);
vm_cap.up("2020",regi,te,"1") = 1.05 * pm_histCap("2020",regi,te)$(pm_histCap("2020",regi,te) gt 1e-10);
vm_cap.up("2025",regi,te,"1")$(pm_histCap("2025",regi,te) gt 1e-6) = 1.05 * pm_histCap("2025",regi,te)$(pm_histCap("2025",regi,te) gt 1e-10); !! only set a bound if values >1MW are in pm_histCap
);

$ENDIF.WindOff
*** fix capacities for wind, spv and csp to real world historical values:
vm_cap.lo("2015",regi,teVRE,"1") = 0.95 * pm_histCap("2015",regi,teVRE)$(pm_histCap("2015",regi,teVRE) gt 1e-10);
vm_cap.up("2015",regi,teVRE,"1") = 1.05 * pm_histCap("2015",regi,teVRE)$(pm_histCap("2015",regi,teVRE) gt 1e-10);
vm_cap.lo("2020",regi,teVRE,"1") = 0.95 * pm_histCap("2020",regi,teVRE)$(pm_histCap("2020",regi,teVRE) gt 1e-10);
vm_cap.up("2020",regi,teVRE,"1") = 1.05 * pm_histCap("2020",regi,teVRE)$(pm_histCap("2020",regi,teVRE) gt 1e-10);
vm_cap.up("2025",regi,teVRE,"1")$(pm_histCap("2025",regi,teVRE) gt 1e-6) = 1.05 * pm_histCap("2025",regi,teVRE)$(pm_histCap("2025",regi,teVRE) gt 1e-10); !! only set a bound if values >1MW are in pm_histCap

*** lower bound on capacities for ngcc and ngt and gaschp for regions defined at the pm_histCap file
loop(te$(sameas(te,"ngcc") OR sameas(te,"ngt") OR sameas(te,"gaschp")),
Expand Down
Loading
Loading