Skip to content

Commit

Permalink
Merge pull request #1782 from lecfab/offshoreNearterm
Browse files Browse the repository at this point in the history
Make windoff independent from windon
  • Loading branch information
lecfab authored Sep 26, 2024
2 parents c8bf5c8 + 15c845a commit c90e82b
Show file tree
Hide file tree
Showing 43 changed files with 402 additions and 483 deletions.
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"))
),
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

0 comments on commit c90e82b

Please sign in to comment.