flixopt


Nameflixopt JSON
Version 2.1.5 PyPI version JSON
download
home_pageNone
SummaryVector based energy and material flow optimization framework in Python.
upload_time2025-07-08 11:41:34
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT License
keywords optimization energy systems numerical analysis
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # FlixOpt: Energy and Material Flow Optimization Framework

[![Documentation](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://flixopt.github.io/flixopt/latest/)
[![Build Status](https://github.com/flixOpt/flixopt/actions/workflows/python-app.yaml/badge.svg)](https://github.com/flixOpt/flixopt/actions/workflows/python-app.yaml)
[![PyPI version](https://img.shields.io/pypi/v/flixopt)](https://pypi.org/project/flixopt/)
[![Python Versions](https://img.shields.io/pypi/pyversions/flixopt.svg)](https://pypi.org/project/flixopt/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/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](https://github.com/FZJ-IEK3-VSA/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](https://github.com/PyPSA/linopy/) for the mathematical modeling and [xarray](https://github.com/pydata/xarray) for data handling.

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

It was originally developed by [TU Dresden](https://github.com/gewv-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](https://github.com/oemof/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](https://github.com/FZJ-IEK3-VSA/tsam). Suitable for large models.

---

## 📦 Installation

Install FlixOpt via pip.
`pip install flixopt`
With [HiGHS](https://github.com/ERGO-Code/HiGHS?tab=readme-ov-file) 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](https://github.com/WestHealth/pyvis)) and time series aggregation ([tsam](https://github.com/FZJ-IEK3-VSA/tsam)).
`pip install "flixopt[full]"`

---

## 📚 Documentation

The documentation is available at [https://flixopt.github.io/flixopt/latest/](https://flixopt.github.io/flixopt/latest/)

---

## 🛠️ Solver Integration

By default, FlixOpt uses the open-source solver [HiGHS](https://highs.dev/) which is installed by default. However, it is compatible with additional solvers such as:  

- [Gurobi](https://www.gurobi.com/)  
- [CBC](https://github.com/coin-or/Cbc)  
- [GLPK](https://www.gnu.org/software/glpk/)
- [CPLEX](https://www.ibm.com/analytics/cplex-optimizer)

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:  

- **Main Citation:** [DOI:10.18086/eurosun.2022.04.07](https://doi.org/10.18086/eurosun.2022.04.07)  
- **Short Overview:** [DOI:10.13140/RG.2.2.14948.24969](https://doi.org/10.13140/RG.2.2.14948.24969)  

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "flixopt",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "Felix Bumann <felixbumann387@gmail.com>, Peter Stange <peter.stange@tu-dresden.de>",
    "keywords": "optimization, energy systems, numerical analysis",
    "author": null,
    "author_email": "\"Chair of Building Energy Systems and Heat Supply, TU Dresden\" <peter.stange@tu-dresden.de>, Felix Bumann <felixbumann387@gmail.com>, Felix Panitz <baumbude@googlemail.com>, Peter Stange <peter.stange@tu-dresden.de>",
    "download_url": "https://files.pythonhosted.org/packages/6f/50/66c4c842829344896bc14ec5b3324434d2333343d2a9b5c19cf40d205ca2/flixopt-2.1.5.tar.gz",
    "platform": null,
    "description": "# FlixOpt: Energy and Material Flow Optimization Framework\n\n[![Documentation](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://flixopt.github.io/flixopt/latest/)\n[![Build Status](https://github.com/flixOpt/flixopt/actions/workflows/python-app.yaml/badge.svg)](https://github.com/flixOpt/flixopt/actions/workflows/python-app.yaml)\n[![PyPI version](https://img.shields.io/pypi/v/flixopt)](https://pypi.org/project/flixopt/)\n[![Python Versions](https://img.shields.io/pypi/pyversions/flixopt.svg)](https://pypi.org/project/flixopt/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n---\n\n## \ud83d\ude80 Purpose\n\n**flixopt** is a Python-based optimization framework designed to tackle energy and material flow problems using mixed-integer linear programming (MILP).\n\n**flixopt** bridges the gap between high-level energy systems models like [FINE](https://github.com/FZJ-IEK3-VSA/FINE) used for design and (multi-period) investment decisions and low-level dispatch optimization tools used for operation decisions.\n\n**flixopt** leverages the fast and efficient [linopy](https://github.com/PyPSA/linopy/) for the mathematical modeling and [xarray](https://github.com/pydata/xarray) for data handling.\n\n**flixopt** provides a user-friendly interface with options for advanced users.\n\nIt was originally developed by [TU Dresden](https://github.com/gewv-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](https://github.com/oemof/oemof-solph). \n\n---\n\n## \ud83c\udf1f Key Features\n\n- **High-level Interface** with low-level control\n    - User-friendly interface for defining flow systems\n    - Pre-defined components like CHP, Heat Pump, Cooling Tower, etc.\n    - Fine-grained control for advanced configurations\n\n- **Investment Optimization**\n    - Combined dispatch and investment optimization\n    - Size optimization and discrete investment decisions\n    - Combined with On/Off variables and constraints\n\n- **Effects, not only Costs --> Multi-criteria Optimization**\n    - flixopt abstracts costs as so called 'Effects'. This allows to model costs, CO2-emissions, primary-energy-demand or area-demand at the same time.\n    - Effects can interact with each other(e.g., specific CO2 costs)\n    - Any of these `Effects` can be used as the optimization objective.\n    - A **Weigted Sum** of Effects can be used as the optimization objective.\n    - Every Effect can be constrained ($\\epsilon$-constraint method).\n\n- **Calculation Modes**\n    - **Full** - Solve the model with highest accuracy and computational requirements.\n    - **Segmented** - Speed up solving by using a rolling horizon. \n    - **Aggregated** - Speed up solving by identifying typical periods using [TSAM](https://github.com/FZJ-IEK3-VSA/tsam). Suitable for large models.\n\n---\n\n## \ud83d\udce6 Installation\n\nInstall FlixOpt via pip.\n`pip install flixopt`\nWith [HiGHS](https://github.com/ERGO-Code/HiGHS?tab=readme-ov-file) included out of the box, flixopt is ready to use..\n\nWe recommend installing FlixOpt with all dependencies, which enables additional features like interactive network visualizations ([pyvis](https://github.com/WestHealth/pyvis)) and time series aggregation ([tsam](https://github.com/FZJ-IEK3-VSA/tsam)).\n`pip install \"flixopt[full]\"`\n\n---\n\n## \ud83d\udcda Documentation\n\nThe documentation is available at [https://flixopt.github.io/flixopt/latest/](https://flixopt.github.io/flixopt/latest/)\n\n---\n\n## \ud83d\udee0\ufe0f Solver Integration\n\nBy default, FlixOpt uses the open-source solver [HiGHS](https://highs.dev/) which is installed by default. However, it is compatible with additional solvers such as:  \n\n- [Gurobi](https://www.gurobi.com/)  \n- [CBC](https://github.com/coin-or/Cbc)  \n- [GLPK](https://www.gnu.org/software/glpk/)\n- [CPLEX](https://www.ibm.com/analytics/cplex-optimizer)\n\nFor detailed licensing and installation instructions, refer to the respective solver documentation.  \n\n---\n\n## \ud83d\udcd6 Citation\n\nIf you use FlixOpt in your research or project, please cite the following:  \n\n- **Main Citation:** [DOI:10.18086/eurosun.2022.04.07](https://doi.org/10.18086/eurosun.2022.04.07)  \n- **Short Overview:** [DOI:10.13140/RG.2.2.14948.24969](https://doi.org/10.13140/RG.2.2.14948.24969)  \n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "Vector based energy and material flow optimization framework in Python.",
    "version": "2.1.5",
    "project_urls": {
        "documentation": "https://flixopt.github.io/flixopt/",
        "homepage": "https://tu-dresden.de/ing/maschinenwesen/iet/gewv/forschung/forschungsprojekte/flixopt",
        "repository": "https://github.com/flixOpt/flixopt"
    },
    "split_keywords": [
        "optimization",
        " energy systems",
        " numerical analysis"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "48c01137fc7d68da901388c8433ca5f8a757d9383f7a9ff59b3a00fd83f9ccc6",
                "md5": "0cf79769c1d1866a8cff43ad9fa21e88",
                "sha256": "1120b7503f36d4de2b9b04883755d20d948c38a87e9ad788fc92749b2b2783fb"
            },
            "downloads": -1,
            "filename": "flixopt-2.1.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0cf79769c1d1866a8cff43ad9fa21e88",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 2209817,
            "upload_time": "2025-07-08T11:41:32",
            "upload_time_iso_8601": "2025-07-08T11:41:32.778255Z",
            "url": "https://files.pythonhosted.org/packages/48/c0/1137fc7d68da901388c8433ca5f8a757d9383f7a9ff59b3a00fd83f9ccc6/flixopt-2.1.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6f5066c4c842829344896bc14ec5b3324434d2333343d2a9b5c19cf40d205ca2",
                "md5": "5d47b557004c7df56dd1e9357cc8f627",
                "sha256": "edcbd3906d336bdff1e98b253d0d45f23c85cd6fe2652d8ff4ceba24fc5250a7"
            },
            "downloads": -1,
            "filename": "flixopt-2.1.5.tar.gz",
            "has_sig": false,
            "md5_digest": "5d47b557004c7df56dd1e9357cc8f627",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 2620687,
            "upload_time": "2025-07-08T11:41:34",
            "upload_time_iso_8601": "2025-07-08T11:41:34.375086Z",
            "url": "https://files.pythonhosted.org/packages/6f/50/66c4c842829344896bc14ec5b3324434d2333343d2a9b5c19cf40d205ca2/flixopt-2.1.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-08 11:41:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "flixOpt",
    "github_project": "flixopt",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "flixopt"
}
        
Elapsed time: 0.41026s