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)
[x] Feature
Related Tickets & Documents
Checklist
[x] Code changes are sufficiently documented; i.e. new functions contain docstrings and .md files under /docs/src have been updated if necessary.
[x] The latest changes on the target branch have been incorporated, so that any conflicts are taken care of before merging. This can be accomplished either by merging in the target branch (e.g. 'git merge develop') or by rebasing on top of the target branch (e.g. 'git rebase develop'). Please do not hesitate to reach out to the GenX development team if you need help with this.
[x] Code has been tested to ensure all functionality works as intended.
[x] CHANGELOG.md has been updated (if this is a 'notable' change).
[x] I consent to the release of this PR's code under the GNU General Public license.
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
[x] Check that the latest changes on the target branch are incorporated, either via merge or rebase
[x] Remember to squash and merge if incorporating into develop
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