Skip to content

Turning off state RPS/CES policies doesn't turn off state-level forced fossil retirements #49

@aschleif

Description

@aschleif

Summary

Setting GSw_StateRPS to 0 turns off state RPS and CES constraints so that these policies aren't enforced, but it doesn't turn off the forced retirements defined in \state_policies\forced_retirements.csv.

Update: It seems like this issue exists when GSw_Retire=0 but not otherwise.

ReEDS/b_inputs.gms

Lines 1728 to 1745 in d027653

$onempty
parameter forced_retirements(i,st) "--integer-- year in which to force retirements of certain techs by state"
/
$offlisting
$ondelim
$include inputs_case%ds%forced_retirements.csv
$offdelim
$onlisting
/ ;
$offempty
set forced_retire(i,r,t) ;
forced_retire(i,r,t)$[sum{st$r_st(r,st), (yeart(t)>=forced_retirements(i,st))$forced_retirements(i,st) }] = yes ;
* If the technology you would upgrade to is part of forced_retire, then include the
* upgrade tech in forced_retire
forced_retire(i,r,t)$[upgrade(i)$(sum{ii$upgrade_to(i,ii), forced_retire(ii,r,t) })] = yes ;

The file forced_retirements.csv gets copied over to inputs_case and processed in WriteHintage.py to produce inputs_case\hintage_data.csv independently of any switches.

Potential Solutions

In b_inputs.gms, something like:

* Force retirements if state RPS/CES policies are turned on
if(Sw_StateRPS = 1,
  forced_retire(i,r,t)$[sum{st$r_st(r,st), (yeart(t)>=forced_retirements(i,st))$forced_retirements(i,st) }] = yes ;
* If the technology you would upgrade to is part of forced_retire, then include the
* upgrade tech in forced_retire
  forced_retire(i,r,t)$[upgrade(i)$(sum{ii$upgrade_to(i,ii), forced_retire(ii,r,t) })] = yes ;
) ;

And a similar if statement in WriteHintage.py.

(moved from https://github.nrel.gov/ReEDS/ReEDS-2.0/issues/1740)

Metadata

Metadata

Assignees

No one assigned

    Labels

    TODOKnown tasks identified in code or review that haven't been scheduled yetbugSomething isn't workingmaintenanceRoutine upkeep tasks like dependency updates, refactoring, and technical debt cleanup

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions