OSeMOSYS / OSeMOSYS_GNU_MathProg

The GNU MathProg implementation of OSeMOSYS
Apache License 2.0
9 stars 15 forks source link

Alternate storage code #29

Closed tniet closed 4 years ago

tniet commented 4 years ago

This pull request provides alternate storage code that runs faster but does not account for intra-time-slice variations in storage levels like the original OSeMOSYS storage equations. This simplification is appropriate for some types of storage (large storage hydro, for example) but not necessarily others (short term battery storage when modelling long term expansion of the system, for example), depending on the temporal resolution of the model. As always, the user needs to consider the implications of any assumptions inherent in the model structure they adopt for a given analysis.

To use the modified storage equations the time slices need to be labelled as consecutive integers rather than a alphanumeric label.

Additional changes are to require storage refilling rather than having to specify an arbitrary starting storage level, and adding a maximum storage capacity parameter to limit the allowable installed capacity of the storage system.

I don't think this should replace the existing storage equations but maybe it can be an option for users to decide which set of the storage equations to use.

willu47 commented 4 years ago

Given this:

I don't think this should replace the existing storage equations but maybe it can be an option for users to decide which set of the storage equations to use. I'm going to close this Pull Request. This alternative storage code can live on this branch for now, until we can decide whether to incorporate some kind of switch to choose between storage options, or perhaps a generalisation which allows moving between simple or complex implementations?

tniet commented 4 years ago

Sounds like a good plan. Thanks @willu47!