GenXProject / GenX.jl

GenX: a configurable power system capacity expansion model for studying low-carbon energy futures. More details at : https://genx.mit.edu
https://genxproject.github.io/GenX.jl/
GNU General Public License v2.0
262 stars 105 forks source link

Add a setting to turn off storage virtual discharge #638

Closed gmantegna closed 4 months ago

gmantegna commented 4 months ago

Description

This PR adds a setting and accompanying feature to turn off the storage virtual charge/discharge functionality if desired by the user.

Note that this PR does not remove the decision variables for virtual charging and discharging; it only removes them from the CRM constraint itself, so they are forced to zero by the optimization as they have an associated cost. I designed this PR this way for the sake of code simplicity, as this is a feature that is not expected to be used regularly (so I don't think that the increased computational efficiency that would come from removing the variables from the optimization entirely is worth the increased code complexity).

What type of PR is this? (check all applicable)

Related Tickets & Documents

Checklist

How this can be tested

I also did this myself, but if you run the SmallNewEngland case with the new "StorageVirtualDischarge" setting set to 0, you will see that the storage virtual charging and discharging in virtual_discharge.csv becomes all zeros.

Post-approval checklist for GenX core developers

After the PR is approved