A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

flixOpt

Python-based optimization framework designed to tackle energy and material flow problems using mixed-integer linear programming (MILP) and provides a powerful platform for both dispatch and investment optimization challenges.
https://github.com/flixopt/flixopt

Category: Energy Systems
Sub Category: Energy System Modeling Frameworks

Keywords

climate-change energy energy-system energy-system-modeling energy-systems linear-programming mathematical-modelling milp mixed-integer-linear-programming modeling optimisation optimization python renewables

Last synced: about 14 hours ago
JSON representation

Repository metadata

Vector based Energy Optimization Framework

README.md

FlixOpt: Energy and Material Flow Optimization Framework

Documentation
Build Status
PyPI version
Python Versions
License: MIT


🚀 Purpose

flixopt is a Python-based optimization framework designed to tackle energy and material flow problems using mixed-integer linear programming (MILP).

flixopt bridges the gap between high-level energy systems models like FINE used for design and (multi-period) investment decisions and low-level dispatch optimization tools used for operation decisions.

flixopt leverages the fast and efficient linopy for the mathematical modeling and xarray for data handling.

flixopt provides a user-friendly interface with options for advanced users.

It was originally developed by TU Dresden as part of the SMARTBIOGRID project, funded by the German Federal Ministry for Economic Affairs and Energy (FKZ: 03KB159B). Building on the Matlab-based flixOptMat framework (developed in the FAKS project), FlixOpt also incorporates concepts from oemof/solph.


🌟 Key Features

  • High-level Interface with low-level control

    • User-friendly interface for defining flow systems
    • Pre-defined components like CHP, Heat Pump, Cooling Tower, etc.
    • Fine-grained control for advanced configurations
  • Investment Optimization

    • Combined dispatch and investment optimization
    • Size optimization and discrete investment decisions
    • Combined with On/Off variables and constraints
  • Effects, not only Costs --> Multi-criteria Optimization

    • flixopt abstracts costs as so called 'Effects'. This allows to model costs, CO2-emissions, primary-energy-demand or area-demand at the same time.
    • Effects can interact with each other(e.g., specific CO2 costs)
    • Any of these Effects can be used as the optimization objective.
    • A Weigted Sum of Effects can be used as the optimization objective.
    • Every Effect can be constrained ($\epsilon$-constraint method).
  • Calculation Modes

    • Full - Solve the model with highest accuracy and computational requirements.
    • Segmented - Speed up solving by using a rolling horizon.
    • Aggregated - Speed up solving by identifying typical periods using TSAM. Suitable for large models.

📦 Installation

Install FlixOpt via pip.
pip install flixopt
With HiGHS included out of the box, flixopt is ready to use..

We recommend installing FlixOpt with all dependencies, which enables additional features like interactive network visualizations (pyvis) and time series aggregation (tsam).
pip install "flixopt[full]"


📚 Documentation

The documentation is available at https://flixopt.github.io/flixopt/latest/


🛠️ Solver Integration

By default, FlixOpt uses the open-source solver HiGHS which is installed by default. However, it is compatible with additional solvers such as:

For detailed licensing and installation instructions, refer to the respective solver documentation.


📖 Citation

If you use FlixOpt in your research or project, please cite the following:


GitHub Events

Total
Last Year

Committers metadata

Last synced: 7 days ago

Total Commits: 1,808
Total Committers: 6
Avg Commits per committer: 301.333
Development Distribution Score (DDS): 0.121

Commits in past year: 1,564
Committers in past year: 4
Avg Commits per committer in past year: 391.0
Development Distribution Score (DDS) in past year: 0.022

Name Email Commits
FBumann 1****n 1589
fpanitz F****z@t****e 127
baumbude b****e@g****m 61
Peter Stange p****e@t****e 16
fel15133 f****z@i****e 9
Felix Panitz f****z@t****e 6

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 101
Total pull requests: 178
Average time to close issues: about 2 months
Average time to close pull requests: 2 days
Total issue authors: 4
Total pull request authors: 3
Average comments per issue: 2.32
Average comments per pull request: 0.71
Merged pull request: 140
Bot issues: 0
Bot pull requests: 0

Past year issues: 82
Past year pull requests: 168
Past year average time to close issues: about 1 month
Past year average time to close pull requests: 2 days
Past year issue authors: 4
Past year pull request authors: 3
Past year average comments per issue: 2.4
Past year average comments per pull request: 0.74
Past year merged pull request: 132
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/flixopt/flixopt

Top Issue Authors

  • FBumann (87)
  • baumbude (9)
  • PStange (3)
  • dizont (2)

Top Pull Request Authors

  • FBumann (168)
  • baumbude (9)
  • PStange (1)

Top Issue Labels

  • New functionality (29)
  • bug (26)
  • improvement (17)
  • question (2)
  • documentation (1)

Top Pull Request Labels

  • bug (10)
  • New functionality (9)
  • improvement (5)
  • documentation (2)
  • revisit (1)

Package metadata

pypi.org: flixopt

Vector based energy and material flow optimization framework in Python.

  • Homepage:
  • Documentation: https://flixopt.readthedocs.io/
  • Licenses: MIT License
  • Latest release: 2.1.0 (published 16 days ago)
  • Last Synced: 2025-04-25T17:00:41.089Z (1 day ago)
  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 430 Last month
  • Rankings:
    • Dependent packages count: 9.463%
    • Average: 31.377%
    • Dependent repos count: 53.292%
  • Maintainers (1)

Score: 11.259064940993959