flixopt

Vector based Energy Optimization Framework

https://github.com/flixopt/flixopt

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
    4 of 6 committers (66.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.0%) to scientific vocabulary

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: 6 months ago · JSON representation

Repository

Vector based Energy Optimization Framework

Basic Info
  • Host: GitHub
  • Owner: flixOpt
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 10.8 MB
Statistics
  • Stars: 10
  • Watchers: 3
  • Forks: 6
  • Open Issues: 34
  • Releases: 24
Topics
climate-change energy energy-system energy-system-modeling energy-systems linear-programming mathematical-modelling milp mixed-integer-linear-programming modeling optimisation optimization python renewables
Created over 3 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License

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
  • Create event: 104
  • Issues event: 28
  • Release event: 15
  • Delete event: 88
  • Issue comment event: 110
  • Push event: 332
  • Pull request review comment event: 14
  • Pull request review event: 29
  • Pull request event: 145
Last Year
  • Create event: 104
  • Issues event: 28
  • Release event: 15
  • Delete event: 88
  • Issue comment event: 110
  • Push event: 332
  • Pull request review comment event: 14
  • Pull request review event: 29
  • Pull request event: 145

Committers

Last synced: 6 months ago

All Time
  • Total Commits: 1,827
  • Total Committers: 6
  • Avg Commits per committer: 304.5
  • Development Distribution Score (DDS): 0.122
Past Year
  • Commits: 1,060
  • Committers: 4
  • Avg Commits per committer: 265.0
  • Development Distribution Score (DDS): 0.028
Top Committers
Name Email Commits
FBumann 1****n 1,605
fpanitz F****z@t****e 127
baumbude b****e@g****m 62
Peter Stange p****e@t****e 16
fel15133 f****z@i****e 11
Felix Panitz f****z@t****e 6
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 93
  • Total pull requests: 327
  • Average time to close issues: 2 months
  • Average time to close pull requests: 3 days
  • Total issue authors: 7
  • Total pull request authors: 3
  • Average comments per issue: 1.4
  • Average comments per pull request: 0.72
  • Merged pull requests: 223
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 65
  • Pull requests: 292
  • Average time to close issues: 15 days
  • Average time to close pull requests: 3 days
  • Issue authors: 7
  • Pull request authors: 3
  • Average comments per issue: 1.23
  • Average comments per pull request: 0.79
  • Merged pull requests: 199
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • FBumann (79)
  • baumbude (7)
  • PRse4 (2)
  • PStange (2)
  • JonaGL (1)
  • dizont (1)
  • brokenwings01 (1)
Pull Request Authors
  • FBumann (303)
  • baumbude (21)
  • PStange (3)
Top Labels
Issue Labels
bug (15) New functionality (14) improvement (11) enhancement (9) discuss (2) documentation (1) question (1) change (1) help wanted (1)
Pull Request Labels
New functionality (12) bug (9) enhancement (7) improvement (5) documentation (2) revisit (2)

Packages

  • Total packages: 3
  • Total downloads:
    • pypi 238 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 57
  • Total maintainers: 1
proxy.golang.org: github.com/flixopt/flixopt
  • Versions: 23
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
proxy.golang.org: github.com/flixOpt/flixOpt
  • Versions: 23
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
pypi.org: flixopt

Vector based energy and material flow optimization framework in Python.

  • Versions: 11
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 238 Last month
Rankings
Dependent packages count: 9.5%
Average: 31.4%
Dependent repos count: 53.3%
Maintainers (1)
Last synced: 6 months ago