Oemof.solph

Latest version: v0.5.2

Safety actively analyzes 622389 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 6

0.5.2

API changes

* New bool attribute `use_remaining_value` of `oemof.solph.EnergySystem`
* Use list for period definition in multi-period investment optimization.

New features

* Allow for evaluating differences in the remaining vs. the original value
for multi-period investments.
* Allow to define minimum up- and down-time per time step

Bug fixes

* Fix handling of investment annuities and fixed costs for multi-period models:
Limit to costs that occur within the optimization horizon to prevent a
bias towards investments happening earlier in the optimization horizon.
* Fix bugs in multi-period documentation.
* Fix minimum uptime being relevant for initial downtime (and vice versa).
* Fix duplicated discounting of fixed costs for multi-period investment

Other changes

* Improved compatibility with upcoming oemof.network

Known issues

* Documentation, example and API of OffsetConverter are inconsistent
and might not work as expected.

Contributors

* Patrik Schönfeldt
* Johannes Kochems
* Julian Endres
* Hendrik Huyskens
* Raul Ciria Aylagas

0.5.1

API changes

* Unify API for constant sized objects and sizing of investment. For both, `Flow` and
`GenericStorage`, the argument `investment` is now deprecated. Instead,
`nominal_value` and `nominal_storage_capacity` accept an `Investment` object.
* Change investment for experimental :class:`oemof.solph.components.experimental._sink_dsm.SinkDSM`: Remove
obsolete parameters `flex_share_down` and `flex_share_up`.


New features

* Add option to run multi-period (dynamic) investment models with oemof.solph as an experimental feature:
* You can change from standard model to multi-period model by defining the newly introduced `periods`
attribute of your energy system. Be aware that it is experimental as of now. `periods` is a dictionary
mapping the periods you want to model (usually years) to pandas.date_range objects.
* Add attributes `periods` to :class:`oemof.solph._energy_system.EnergySystem`.
* Introduce new Pyomo Sets `PERIODS` and `TIMEINDEX` in :class:`oemof.solph.models.Model`.
* Index all investment-related variables with `PERIODS` and flow variable with `TIMEINDEX`, which
is a tuple of periods and timesteps.
* Add lifetime tracking for investment options by introducing the attributes `lifetime` and `age`.
* Add new investment-related variables `total` holding the total capacity, `old` holding capacity
to be decommissioned, `old_exo` (for exogenous) holding existing capacity to be decommissioned and
`old_end` holding model-endogenously installed capacity to be decommissioned after its lifetime.
* Include discounting and calculating annuities in the objective function terms. Introduce attribute `discount_rate`
of :class:`oemof.solph.models.Model` and `interest_rate` for individual investment objects (options.Investment).
* Add `storage_level_constraint` that allows to set flows from/to storage (in)active based on storage content.


Documentation

* See extensive documentation in user guide and API reference for the new (experimental) multi-period feature.


Bug fixes

* Fixed error when calling `oemof_installation_test` as console script.
* Corrected several typos in the docs.


Testing

* Add tests for experimental SinkDSM component.


Contributors

* Patrik Schönfeldt
* Johannes Kochems
* Tobi Rohrer
* Patrik Schönfeldt
* Julian Endres
* Jann Launer

0.5.1rc1

API changes

* The component `Transformer` is renamed to `Converter`.
When people hear "transformer", they think of electrical devices.
However, the Transformer is neither meant to be (only) electrical
nor bidirectional (as electrical transformers typically are).
Thus, the more generic term "converter" is now used.
(Note that we always had the argument "conversion_factor".)
* Unify API for constant sized objects and sizing of investment. For both, `Flow` and
`GenericStorage`, the argument `investment` is now deprecated. Instead,
`nominal_value` and `nominal_storage_capacity` accept an `Investment` object.
* Change investment for experimental :class:`oemof.solph.components.experimental._sink_dsm.SinkDSM`: Remove
obsolete parameters `flex_share_down` and `flex_share_up`.
* Mainline link component :class:`oemof.solph.components._link.Link` from experimental.

New features

* Add option to run multi-period (dynamic) investment models with oemof.solph as an experimental feature:
* You can change from standard model to multi-period model by defining the newly introduced `periods`
attribute of your energy system. Be aware that it is experimental as of now. `periods` is a dictionary
mapping the periods you want to model (usually years) to pandas.date_range objects.
* Add attributes `periods` to :class:`oemof.solph._energy_system.EnergySystem`.
* Introduce new Pyomo Sets `PERIODS` and `TIMEINDEX` in :class:`oemof.solph.models.Model`.
* Index all investment-related variables with `PERIODS` and flow variable with `TIMEINDEX`, which
is a tuple of periods and timesteps.
* Add lifetime tracking for investment options by introducing the attributes `lifetime` and `age`.
* Add new investment-related variables `total` holding the total capacity, `old` holding capacity
to be decommissioned, `old_exo` (for exogenous) holding existing capacity to be decommissioned and
`old_end` holding model-endogenously installed capacity to be decommissioned after its lifetime.
* Include discounting and calculating annuities in the objective function terms. Introduce attribute `discount_rate`
of :class:`oemof.solph.models.Model` and `interest_rate` for individual investment objects (options.Investment).
* Add `storage_level_constraint` that allows to set flows from/to storage (in)active based on storage content.
* `Model` now accepts a list of `EnergySystem` objects, which allows for modelling of cellular energysystems.

Documentation

* See extensive documentation in user guide and API reference for the new (experimental) multi-period feature.
* Be more strict about about oemof (meta package) oemof.solph (this package).
* Improved presentation of examples as part of the documentation.

Bug fixes

* Fixed error when calling `oemof_installation_test` as console script.
* Corrected several typos in the docs.
* Periods with multiple period lengths are now supported in multi-period investment.
* Add missing 'custom_attributes' for the link component

Testing

* Add tests for experimental SinkDSM component.
* Add tests for multi-period investment.

Contributors

* Johannes Kochems
* Patrik Schönfeldt
* Tobi Rohrer
* Julian Endres
* Jann Launer
* Lennart Schürmann

0.5.1.dev2

0.5.1.dev1

0.5.0

API changes

* Parts of the energy system graph are now clearly structured into `buses`, `components`, and `flows`.
* Public and private API are be more distinguished now. ('_' signifies private, public API is defined in init files.)
* Experimental code is now sitting in submodules called `experimental` (replaces "custom").
* The flow arguments `summed_min`and `summed_max` now have the more descriptive names `full_load_time_min` and `full_load_time_max`.
* Keyword arguments are now explicit. Among other things, this will catch typos. Custom attributes can be added using the argument `custom_attributes`. Those will be passed down the class hierachy and can (possibly) be handled in parent classes.


New features

* Add `inactivity_costs` as an option for `Flow`s. Inactivity costs is a cost for times where a Flow is not operated.
* It is now possible to optimise the size of `Flow`s that have a status variable. Internally, this is done by the `InvestNonConvexFlowBlock` which provides the possibility to perform capacity optimization of assets considering their min/max loads, as well as their operation status.

Documentation

* Examples are added to the documentation.


Testing

* Discontinued usage of Nose, as it is `deprecated in Pytest <https://docs.pytest.org/en/stable/deprecations.html#support-for-tests-written-for-nose>`.


Known issues

* The format of the examples could be improved.

Note

* Tags v0.5.0, v0.5.0a, and v0.5.0b have identical source code.
* The tag has been adjusted to have a working DOI for this code.


Contributors

* Patrik Schönfeldt
* Uwe Krien
* Saeed Sayadi
* Pierre-François Duc
* Johannes Kochems
* Johannes Röder
* David Fuhrländer
* "lensum"
* Jan Launner
* Hendrik Huyskens
* Ekaterina Zolotarevskaia
* Sarah Berendes
* Francesco Witte

Page 1 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.