From 5800363936f1e12d31d91133588feebeea9cf233 Mon Sep 17 00:00:00 2001 From: FBumann <117816358+FBumann@users.noreply.github.com> Date: Mon, 20 Oct 2025 19:23:47 +0200 Subject: [PATCH 01/19] Added Zenodo to repository for citations --- .zenodo.json | 40 ++++++++++++++++++++++++++++++++++++++++ CHANGELOG.md | 5 +++++ CITATION.cff | 29 +++++++++++++++++++++++++++++ README.md | 2 ++ 4 files changed, 76 insertions(+) create mode 100644 .zenodo.json create mode 100644 CITATION.cff diff --git a/.zenodo.json b/.zenodo.json new file mode 100644 index 000000000..8f5d6c4d1 --- /dev/null +++ b/.zenodo.json @@ -0,0 +1,40 @@ +{ + "title": "flixopt", + "description": "Vector based energy and material flow optimization framework in Python. FlixOpt is a framework for modeling and optimizing energy and material flow systems - from district heating networks to industrial production lines, from renewable energy portfolios to supply chain logistics. Built on linopy and xarray, it provides a progressive enhancement approach that allows users to start with simple models and incrementally add complexity such as multi-period investments, stochastic scenarios, and custom constraints.", + "license": "MIT", + "upload_type": "software", + "creators": [ + { + "name": "Chair of Building Energy Systems and Heat Supply, TU Dresden" + }, + { + "name": "Bumann, Felix" + }, + { + "name": "Panitz, Felix" + }, + { + "name": "Stange, Peter" + } + ], + "keywords": [ + "optimization", + "energy systems", + "numerical analysis", + "python", + "material flow", + "linear programming", + "district heating", + "renewable energy", + "supply chain", + "linopy", + "xarray" + ], + "related_identifiers": [ + { + "identifier": "https://github.com/flixOpt/flixopt", + "relation": "isSupplementTo", + "scheme": "url" + } + ] +} diff --git a/CHANGELOG.md b/CHANGELOG.md index 37636cc0e..6bd1e553a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -72,8 +72,13 @@ If upgrading from v2.x, see the [v3.0.0 release notes](https://github.com/flixOp ### ๐Ÿ“ฆ Dependencies ### ๐Ÿ“ Docs +- Added Zenodo DOI badge to README.md (placeholder, to be updated after first Zenodo release) ### ๐Ÿ‘ท Development +- Added Zenodo integration for automatic archival and citation + - Created `CITATION.cff` file for software citation following CFF 1.2.0 specification + - Created `.zenodo.json` file for Zenodo metadata configuration + - Repository now ready for DOI assignment upon next release ### ๐Ÿšง Known Issues diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 000000000..b154d71b0 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,29 @@ +cff-version: 1.2.0 +message: "If you use this software, please cite it as below." +type: software +title: "flixopt" +version: 3.1.1 +date-released: 2025-10-20 +url: "https://github.com/flixOpt/flixopt" +repository-code: "https://github.com/flixOpt/flixopt" +license: MIT +abstract: "Vector based energy and material flow optimization framework in Python." +keywords: + - optimization + - energy systems + - numerical analysis + - python + - material flow + - linear programming +authors: + - name: "Chair of Building Energy Systems and Heat Supply, TU Dresden" + email: peter.stange@tu-dresden.de + - family-names: Bumann + given-names: Felix + email: felixbumann387@gmail.com + - family-names: Panitz + given-names: Felix + email: baumbude@googlemail.com + - family-names: Stange + given-names: Peter + email: peter.stange@tu-dresden.de diff --git a/README.md b/README.md index e7f062ad8..92f849331 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,8 @@ [![Powered by linopy](https://img.shields.io/badge/powered%20by-linopy-blue)](https://github.com/PyPSA/linopy/) [![Powered by xarray](https://img.shields.io/badge/powered%20by-xarray-blue)](https://xarray.dev/) [![DOI](https://img.shields.io/badge/DOI-10.18086%2Feurosun.2022.04.07-blue)](https://doi.org/10.18086/eurosun.2022.04.07) + +[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.XXXXXXX.svg)](https://doi.org/10.5281/zenodo.XXXXXXX) [![GitHub stars](https://img.shields.io/github/stars/flixOpt/flixopt?style=social)](https://github.com/flixOpt/flixopt/stargazers) --- From a1743017bc15a0cae3bc32c4869b62c393a613ea Mon Sep 17 00:00:00 2001 From: FBumann <117816358+FBumann@users.noreply.github.com> Date: Thu, 13 Nov 2025 22:57:33 +0100 Subject: [PATCH 02/19] Update zenodo and README.md --- .zenodo.json | 52 +++++++++++++++++++++++++++++++++++++++++++++------- README.md | 7 ++++--- 2 files changed, 49 insertions(+), 10 deletions(-) diff --git a/.zenodo.json b/.zenodo.json index 8f5d6c4d1..d3f866c8c 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -1,40 +1,78 @@ { - "title": "flixopt", - "description": "Vector based energy and material flow optimization framework in Python. FlixOpt is a framework for modeling and optimizing energy and material flow systems - from district heating networks to industrial production lines, from renewable energy portfolios to supply chain logistics. Built on linopy and xarray, it provides a progressive enhancement approach that allows users to start with simple models and incrementally add complexity such as multi-period investments, stochastic scenarios, and custom constraints.", + "title": "flixOpt: Vector-based Energy and Material Flow Optimization Framework", + "description": "FlixOpt is a comprehensive framework for modeling and optimizing energy and material flow systems in Python. It enables optimization of diverse applications including district heating networks, industrial production lines, renewable energy portfolios, and supply chain logistics. Built on modern scientific Python stack (linopy and xarray), it provides a progressive enhancement approach allowing users to start with simple models and incrementally add complexity such as multi-period investments, stochastic scenarios, and custom constraints. THe framework simplifies the creation of global constraints and switching objectives through its 'effect' concept. The framework is designed for researchers and engineers in energy systems, industrial process optimization, and operations research.", + "version": "{{VERSION}}", "license": "MIT", "upload_type": "software", "creators": [ { - "name": "Chair of Building Energy Systems and Heat Supply, TU Dresden" + "name": "Bumann, Felix", + "affiliation": "Chair of Building Energy Systems and Heat Supply, TU Dresden" }, { - "name": "Bumann, Felix" + "name": "Panitz, Felix", + "affiliation": "Chair of Building Energy Systems and Heat Supply, TU Dresden" }, { - "name": "Panitz, Felix" + "name": "Stange, Peter", + "affiliation": "Chair of Building Energy Systems and Heat Supply, TU Dresden" + } + ], + "contributors": [ + { + "name": "Chair of Building Energy Systems and Heat Supply, TU Dresden", + "type": "ResearchGroup" }, { - "name": "Stange, Peter" + "name": "Bumann, Felix", + "affiliation": "SachsenEnergie AG" } ], "keywords": [ "optimization", "energy systems", + "energy system optimization", "numerical analysis", "python", "material flow", "linear programming", + "mixed-integer linear programming", + "MILP", "district heating", "renewable energy", "supply chain", "linopy", - "xarray" + "xarray", + "operations research", + "mathematical optimization", + "scientific computing" ], + "language": "eng", "related_identifiers": [ { "identifier": "https://github.com/flixOpt/flixopt", "relation": "isSupplementTo", "scheme": "url" + }, + { + "identifier": "10.18086/eurosun.2022.04.07", + "relation": "isDocumentedBy", + "scheme": "doi" + }, + { + "identifier": "https://flixopt.github.io/flixopt/", + "relation": "isDocumentedBy", + "scheme": "url" + }, + { + "identifier": "https://pypi.org/project/flixopt/", + "relation": "isIdenticalTo", + "scheme": "url" + } + ], + "communities": [ + { + "identifier": "energy" } ] } diff --git a/README.md b/README.md index 92f849331..b699a4c10 100644 --- a/README.md +++ b/README.md @@ -9,13 +9,11 @@ [![PyPI downloads](https://img.shields.io/pypi/dm/flixopt)](https://pypi.org/project/flixopt/) [![GitHub last commit](https://img.shields.io/github/last-commit/flixOpt/flixopt)](https://github.com/flixOpt/flixopt/commits/main) [![GitHub issues](https://img.shields.io/github/issues/flixOpt/flixopt)](https://github.com/flixOpt/flixopt/issues) -[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/flixOpt/flixopt/main.svg)](https://results.pre-commit.ci/latest/github/flixOpt/flixopt/main) [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) [![Powered by linopy](https://img.shields.io/badge/powered%20by-linopy-blue)](https://github.com/PyPSA/linopy/) [![Powered by xarray](https://img.shields.io/badge/powered%20by-xarray-blue)](https://xarray.dev/) +[![DOI](https://zenodo.org/badge/540378857.svg)](https://doi.org/10.5281/zenodo.17448623) [![DOI](https://img.shields.io/badge/DOI-10.18086%2Feurosun.2022.04.07-blue)](https://doi.org/10.18086/eurosun.2022.04.07) - -[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.XXXXXXX.svg)](https://doi.org/10.5281/zenodo.XXXXXXX) [![GitHub stars](https://img.shields.io/github/stars/flixOpt/flixopt?style=social)](https://github.com/flixOpt/flixopt/stargazers) --- @@ -187,6 +185,9 @@ If FlixOpt supports your research or project, please cite: - **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) +To pinpoint which version you used in your work, please reference one of these doi's here: +- [![DOI](https://zenodo.org/badge/540378857.svg)](https://doi.org/10.5281/zenodo.17448623) + --- ## ๐Ÿ“„ License From 812a32d2ffa89240292c5420986e8dfdd09d3a1f Mon Sep 17 00:00:00 2001 From: FBumann <117816358+FBumann@users.noreply.github.com> Date: Thu, 13 Nov 2025 23:06:07 +0100 Subject: [PATCH 03/19] Update zenodo and CITATION.cff --- .zenodo.json | 15 +++++++-------- CITATION.cff | 8 ++++++-- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/.zenodo.json b/.zenodo.json index d3f866c8c..7f83f4d8c 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -7,25 +7,24 @@ "creators": [ { "name": "Bumann, Felix", - "affiliation": "Chair of Building Energy Systems and Heat Supply, TU Dresden" + "affiliation": "SachsenEnergie AG", + "orcid": "0000-0000-0000-0000" }, { "name": "Panitz, Felix", - "affiliation": "Chair of Building Energy Systems and Heat Supply, TU Dresden" + "affiliation": "Chair of Building Energy Systems and Heat Supply, TU Dresden", + "orcid": "0000-0000-0000-0000" }, { "name": "Stange, Peter", - "affiliation": "Chair of Building Energy Systems and Heat Supply, TU Dresden" + "affiliation": "Chair of Building Energy Systems and Heat Supply, TU Dresden", + "orcid": "0000-0000-0000-0000" } ], "contributors": [ { "name": "Chair of Building Energy Systems and Heat Supply, TU Dresden", - "type": "ResearchGroup" - }, - { - "name": "Bumann, Felix", - "affiliation": "SachsenEnergie AG" + "type": "HostingInstitution" } ], "keywords": [ diff --git a/CITATION.cff b/CITATION.cff index b154d71b0..c473d9dd4 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -16,14 +16,18 @@ keywords: - material flow - linear programming authors: - - name: "Chair of Building Energy Systems and Heat Supply, TU Dresden" - email: peter.stange@tu-dresden.de - family-names: Bumann given-names: Felix email: felixbumann387@gmail.com + affiliation: "SachsenEnergie AG" + orcid: "https://orcid.org/0000-0000-0000-0000" - family-names: Panitz given-names: Felix email: baumbude@googlemail.com + affiliation: "Chair of Building Energy Systems and Heat Supply, TU Dresden" + orcid: "https://orcid.org/0000-0000-0000-0000" - family-names: Stange given-names: Peter email: peter.stange@tu-dresden.de + affiliation: "Chair of Building Energy Systems and Heat Supply, TU Dresden" + orcid: "https://orcid.org/0000-0000-0000-0000" From b2dc08131c52cc8392af972dd18b2310a3c2f7f7 Mon Sep 17 00:00:00 2001 From: FBumann <117816358+FBumann@users.noreply.github.com> Date: Thu, 13 Nov 2025 23:07:33 +0100 Subject: [PATCH 04/19] Update ORCID --- .zenodo.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.zenodo.json b/.zenodo.json index 7f83f4d8c..036b1447e 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -8,17 +8,17 @@ { "name": "Bumann, Felix", "affiliation": "SachsenEnergie AG", - "orcid": "0000-0000-0000-0000" + "orcid": "0009-0006-0765-4789" }, { "name": "Panitz, Felix", - "affiliation": "Chair of Building Energy Systems and Heat Supply, TU Dresden", - "orcid": "0000-0000-0000-0000" + "affiliation": "Fraunhofer Research Institution for Energy Infrastructures and Geotechnologies IEG", + "orcid": "0009-0007-7030-6987" }, { "name": "Stange, Peter", "affiliation": "Chair of Building Energy Systems and Heat Supply, TU Dresden", - "orcid": "0000-0000-0000-0000" + "orcid": "0009-0001-6407-1495" } ], "contributors": [ From 1caf765684c101a29401d908b933f455b066afa9 Mon Sep 17 00:00:00 2001 From: FBumann <117816358+FBumann@users.noreply.github.com> Date: Thu, 13 Nov 2025 23:14:08 +0100 Subject: [PATCH 05/19] Improve and synchronize keywords --- .zenodo.json | 26 ++++++++++++++++---------- CITATION.cff | 26 ++++++++++++++++++++------ 2 files changed, 36 insertions(+), 16 deletions(-) diff --git a/.zenodo.json b/.zenodo.json index 036b1447e..e57176ea4 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -1,6 +1,6 @@ { "title": "flixOpt: Vector-based Energy and Material Flow Optimization Framework", - "description": "FlixOpt is a comprehensive framework for modeling and optimizing energy and material flow systems in Python. It enables optimization of diverse applications including district heating networks, industrial production lines, renewable energy portfolios, and supply chain logistics. Built on modern scientific Python stack (linopy and xarray), it provides a progressive enhancement approach allowing users to start with simple models and incrementally add complexity such as multi-period investments, stochastic scenarios, and custom constraints. THe framework simplifies the creation of global constraints and switching objectives through its 'effect' concept. The framework is designed for researchers and engineers in energy systems, industrial process optimization, and operations research.", + "description": "FlixOpt is a comprehensive framework for modeling and optimizing energy and material flow systems in Python. It enables optimization of diverse applications including district heating networks, industrial production lines, renewable energy portfolios, and supply chain logistics. Built on modern scientific Python stack (linopy and xarray), it provides a progressive enhancement approach allowing users to start with simple models and incrementally add complexity such as multi-period investments, stochastic scenarios, and custom constraints. The framework simplifies the creation of global constraints and switching objectives through its 'effect' concept. The framework is designed for researchers and engineers in energy systems, industrial process optimization, and operations research.", "version": "{{VERSION}}", "license": "MIT", "upload_type": "software", @@ -30,21 +30,24 @@ "keywords": [ "optimization", "energy systems", - "energy system optimization", - "numerical analysis", - "python", "material flow", "linear programming", - "mixed-integer linear programming", + "mixed-integer programming", "MILP", + "operations research", + "python", "district heating", "renewable energy", - "supply chain", + "supply chain optimization", + "pathway optimization", + "capacity optimization", + "sizing optimization", + "investment optimization", + "multi-period optimization", + "scenario analysis", + "energy planning", "linopy", - "xarray", - "operations research", - "mathematical optimization", - "scientific computing" + "xarray" ], "language": "eng", "related_identifiers": [ @@ -72,6 +75,9 @@ "communities": [ { "identifier": "energy" + }, + { + "identifier": "zenodo" } ] } diff --git a/CITATION.cff b/CITATION.cff index c473d9dd4..4781ae611 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -11,23 +11,37 @@ abstract: "Vector based energy and material flow optimization framework in Pytho keywords: - optimization - energy systems - - numerical analysis - - python - material flow - linear programming + - mixed-integer programming + - MILP + - operations research + - python + - district heating + - renewable energy + - supply chain optimization + - pathway optimization + - capacity optimization + - sizing optimization + - investment optimization + - multi-period optimization + - scenario analysis + - energy planning + - linopy + - xarray authors: - family-names: Bumann given-names: Felix email: felixbumann387@gmail.com affiliation: "SachsenEnergie AG" - orcid: "https://orcid.org/0000-0000-0000-0000" + orcid: "https://orcid.org/0009-0006-0765-4789" - family-names: Panitz given-names: Felix email: baumbude@googlemail.com - affiliation: "Chair of Building Energy Systems and Heat Supply, TU Dresden" - orcid: "https://orcid.org/0000-0000-0000-0000" + affiliation: "Fraunhofer Research Institution for Energy Infrastructures and Geotechnologies IEG" + orcid: "https://orcid.org/0009-0007-7030-6987" - family-names: Stange given-names: Peter email: peter.stange@tu-dresden.de affiliation: "Chair of Building Energy Systems and Heat Supply, TU Dresden" - orcid: "https://orcid.org/0000-0000-0000-0000" + orcid: "https://orcid.org/0009-0001-6407-1495" From b00ec96ecab96769f338f01ba3b4e1c05bb68c34 Mon Sep 17 00:00:00 2001 From: FBumann <117816358+FBumann@users.noreply.github.com> Date: Thu, 13 Nov 2025 23:16:07 +0100 Subject: [PATCH 06/19] Improve and synchronize keywords --- .zenodo.json | 16 ++++++++-------- CITATION.cff | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.zenodo.json b/.zenodo.json index e57176ea4..65e3e56c8 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -30,7 +30,7 @@ "keywords": [ "optimization", "energy systems", - "material flow", + "energy flow modeling", "linear programming", "mixed-integer programming", "MILP", @@ -38,14 +38,14 @@ "python", "district heating", "renewable energy", - "supply chain optimization", - "pathway optimization", - "capacity optimization", - "sizing optimization", - "investment optimization", "multi-period optimization", - "scenario analysis", - "energy planning", + "investment optimization", + "capacity planning", + "energy modeling", + "sector coupling", + "energy transition", + "industrial processes", + "stochastic optimization", "linopy", "xarray" ], diff --git a/CITATION.cff b/CITATION.cff index 4781ae611..9cab2cbac 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -11,7 +11,7 @@ abstract: "Vector based energy and material flow optimization framework in Pytho keywords: - optimization - energy systems - - material flow + - energy flow modeling - linear programming - mixed-integer programming - MILP @@ -19,14 +19,14 @@ keywords: - python - district heating - renewable energy - - supply chain optimization - - pathway optimization - - capacity optimization - - sizing optimization - - investment optimization - multi-period optimization - - scenario analysis - - energy planning + - investment optimization + - capacity planning + - energy modeling + - sector coupling + - energy transition + - industrial processes + - stochastic optimization - linopy - xarray authors: From f7af509c157469c92d5843194c3ec158c5a5e7db Mon Sep 17 00:00:00 2001 From: FBumann <117816358+FBumann@users.noreply.github.com> Date: Fri, 14 Nov 2025 09:11:06 +0100 Subject: [PATCH 07/19] Add 'open' status to feature/zenodo --- .zenodo.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.zenodo.json b/.zenodo.json index 65e3e56c8..6633ec5af 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -3,6 +3,7 @@ "description": "FlixOpt is a comprehensive framework for modeling and optimizing energy and material flow systems in Python. It enables optimization of diverse applications including district heating networks, industrial production lines, renewable energy portfolios, and supply chain logistics. Built on modern scientific Python stack (linopy and xarray), it provides a progressive enhancement approach allowing users to start with simple models and incrementally add complexity such as multi-period investments, stochastic scenarios, and custom constraints. The framework simplifies the creation of global constraints and switching objectives through its 'effect' concept. The framework is designed for researchers and engineers in energy systems, industrial process optimization, and operations research.", "version": "{{VERSION}}", "license": "MIT", + "access_right": "open", "upload_type": "software", "creators": [ { From a052e2a4d3f80665165b73308542d3ffa8042737 Mon Sep 17 00:00:00 2001 From: FBumann <117816358+FBumann@users.noreply.github.com> Date: Fri, 14 Nov 2025 09:20:37 +0100 Subject: [PATCH 08/19] Use full orcid links --- .zenodo.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.zenodo.json b/.zenodo.json index 6633ec5af..a6cedcf7e 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -9,17 +9,17 @@ { "name": "Bumann, Felix", "affiliation": "SachsenEnergie AG", - "orcid": "0009-0006-0765-4789" + "orcid": "https://orcid.org/0009-0006-0765-4789" }, { "name": "Panitz, Felix", "affiliation": "Fraunhofer Research Institution for Energy Infrastructures and Geotechnologies IEG", - "orcid": "0009-0007-7030-6987" + "orcid": "https://orcid.org/0009-0007-7030-6987" }, { "name": "Stange, Peter", "affiliation": "Chair of Building Energy Systems and Heat Supply, TU Dresden", - "orcid": "0009-0001-6407-1495" + "orcid": "https://orcid.org/0009-0001-6407-1495" } ], "contributors": [ From ba4103e731df5fb3880eee7d75282861f41f3c09 Mon Sep 17 00:00:00 2001 From: FBumann <117816358+FBumann@users.noreply.github.com> Date: Fri, 14 Nov 2025 09:28:28 +0100 Subject: [PATCH 09/19] Update project description --- .zenodo.json | 2 +- CITATION.cff | 2 +- README.md | 4 ++-- docs/index.md | 2 +- docs/stylesheets/extra.css | 2 +- mkdocs.yml | 6 +++--- pyproject.toml | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.zenodo.json b/.zenodo.json index a6cedcf7e..116d2edcc 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -1,5 +1,5 @@ { - "title": "flixOpt: Vector-based Energy and Material Flow Optimization Framework", + "title": "FlixOpt: Progressive Flow System Optimization", "description": "FlixOpt is a comprehensive framework for modeling and optimizing energy and material flow systems in Python. It enables optimization of diverse applications including district heating networks, industrial production lines, renewable energy portfolios, and supply chain logistics. Built on modern scientific Python stack (linopy and xarray), it provides a progressive enhancement approach allowing users to start with simple models and incrementally add complexity such as multi-period investments, stochastic scenarios, and custom constraints. The framework simplifies the creation of global constraints and switching objectives through its 'effect' concept. The framework is designed for researchers and engineers in energy systems, industrial process optimization, and operations research.", "version": "{{VERSION}}", "license": "MIT", diff --git a/CITATION.cff b/CITATION.cff index 9cab2cbac..ff12dcceb 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -7,7 +7,7 @@ date-released: 2025-10-20 url: "https://github.com/flixOpt/flixopt" repository-code: "https://github.com/flixOpt/flixopt" license: MIT -abstract: "Vector based energy and material flow optimization framework in Python." +abstract: "Progressive flow system optimization in Python. Build simple models quickly, then incrementally add multi-period planning, stochastic scenarios, and custom constraints without refactoring." keywords: - optimization - energy systems diff --git a/README.md b/README.md index b699a4c10..9381231a0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# FlixOpt: Energy and Material Flow Optimization Framework +# FlixOpt: Progressive Flow System Optimization [![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) @@ -18,7 +18,7 @@ --- -**FlixOpt is a Python framework for optimizing energy and material flow systems** - from district heating networks to industrial production lines, from renewable energy portfolios to supply chain logistics. +**FlixOpt is a Python framework for progressive flow system optimization** - from district heating networks to industrial production lines, from renewable energy portfolios to supply chain logistics. **Start simple, scale complex:** Build a working optimization model in minutes, then progressively add detail - multi-period investments, stochastic scenarios, custom constraints - without rewriting your code. diff --git a/docs/index.md b/docs/index.md index c9b01f284..3cfc21805 100644 --- a/docs/index.md +++ b/docs/index.md @@ -9,7 +9,7 @@ hide:

flixOpt

-

Energy and Material Flow Optimization Framework

+

Progressive Flow System Optimization

Model, optimize, and analyze complex energy systems with a powerful Python framework designed for flexibility and performance.

diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index f1b7c03d5..2f95b6d4e 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -1,5 +1,5 @@ /* ============================================================================ - flixOpt Custom Styling with Custom Palette + FlixOpt Custom Styling with Custom Palette ========================================================================= */ /* Root variables for easy customization */ diff --git a/mkdocs.yml b/mkdocs.yml index 61d33e233..0adba464d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,4 +1,4 @@ -# flixOpt Documentation Configuration +# FlixOpt Documentation Configuration # https://mkdocstrings.github.io/python/usage/configuration/docstrings/ # https://squidfunk.github.io/mkdocs-material/setup/ @@ -278,10 +278,10 @@ extra: social: - icon: fontawesome/brands/github link: https://github.com/flixOpt/flixopt - name: flixOpt on GitHub + name: FlixOpt on GitHub - icon: fontawesome/brands/python link: https://pypi.org/project/flixopt/ - name: flixOpt on PyPI + name: FlixOpt on PyPI analytics: provider: google diff --git a/pyproject.toml b/pyproject.toml index 0c6bcb951..258b0ab7f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "flixopt" dynamic = ["version"] -description = "Vector based energy and material flow optimization framework in Python." +description = "Progressive flow system optimization in Python - start simple, scale to complex." readme = "README.md" requires-python = ">=3.10" license = "MIT" From 1f2bc7d8f17e62b4472818a66bfd00546e38971c Mon Sep 17 00:00:00 2001 From: PStange <60431226+PStange@users.noreply.github.com> Date: Tue, 18 Nov 2025 08:15:19 +0100 Subject: [PATCH 10/19] Update .zenodo.json grant no. added --- .zenodo.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.zenodo.json b/.zenodo.json index 116d2edcc..2163b3963 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -51,6 +51,10 @@ "xarray" ], "language": "eng", + "grants": [ + { "id": ""grants": [ + {"id": "03KB159B"} + ] "related_identifiers": [ { "identifier": "https://github.com/flixOpt/flixopt", From 0eb4126cfe51343cd0f7a37d8af4b9ab7f0a9805 Mon Sep 17 00:00:00 2001 From: PStange <60431226+PStange@users.noreply.github.com> Date: Tue, 18 Nov 2025 08:20:33 +0100 Subject: [PATCH 11/19] Update .zenodo.json --- .zenodo.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.zenodo.json b/.zenodo.json index 2163b3963..e1d19e68a 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -52,8 +52,7 @@ ], "language": "eng", "grants": [ - { "id": ""grants": [ - {"id": "03KB159B"} + {"id": "03KB159B"} ] "related_identifiers": [ { From 863b4016270c4e12f0bf17851861cc5d05870691 Mon Sep 17 00:00:00 2001 From: PStange <60431226+PStange@users.noreply.github.com> Date: Tue, 18 Nov 2025 08:25:29 +0100 Subject: [PATCH 12/19] Update .zenodo.json --- .zenodo.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.zenodo.json b/.zenodo.json index e1d19e68a..f40ba2361 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -53,7 +53,7 @@ "language": "eng", "grants": [ {"id": "03KB159B"} - ] + ], "related_identifiers": [ { "identifier": "https://github.com/flixOpt/flixopt", From c0cd7fcd21fc2c6162dc4a47056cda1038c2267b Mon Sep 17 00:00:00 2001 From: Felix Panitz Date: Tue, 18 Nov 2025 09:39:44 +0100 Subject: [PATCH 13/19] Add citation notice to FlixOpt description Eurosun at the moment and ASAP new paper. --- .zenodo.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.zenodo.json b/.zenodo.json index f40ba2361..00822714f 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -1,6 +1,6 @@ { "title": "FlixOpt: Progressive Flow System Optimization", - "description": "FlixOpt is a comprehensive framework for modeling and optimizing energy and material flow systems in Python. It enables optimization of diverse applications including district heating networks, industrial production lines, renewable energy portfolios, and supply chain logistics. Built on modern scientific Python stack (linopy and xarray), it provides a progressive enhancement approach allowing users to start with simple models and incrementally add complexity such as multi-period investments, stochastic scenarios, and custom constraints. The framework simplifies the creation of global constraints and switching objectives through its 'effect' concept. The framework is designed for researchers and engineers in energy systems, industrial process optimization, and operations research.", + "description": "FlixOpt is a comprehensive framework for modeling and optimizing energy and material flow systems in Python. It enables optimization of diverse applications including district heating networks, industrial production lines, renewable energy portfolios, and supply chain logistics. Built on modern scientific Python stack (linopy and xarray), it provides a progressive enhancement approach allowing users to start with simple models and incrementally add complexity such as multi-period investments, stochastic scenarios, and custom constraints. The framework simplifies the creation of global constraints and switching objectives through its 'effect' concept. The framework is designed for researchers and engineers in energy systems, industrial process optimization, and operations research. \n\nCitation Notice: If you use FlixOpt in scientific work, please cite both this software version and the following publication: Panitz, F., Behrends, T., & Stange, P. (2022). Software-supported Investment Optimization for District Heating Supply Systems. In EuroSun 2022 Proceedings. DOI: 10.18086/eurosun.2022.04.07", "version": "{{VERSION}}", "license": "MIT", "access_right": "open", From e3f70eb070d80b7d8b01f299f9a4e195ed562110 Mon Sep 17 00:00:00 2001 From: Felix Panitz Date: Tue, 18 Nov 2025 09:46:01 +0100 Subject: [PATCH 14/19] Fix JSON description formatting in .zenodo.json \\n instead of \n --- .zenodo.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.zenodo.json b/.zenodo.json index 00822714f..5e888fb60 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -1,6 +1,6 @@ { "title": "FlixOpt: Progressive Flow System Optimization", - "description": "FlixOpt is a comprehensive framework for modeling and optimizing energy and material flow systems in Python. It enables optimization of diverse applications including district heating networks, industrial production lines, renewable energy portfolios, and supply chain logistics. Built on modern scientific Python stack (linopy and xarray), it provides a progressive enhancement approach allowing users to start with simple models and incrementally add complexity such as multi-period investments, stochastic scenarios, and custom constraints. The framework simplifies the creation of global constraints and switching objectives through its 'effect' concept. The framework is designed for researchers and engineers in energy systems, industrial process optimization, and operations research. \n\nCitation Notice: If you use FlixOpt in scientific work, please cite both this software version and the following publication: Panitz, F., Behrends, T., & Stange, P. (2022). Software-supported Investment Optimization for District Heating Supply Systems. In EuroSun 2022 Proceedings. DOI: 10.18086/eurosun.2022.04.07", + "description": "FlixOpt is a comprehensive framework for modeling and optimizing energy and material flow systems in Python. It enables optimization of diverse applications including district heating networks, industrial production lines, renewable energy portfolios, and supply chain logistics. Built on modern scientific Python stack (linopy and xarray), it provides a progressive enhancement approach allowing users to start with simple models and incrementally add complexity such as multi-period investments, stochastic scenarios, and custom constraints. The framework simplifies the creation of global constraints and switching objectives through its 'effect' concept. The framework is designed for researchers and engineers in energy systems, industrial process optimization, and operations research. \\n\\nCitation Notice: If you use FlixOpt in scientific work, please cite both this software version and the following publication: Panitz, F., Behrends, T., & Stange, P. (2022). Software-supported Investment Optimization for District Heating Supply Systems. In EuroSun 2022 Proceedings. DOI: 10.18086/eurosun.2022.04.07", "version": "{{VERSION}}", "license": "MIT", "access_right": "open", From 1f92efe7536cf7d49378bdb285a598d371ebd98d Mon Sep 17 00:00:00 2001 From: FBumann <117816358+FBumann@users.noreply.github.com> Date: Tue, 25 Nov 2025 16:42:35 +0100 Subject: [PATCH 15/19] Incorporate Backronym into docs and README.md --- .zenodo.json | 2 +- README.md | 8 ++++++++ docs/index.md | 4 +++- docs/stylesheets/extra.css | 22 +++++++++++++++++++++- 4 files changed, 33 insertions(+), 3 deletions(-) diff --git a/.zenodo.json b/.zenodo.json index 5e888fb60..88bc63684 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -1,6 +1,6 @@ { "title": "FlixOpt: Progressive Flow System Optimization", - "description": "FlixOpt is a comprehensive framework for modeling and optimizing energy and material flow systems in Python. It enables optimization of diverse applications including district heating networks, industrial production lines, renewable energy portfolios, and supply chain logistics. Built on modern scientific Python stack (linopy and xarray), it provides a progressive enhancement approach allowing users to start with simple models and incrementally add complexity such as multi-period investments, stochastic scenarios, and custom constraints. The framework simplifies the creation of global constraints and switching objectives through its 'effect' concept. The framework is designed for researchers and engineers in energy systems, industrial process optimization, and operations research. \\n\\nCitation Notice: If you use FlixOpt in scientific work, please cite both this software version and the following publication: Panitz, F., Behrends, T., & Stange, P. (2022). Software-supported Investment Optimization for District Heating Supply Systems. In EuroSun 2022 Proceedings. DOI: 10.18086/eurosun.2022.04.07", + "description": "FlixOpt (Flexible, Low-entry, Investment, X-sector OPTimization) is a comprehensive framework for modeling and optimizing energy and material flow systems in Python. It enables optimization of diverse applications including district heating networks, industrial production lines, renewable energy portfolios, and supply chain logistics. Built on modern scientific Python stack (linopy and xarray), it provides a progressive enhancement approach allowing users to start with simple models and incrementally add complexity such as multi-period investments, stochastic scenarios, and custom constraints. The framework simplifies the creation of global constraints and switching objectives through its 'effect' concept. The framework is designed for researchers and engineers in energy systems, industrial process optimization, and operations research. \\n\\nCitation Notice: If you use FlixOpt in scientific work, please cite both this software version and the following publication: Panitz, F., Behrends, T., & Stange, P. (2022). Software-supported Investment Optimization for District Heating Supply Systems. In EuroSun 2022 Proceedings. DOI: 10.18086/eurosun.2022.04.07", "version": "{{VERSION}}", "license": "MIT", "access_right": "open", diff --git a/README.md b/README.md index 9381231a0..c40691ab0 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,13 @@ # FlixOpt: Progressive Flow System Optimization +

+ Flexible  โ€ข  Low-entry  โ€ข  Investment  โ€ข  X-sector  โ€ข  OPTimization +

+ +

+ Adaptable to different systems ยท Easy to prototype ยท Investment planning focus ยท Sector coupling ยท Mathematical optimization +

+ [![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/) diff --git a/docs/index.md b/docs/index.md index 3cfc21805..f7ce6a650 100644 --- a/docs/index.md +++ b/docs/index.md @@ -9,7 +9,9 @@ hide:

flixOpt

-

Progressive Flow System Optimization

+

Flexible ยท Low-entry ยท Investment ยท X-sector ยท OPTimization

+ +

Adaptable to different systems ยท Easy to prototype ยท Investment planning focus ยท Sector coupling ยท Mathematical optimization

Model, optimize, and analyze complex energy systems with a powerful Python framework designed for flexibility and performance.

diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index 2f95b6d4e..2992267b6 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -526,10 +526,30 @@ .hero-section .tagline { font-size: 1.5rem; color: var(--md-default-fg-color--light); - margin-bottom: 2rem; + margin-bottom: 1rem; font-weight: 300; } +/* Backronym styling */ +.hero-section .backronym { + font-size: 1.3rem; + font-weight: 500; + letter-spacing: 0.05em; + margin-bottom: 0.5rem; +} + +.hero-section .backronym .letter { + color: var(--md-primary-fg-color); + font-weight: 700; +} + +.hero-section .backronym-desc { + font-size: 0.95rem; + color: var(--md-default-fg-color--light); + margin-bottom: 2rem; + opacity: 0.85; +} + .hero-buttons { display: flex; gap: 1rem; From b6778655f5ec66e1a9c886e5bfb9730e8c1e5345 Mon Sep 17 00:00:00 2001 From: FBumann <117816358+FBumann@users.noreply.github.com> Date: Wed, 26 Nov 2025 16:56:07 +0100 Subject: [PATCH 16/19] Change backronym translation --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c40691ab0..59ac17e1d 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@

- Adaptable to different systems ยท Easy to prototype ยท Investment planning focus ยท Sector coupling ยท Mathematical optimization + Model more than costs ยท Easy to prototype ยท Based on dispatch ยท Sector coupling ยท Mathematical optimization

[![Documentation](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://flixopt.github.io/flixopt/latest/) From fa9aabe6083b2a73eba96ce394b6869f1ebe8e3b Mon Sep 17 00:00:00 2001 From: FBumann <117816358+FBumann@users.noreply.github.com> Date: Wed, 26 Nov 2025 16:59:57 +0100 Subject: [PATCH 17/19] Change backronym translation --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index f7ce6a650..3467bb394 100644 --- a/docs/index.md +++ b/docs/index.md @@ -11,7 +11,7 @@ hide:

Flexible ยท Low-entry ยท Investment ยท X-sector ยท OPTimization

-

Adaptable to different systems ยท Easy to prototype ยท Investment planning focus ยท Sector coupling ยท Mathematical optimization

+

Model more than costs ยท Easy to prototype ยท Based on dispatch ยท Sector coupling ยท Mathematical optimization

Model, optimize, and analyze complex energy systems with a powerful Python framework designed for flexibility and performance.

From a8e13ef4f356f06552ff3570dfac8fed1a87b0ba Mon Sep 17 00:00:00 2001 From: FBumann <117816358+FBumann@users.noreply.github.com> Date: Wed, 26 Nov 2025 22:07:32 +0100 Subject: [PATCH 18/19] Add workflow to update the citation version and date --- .github/workflows/python-app.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/python-app.yaml b/.github/workflows/python-app.yaml index 014c2554e..d397d2be5 100644 --- a/.github/workflows/python-app.yaml +++ b/.github/workflows/python-app.yaml @@ -181,6 +181,18 @@ jobs: with: python-version: ${{ env.PYTHON_VERSION }} + - name: Update CITATION.cff + run: | + VERSION=${GITHUB_REF#refs/tags/v} + DATE=$(date +%Y-%m-%d) + sed -i "s/^version: .*/version: $VERSION/" CITATION.cff + sed -i "s/^date-released: .*/date-released: $DATE/" CITATION.cff + git config user.name github-actions[bot] + git config user.email 41898282+github-actions[bot]@users.noreply.github.com + git add CITATION.cff + git commit -m "Update CITATION.cff to $VERSION" || true + git push origin HEAD:main + - name: Extract release notes run: | VERSION=${GITHUB_REF#refs/tags/v} From c0ede5d3a7b6530ab779ae2a4ffec132575fdab7 Mon Sep 17 00:00:00 2001 From: FBumann <117816358+FBumann@users.noreply.github.com> Date: Wed, 26 Nov 2025 22:11:20 +0100 Subject: [PATCH 19/19] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 59ac17e1d..6d049819d 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ **FlixOpt is a Python framework for progressive flow system optimization** - from district heating networks to industrial production lines, from renewable energy portfolios to supply chain logistics. -**Start simple, scale complex:** Build a working optimization model in minutes, then progressively add detail - multi-period investments, stochastic scenarios, custom constraints - without rewriting your code. +Build simple models quickly, then incrementally add investment decision, multi-period planning, stochastic scenarios, and custom constraints without refactoring. ---