All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
This update primarily fixes a bug related to the LogicDispatchModel.
There is also a bug fix related to the utils.nmga method.
- Previous versions of
Osier.CapacityExpansionran extremely slowly with theLogicDispatchModel. The issue was caused by repeated calls toutils.synchronize_unitswhich should only happen once. This redundancy has been removed and users can expect at least a 2x increase in speed with theLogicDispatchModelover the standardDispatchModel. - The
nmgaalgorithm would not work when the number of objectives and decision variables did not match. This has been corrected.
This update introduces some big new features to Osier.
Osierincludes a new "hierarchical dispatch" model for electricity dispatch (PR #71).- A new
nmgamodule was added to facilitate "n-dimensional modeling-to-generate alternatives." (PR #72) - Two new tutorials in the documentation
- "Constraint" tutorial - how to constrain an
Osiermodel with objective functions. - "MGA" tutorial - how to perform MGA with
Osier'snmgamodule.
- "Constraint" tutorial - how to constrain an
- The "dispatch" tutorial demonstrates the hierarchical dispatch algorithm.
- Fixes an issue with GitHub actions that tried setting up a
condaenvironment via Mambaforge (now deprecated). - Version listed in documentation is now linked with
pyproject.toml.
- Migrates the
setup.pyto apyproject.tomlconfiguration file. - Updates tests to automatically use the
coincbcsolver.
- Adds tests and examples
- Adds more objectives and methods in the
equationsmodule. - Adds more helper functions in
utils.
- Updates the
READMEto instruct users on current installation procedures.
- Fixes a bug where storage constraints were not initialized in the
DispatchModel. - Fixes the tolerances in the testing suite so that the tests pass. Previously, a single test was failing due to (-1e-9 == 0 ± 1e-12). This should pass, since 1e-9 is still close to zero.
- Adds the following Technology subclasses
StorageTechnologywhich has storage attributesinitial_storage,storage_capacity.RampingTechnologywhich has ramping attributesramp_upandramp_down.
- Adds ramping and storage constraints to the
osier.DispatchModelwhich correspond to theStorageTechnologyandRampingTechnologysubclasses.
- Adds
__init__.pyfile toosier.modelsso the submodule can be imported.
- Changes
pip install -e .[doc]in the github workflow topip install .[doc]to catch installation issues.
- Fixes a path issue in the
conf.pyfile so that Sphinx can findosier.
- Updates the
READMEto include information about PyPI andreadthedocs.
The first release of osier on PyPI and publication of documentation on
readthedocs.
osier.Technologyclass that stores data about technologies and handles units.osier.DispatchModelclass that generates a simple a dispatch model when users passosier.Technologyobjects.- Publishes documentation on readthedocs.