v0.2.0 - Initial Release of flixOpt
Initial Release of flixOpt
After being in development, this marks the first official release of flixOpt.
flixOpt and all its dependencies (including a solver) are now easily installable via pip (see README.md)
This release is a crucial part in preparation of a major new release with breaking changes, like new class names, module names and more.
API Changes
- HiGHS-Solver API established - Open Source and faster than other open source solvers - https://highs.dev/#docs
- Tutorial as Python Notebook added
- Time-stamp labeling in .csv export of results enabled
New features
- Limits per Time step for effects introduced
- New Concept "exists" introduced.
- This Attribute allows for multi-period investments.
- Sets The upper limit for TS_Variables to 0 when Component or Flow does not exist.
- The existence of flows is limited by the existence of the Component it is assigned to.
- Vice versa, it's possible that a Flow does not yet exist while its component does (for ex. multiple grid connections).
- The concept is introduced but, some aspects are not yet perfectly implemented.
- str() and repr() methods added for major classes, which enables the printing of a system configuration for documentation and debugging purposes
- Type Hints are added, improving readability and ease of use
- New Module flixCompsExperimental.py with a experimental and early state implementation of a CHP-Plant with variable rate between heat and power
Bug fixes
- Fixed onHoursSum_max & min in Flows
- Fixed Segmented Modeling
- Fixed max_rel in combination with no Investment in class Storage
Other changes
- Proper tests are introduced for better and safer future developments
Known issues
- onHoursSum_max & min are not yet working in Components (raises Error). Use Flow instead.
- exists is still in early state:
- on single flows does not work with segmentsOfFlows. use exists in Component
- does not affect all properties that might be expected:
- cFlow: on_valuesBeforeBegin, valuesBeforeBegin are still before the begin of the model, not at the time step before existence
- cStorage: chargeState0_inFlowHours, charge_state_end_min, charge_state_end_max and fracLossPerHour are not affected by "exists". Only the available capacity is limited to 0
Contributors
Felix Bumann
Felix Panitz
Peter Stange