Changelog
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.
[Unreleased]
[2.1.2] - 2025-06-14
Fixed
- Storage losses per hour where not calculated correctly, as mentioned by @brokenwings01. This might have lead to issues with modeling large losses and long timesteps.
- Old implementation: \(c(\text{t}_{i}) \cdot (1-\dot{\text{c}}_\text{rel,loss}(\text{t}_i)) \cdot \Delta \text{t}_{i}\)
- Correct implementation: \(c(\text{t}_{i}) \cdot (1-\dot{\text{c}}_\text{rel,loss}(\text{t}_i)) ^{\Delta \text{t}_{i}}\)
Known issues
- Just to mention: Plotly >= 6 may raise errors if "nbformat" is not installed. We pinned plotly to <6, but this may be fixed in the future.
[2.1.1] - 2025-05-08
Fixed
- Fixed bug in the
_ElementResults.constraints
not returning the constraints but rather the variables
Changed
- Improved docstring and tests
[2.1.0] - 2025-04-11
Added
- Python 3.13 support added
- Logger warning if relative_minimum is used without on_off_parameters in Flow
- Greatly improved internal testing infrastructure by leveraging linopy's testing framework
Fixed
- Fixed the lower bound of
flow_rate
when using optional investments without OnOffParameters - Fixed bug that prevented divest effects from working
- Added lower bounds of 0 to two unbounded vars (numerical improvement)
Changed
- BREAKING: Restructured the modeling of the On/Off state of Flows or Components
- Variable renaming:
...|consecutive_on_hours
→...|ConsecutiveOn|hours
- Variable renaming:
...|consecutive_off_hours
→...|ConsecutiveOff|hours
- Constraint renaming:
...|consecutive_on_hours_con1
→...|ConsecutiveOn|con1
- Similar pattern for all consecutive on/off constraints
[2.0.1] - 2025-04-10
Added
- Logger warning if relative_minimum is used without on_off_parameters in Flow
Fixed
- Replace "|" with "__" in filenames when saving figures (Windows compatibility)
- Fixed bug that prevented the load factor from working without InvestmentParameters
[2.0.0] - 2025-03-29
Changed
- BREAKING: Complete migration from Pyomo to Linopy optimization framework
- BREAKING: Redesigned data handling to rely on xarray.Dataset throughout the package
- BREAKING: Framework renamed from flixOpt to flixopt (
import flixopt as fx
) - BREAKING: Results handling completely redesigned with new
CalculationResults
class
Added
- Full model serialization support - save and restore unsolved Models
- Enhanced model documentation with YAML export containing human-readable mathematical formulations
- Extend flixopt models with native linopy language support
- Full Model Export/Import capabilities via linopy.Model
- Unified solution exploration through
Calculation.results
attribute - Compression support for result files
to_netcdf/from_netcdf
methods for FlowSystem and core components- xarray integration for TimeSeries with improved datatypes support
- Google Style Docstrings throughout the codebase
Fixed
- Improved infeasible model detection and reporting
- Enhanced time series management and serialization
- Reduced file size through improved compression
Removed
- BREAKING: Pyomo dependency (replaced by linopy)
- Period concepts in time management (simplified to timesteps)