You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: paper/paper.md
+10-57Lines changed: 10 additions & 57 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -66,13 +66,20 @@ During modeling, Flixopt constructs the optimization problem in a fully vectoriz
66
66
67
67

68
68
69
-
Each user-defined element is associated with an internal model that generates constraints and variables in a vectorized form using Linopy. Optional features add investment decisions, on/off states, minimum up- or downtimes, mutual exclusivity of flows, piecewise-linear relations etc. These capabilities remain inactive unless explicitly required, keeping models compact and computationally efficient.
69
+
For example, following features can be used:
70
+
* investment decisions with continuous sizes and binary selection,
71
+
* on/off states and switching behavior,
72
+
* minimum/maximum consecutive operation or downtime,
73
+
* prevention of simultaneous flow operation,
74
+
* piecewise linear relations via linear segments.
75
+
76
+
These capabilities remain inactive unless explicitly required, keeping models compact and computationally efficient.
70
77
71
78
Flixopt supports several calculation modes. The default mode performs full time-resolved optimization. Aggregated modes use clustered typical periods, following principles discussed in the literature on time-series aggregation ([@TSAM2020]), reducing computational burden for long time horizons. A segmented mode decomposes large operational problems into smaller, sequentially optimized blocks.
72
79
73
80
## Effects
74
81
75
-
Flixopt introduces a freely definable system of evaluation metrics called *Effects* such as costs, emissions, primary energy demand, or any user-defined indicators. Any structural entity can contribute shares to any *Effect* and *Effects* can contribute to each other. This abstraction through *Effects* has the following advantages over a traditional rigid objective, as it generically integrates the following features:
82
+
Flixopt introduces a freely definable system of evaluation metrics called *Effects* such as costs, emissions, primary energy demand, or any user-defined indicators. One *Effect* is chosen as objective. Any structural entity can contribute shares to any *Effect* and *Effects* can contribute to each other. This abstraction through *Effects* has the following advantages over a traditional rigid objective, as it generically integrates the following features:
76
83
77
84
* Switch the objective to another *Effect* easily, once *Effects* and a flow-system are defined.
78
85
* Include as many evaluation metrics as needed to simplify the evaluation of the solution.
@@ -92,61 +99,7 @@ Flixopt introduces a freely definable system of evaluation metrics called *Effec
# ++ Textschnipsel näher am smart energy paper (und zu lang)! ++
102
-
## Introduction
103
-
104
-
Flixopt is a Python framework for mixed‑integer linear programming and optimization of complex systems with energy and material flows. It builds on a MATLAB® framework that has been migrated to Python and incorporates principles from earlier work as well as ideas from the Python package oemof/solph. Flixopt is published under the MIT license. Its generic and extensible approach allows application in a wide variety of scenarios. It enables non‑equidistant timesteps, allocation of impacts to freely definable evaluation metrics, switching between objectives, and broad flexibility in configuring the optimization. A short overview was previously published, but this paper provides a comprehensive description of the framework and introduces its novel concepts (e.g., *Effects*).
105
-
106
-
Although development has focused mainly on optimizing energy systems — especially district heating systems — Flixopt is designed to be usable across disciplines and research questions.
107
-
108
-
## Architecture and workflow of Flixopt
109
-
110
-
The architecture and workflow of the Flixopt package consist of three main steps: initialization, modeling and solving, and postprocessing of results. Users begin by implementing a flow‑system, defining the network topology and all element parameters. Based on the flow-system or an arbitrary subset of it, one or more calculation setups can then be configured, including the choice of solver.
111
-
112
-
During modeling, Flixopt constructs the optimization problem in a fully vectorized manner using Linopy. After solving, Flixopt provides a postprocessing environment that yields structured access to results, facilitates visualization and statistical analysis, and enables saving/restoring complete solution states.
113
-
114
-
The architecture and workflow of the Flixopt package consist of three main steps: initialization, modeling and solving, and postprocessing of results. Users begin by implementing a flow‑system consisting of *Element* objects, defining the network topology and all element parameters. One or more calculation setups can then be configured, including the choice of solver, calculation mode, and selected time horizon or segment.
115
-
116
-
During modeling, Flixopt creates for each calculation a sub‑flow‑system derived from the base model. It then constructs the optimization problem in a fully vectorized manner using Linopy, which handles array‑based modeling and solver communication. After solving, Flixopt provides a postprocessing environment that yields structured access to results, facilitates visualization and statistical analysis, and enables saving/restoring complete solution states.
117
-
118
-
## Structure and Mathematical Modeling
119
-
120
-
Flixopt models systems as flow‑systems consisting of *Flows*, *Components*, *Buses*, and *Effects*, all of which are subclasses of *Element*. While *Flows*, *Components*, and *Buses* represent structural aspects of energy or material systems — similar to many existing frameworks — the concept of *Effects* is a novel contribution. *Effects* capture evaluation metrics such as costs, CO₂ emissions, primary energy demand, floor area, number of units, or any other metric defined by the user.
121
-
122
-
Each *Element* is linked to an internal *Elementmodel* created during modeling. *Elementmodels* manage variables and constraints, while *Elements* store user parameters and serve as the user‑facing interface. Optional *Features* extend *Elementmodels* with additional functionality, such as investment decisions, on/off states, or linear segments.
123
-
124
-
Time handling in Flixopt is fully flexible: users may define equidistant or non‑equidistant timesteps, and the framework automatically derives timestep durations and total time spans.
125
-
126
-
## Effects and Objective
127
-
128
-
Effects are central to Flixopt’s abstraction of evaluation metrics. This enables: (1) multi‑criteria evaluation, (2) ε‑constraint formulations, (3) weighted‑sum multiobjective optimization, (4) distinguishing operational and investment impacts, and (5) external incentives without altering existing effect definitions. One effect is chosen as the objective, and a general penalty term is added to ensure solvability and improve debugging.
129
-
130
-
## Components, Flows, and Buses
131
-
132
-
## Features
133
-
134
-
Flixopt’s feature system extends elements with optional advanced modeling capabilities:
135
-
136
-
* Investment decisions with continuous sizes and binary selection.
137
-
* On/off states and switching behavior.
138
-
* Minimum/maximum consecutive operation or downtime.
139
-
* Prevention of simultaneous flow operation.
140
-
* Piecewise linear relations via linear segments.
141
-
142
-
## Calculation Modes
143
-
144
-
Flixopt supports several calculation modes: exact time‑resolved modeling, segmented optimization for long horizons, and aggregated/typical‑period approaches based on time‑series clustering. These modes reduce computational effort while preserving system characteristics.
145
-
146
-
# Acknowledgements
147
-
</div>
148
-
149
-
# todo
102
+
## todo
150
103
* Prüfen, dass möglichst alle Literaturquellen verwendet
0 commit comments