Skip to main content

Vector based energy and material flow optimization framework in Python.

Project description

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.


🛠 Development Setup

Look into our docs for development setup


📖 Citation

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

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flixopt-2.1.9.tar.gz (2.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flixopt-2.1.9-py3-none-any.whl (2.2 MB view details)

Uploaded Python 3

File details

Details for the file flixopt-2.1.9.tar.gz.

File metadata

  • Download URL: flixopt-2.1.9.tar.gz
  • Upload date:
  • Size: 2.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for flixopt-2.1.9.tar.gz
Algorithm Hash digest
SHA256 82ab48a9e5f9a657b3ffb849851339cca100ef9224b4c2cbc9460e3d698d23c0
MD5 618a421d3eaf7b0a242c23f84ad451e0
BLAKE2b-256 b97602a36b4aea07117097224cd833729b370e0b8795d4c73159b04df818f65e

See more details on using hashes here.

File details

Details for the file flixopt-2.1.9-py3-none-any.whl.

File metadata

  • Download URL: flixopt-2.1.9-py3-none-any.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for flixopt-2.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 050b4849636d84c915b4703a88913c7e1a8ff0129a19c2c8ca7d7b1525460fe5
MD5 381ccd5169868bce8a72f512eddd8f3f
BLAKE2b-256 c7d7439a645aa18fec09a71fe720ed57d29347cc503e1223710733d98deb3c87

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page