flixopt 2.2.0b0__py3-none-any.whl → 2.2.0rc2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of flixopt might be problematic. Click here for more details.
- docs/examples/00-Minimal Example.md +1 -1
- docs/examples/01-Basic Example.md +1 -1
- docs/examples/02-Complex Example.md +1 -1
- docs/examples/index.md +1 -1
- docs/faq/contribute.md +26 -14
- docs/faq/index.md +1 -1
- docs/javascripts/mathjax.js +1 -1
- docs/user-guide/Mathematical Notation/Bus.md +1 -1
- docs/user-guide/Mathematical Notation/Effects, Penalty & Objective.md +13 -13
- docs/user-guide/Mathematical Notation/Flow.md +1 -1
- docs/user-guide/Mathematical Notation/LinearConverter.md +2 -2
- docs/user-guide/Mathematical Notation/Piecewise.md +1 -1
- docs/user-guide/Mathematical Notation/Storage.md +1 -1
- docs/user-guide/Mathematical Notation/index.md +1 -1
- docs/user-guide/Mathematical Notation/others.md +1 -1
- docs/user-guide/index.md +2 -2
- flixopt/__init__.py +5 -0
- flixopt/aggregation.py +0 -1
- flixopt/calculation.py +40 -72
- flixopt/commons.py +10 -1
- flixopt/components.py +326 -154
- flixopt/core.py +459 -966
- flixopt/effects.py +67 -270
- flixopt/elements.py +76 -84
- flixopt/features.py +172 -154
- flixopt/flow_system.py +70 -99
- flixopt/interface.py +315 -147
- flixopt/io.py +27 -56
- flixopt/linear_converters.py +3 -3
- flixopt/network_app.py +755 -0
- flixopt/plotting.py +16 -34
- flixopt/results.py +108 -806
- flixopt/structure.py +11 -67
- flixopt/utils.py +9 -6
- {flixopt-2.2.0b0.dist-info → flixopt-2.2.0rc2.dist-info}/METADATA +63 -42
- flixopt-2.2.0rc2.dist-info/RECORD +54 -0
- {flixopt-2.2.0b0.dist-info → flixopt-2.2.0rc2.dist-info}/WHEEL +1 -1
- scripts/extract_release_notes.py +45 -0
- docs/release-notes/_template.txt +0 -32
- docs/release-notes/index.md +0 -7
- docs/release-notes/v2.0.0.md +0 -93
- docs/release-notes/v2.0.1.md +0 -12
- docs/release-notes/v2.1.0.md +0 -31
- docs/release-notes/v2.2.0.md +0 -55
- docs/user-guide/Mathematical Notation/Investment.md +0 -115
- flixopt-2.2.0b0.dist-info/RECORD +0 -59
- {flixopt-2.2.0b0.dist-info → flixopt-2.2.0rc2.dist-info}/licenses/LICENSE +0 -0
- {flixopt-2.2.0b0.dist-info → flixopt-2.2.0rc2.dist-info}/top_level.txt +0 -0
docs/release-notes/v2.2.0.md
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# Release v2.2.0
|
|
2
|
-
|
|
3
|
-
**Release Date:** YYYY-MM-DD
|
|
4
|
-
|
|
5
|
-
## What's New
|
|
6
|
-
|
|
7
|
-
### Scenarios
|
|
8
|
-
Scenarios are a new feature of flixopt. They can be used to model uncertainties in the flow system, such as:
|
|
9
|
-
* Different demand profiles
|
|
10
|
-
* Different price forecasts
|
|
11
|
-
* Different weather conditions
|
|
12
|
-
* Different climate conditions
|
|
13
|
-
The might also be used to model an evolving system with multiple investment periods. Each **scenario** might be a new year, a new month, or a new day, with a different set of investment decisions to take.
|
|
14
|
-
|
|
15
|
-
The weighted sum of the total objective effect of each scenario is used as the objective of the optimization.
|
|
16
|
-
|
|
17
|
-
#### Investments and scenarios
|
|
18
|
-
Scenarios allow for more flexibility in investment decisions.
|
|
19
|
-
You can decide to allow different investment decisions for each scenario, or to allow a single investment decision for a subset of all scnarios, while not allowing for an invest in others.
|
|
20
|
-
This enables the following use cases:
|
|
21
|
-
* Find the best investment decision for each scenario individually
|
|
22
|
-
* Find the best overall investment decision for possible scenarios (robust decision-making)
|
|
23
|
-
* Find the best overall investment decision for a subset of all scenarios
|
|
24
|
-
|
|
25
|
-
The last one might be useful if you want to model a system with multiple investment periods, where one investment decision is made for more than one scenario.
|
|
26
|
-
This might occur when scenarios represent years or months, while an investment decision influences the system for multiple years or months.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
## Other new features
|
|
30
|
-
* Balanced storage - Storage charging and discharging sizes can now be forced to be equal in when optimizing their size.
|
|
31
|
-
* Feature 2 - Description
|
|
32
|
-
|
|
33
|
-
## Improvements
|
|
34
|
-
|
|
35
|
-
* Improvement 1 - Description
|
|
36
|
-
* Improvement 2 - Description
|
|
37
|
-
|
|
38
|
-
## Bug Fixes
|
|
39
|
-
|
|
40
|
-
* Fixed issue with X
|
|
41
|
-
* Resolved problem with Y
|
|
42
|
-
|
|
43
|
-
## Breaking Changes
|
|
44
|
-
|
|
45
|
-
* Change 1 - Migration instructions
|
|
46
|
-
* Change 2 - Migration instructions
|
|
47
|
-
|
|
48
|
-
## Deprecations
|
|
49
|
-
|
|
50
|
-
* Feature X will be removed in v{next_version}
|
|
51
|
-
|
|
52
|
-
## Dependencies
|
|
53
|
-
|
|
54
|
-
* Added dependency X v1.2.3
|
|
55
|
-
* Updated dependency Y to v2.0.0
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
# Investments
|
|
2
|
-
|
|
3
|
-
## Current state
|
|
4
|
-
$$
|
|
5
|
-
\beta_{\text{invest}} \cdot \text{max}(\epsilon, \text V^{\text L}) \leq V \leq \beta_{\text{invest}} \cdot \text V^{\text U}
|
|
6
|
-
$$
|
|
7
|
-
With:
|
|
8
|
-
- $V$ = size
|
|
9
|
-
- $V^{\text L}$ = minimum size
|
|
10
|
-
- $V^{\text U}$ = maximum size
|
|
11
|
-
- $\epsilon$ = epsilon, a small number (such as $1e^{-5}$)
|
|
12
|
-
- $\beta_{invest} \in {0,1}$ = wether the size is invested or not
|
|
13
|
-
|
|
14
|
-
_Please edit the use cases as needed_
|
|
15
|
-
## Quickfix 1: Optimize the single best size overall
|
|
16
|
-
### Single variable
|
|
17
|
-
This is already possible and should be, as this is a needed use case
|
|
18
|
-
An additional factor to when the size is actually available might me practical (Which indicates the (fixed) time of investment)
|
|
19
|
-
## Math
|
|
20
|
-
$$
|
|
21
|
-
V(p) = V * a(p)
|
|
22
|
-
$$
|
|
23
|
-
with:
|
|
24
|
-
- $V$ = size
|
|
25
|
-
- $a(p)$ = factor for availlability per period
|
|
26
|
-
|
|
27
|
-
Factor $a(p)$ is simply multiplied with relative minimum or maximum(t). This is already possible by doing this yourself.
|
|
28
|
-
Effectively, the relative minimum or maximum are altered before using the same constraiints as before.
|
|
29
|
-
THis might lead to some issues regariding minimum_load factor, or others, as the size is not 0 in a scenario where the component cant produce.
|
|
30
|
-
**Therefore this might not be the best choice. See (#Variable per Scenario)
|
|
31
|
-
|
|
32
|
-
## Variable per Scenario
|
|
33
|
-
- **size** and **invest** as a variable per period $V(s)$ and $\beta_{invest}(s)$
|
|
34
|
-
- with scenario $s \in S$
|
|
35
|
-
|
|
36
|
-
### Usecase 1: Optimize the size for each Scenario independently
|
|
37
|
-
Restrictions are seperatly for each scenario
|
|
38
|
-
No changes needed. This could be the default behaviour.
|
|
39
|
-
|
|
40
|
-
### Usecase 2: Optimize ONE size for ALL scenarios
|
|
41
|
-
The size is the same globally, but not a scalar, but a variable per scenario $V(s)$
|
|
42
|
-
#### 2a: The same size in all scenarios
|
|
43
|
-
$$
|
|
44
|
-
V(s) = V(s') \quad \forall s,s' \in S
|
|
45
|
-
$$
|
|
46
|
-
|
|
47
|
-
With:
|
|
48
|
-
- $V(s)$ and $V(s')$ = size
|
|
49
|
-
- $S$ = set of scenarios
|
|
50
|
-
|
|
51
|
-
#### 2b: The same size, but can be 0 prior to the first increment
|
|
52
|
-
- Find the Optimal time of investment.
|
|
53
|
-
- Force an investment in a certain scenario (parameter optional as a list/array ob booleans)
|
|
54
|
-
- Combine optional and minimum/maximum size to force an investment inside a range if scenarios
|
|
55
|
-
|
|
56
|
-
$$
|
|
57
|
-
\beta_{\text{invest}}(s) \leq \beta_{\text{invest}}(s+1) \quad \forall s \in \{1,2,\ldots,S-1\}
|
|
58
|
-
$$
|
|
59
|
-
|
|
60
|
-
$$
|
|
61
|
-
V(s') - V(s) \leq M \cdot (2 - \beta_{\text{invest}}(s) - \beta_{\text{invest}}(s')) \quad \forall s, s' \in S
|
|
62
|
-
$$
|
|
63
|
-
$$
|
|
64
|
-
V(s') - V(s) \geq M \cdot (2 - \beta_{\text{invest}}(s) - \beta_{\text{invest}}(s')) \quad \forall s, s' \in S
|
|
65
|
-
$$
|
|
66
|
-
|
|
67
|
-
This could be the default behaviour. (which would be consistent with other variables)
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
### Switch
|
|
71
|
-
|
|
72
|
-
$$
|
|
73
|
-
\begin{aligned}
|
|
74
|
-
& \text{SWITCH}_s \in \{0,1\} \quad \forall s \in \{1,2,\ldots,S\} \\
|
|
75
|
-
& \sum_{s=1}^{S} \text{SWITCH}_s = 1 \\
|
|
76
|
-
& \beta_{\text{invest}}(s) = \sum_{s'=1}^{s} \text{SWITCH}_{s'} \quad \forall s \in \{1,2,\ldots,S\} \\
|
|
77
|
-
\end{aligned}
|
|
78
|
-
$$
|
|
79
|
-
|
|
80
|
-
$$
|
|
81
|
-
\begin{aligned}
|
|
82
|
-
& V(s) \leq V_{\text{actual}} \quad \forall s \in \{1,2,\ldots,S\} \\
|
|
83
|
-
& V(s) \geq V_{\text{actual}} - M \cdot (1 - \beta_{\text{invest}}(s)) \quad \forall s \in \{1,2,\ldots,S\}
|
|
84
|
-
\end{aligned}
|
|
85
|
-
$$
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
### Usecase 3: Find the best scenario to increment the size (Timing of the investment)
|
|
91
|
-
The size can only increment once (based on a starting point). This allows to optimize the timing of an investment.
|
|
92
|
-
#### Math
|
|
93
|
-
Treat $\beta_{invest}$ like an ON/OFF variable, and introduce a SwitchOn, that can only be active once.
|
|
94
|
-
|
|
95
|
-
*Thoughts:*
|
|
96
|
-
- Treating $\beta_{invest}$ like an ON/OFF variable suggest using the already presentconstraints linked to On/OffModel
|
|
97
|
-
- The timing could be constraint to be first in scenario x, or last in scenario y
|
|
98
|
-
- Restrict the number of consecutive scenarios
|
|
99
|
-
THis might needs the OnOffModel to be more generic (HOURS). Further, the span between scenarios needs to be weighted (like dt_in_hours), or the scenarios need to be measureable (integers)
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
### Others
|
|
103
|
-
|
|
104
|
-
#### Usecase 4: Only increase/decrease the size
|
|
105
|
-
Start from a certain size. For each scenario, the size can increase, but never decrease. (Or the other way around).
|
|
106
|
-
This would mean that a size expansion is possible,
|
|
107
|
-
|
|
108
|
-
#### Usecase 5: Restrict the increment in size per scenario
|
|
109
|
-
Restrict how much the size can increase/decrease for in scenario, based on the prior scenario.
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
Many more are possible
|
flixopt-2.2.0b0.dist-info/RECORD
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
docs/examples/00-Minimal Example.md,sha256=9byRZWHXtZS6e2iBxCAM12avc3xe2pbRAK38y-Y8Jqg,79
|
|
2
|
-
docs/examples/01-Basic Example.md,sha256=zTFsTf_ZKcO_dENN-yB0MvBTXxcTedjYGDI7TKpJS6s,77
|
|
3
|
-
docs/examples/02-Complex Example.md,sha256=JrvHOJ6fJ1ocVI2lJXqE9z08gkOR4tBVPFo4TcbFVkY,286
|
|
4
|
-
docs/examples/03-Calculation Modes.md,sha256=FZPBXmrkir6QhQsiXwWp2sOOntIIkODCgh3lVqOrP6w,231
|
|
5
|
-
docs/examples/index.md,sha256=3oVSaqxIDt06d1URQ940iPn2KQpjtjEUiEf5m2g8BkU,178
|
|
6
|
-
docs/faq/contribute.md,sha256=Pquj8zcTvUNZl4Ex223k-p-7UktdzyiBpKpUYd-i1Us,2361
|
|
7
|
-
docs/faq/index.md,sha256=7y0Qsc5cdN7iYxmMt7aAlI34SehVKVBYMXcOxLUTRis,49
|
|
8
|
-
docs/images/architecture_flixOpt-pre2.0.0.png,sha256=9RWSA3vys588aadr2437zor-_-xBTQNQ0bAf8xGcu5g,70605
|
|
9
|
-
docs/images/architecture_flixOpt.png,sha256=KjN1bJwESbkHmTW7UsJ7dZyiKZlTO7Dx20dg8KlR1HU,260219
|
|
10
|
-
docs/images/flixopt-icon.svg,sha256=_1a6bk2pDOVEy233LC1nM6jZ35NdzD8Hd3UqGxW1Xpg,135341
|
|
11
|
-
docs/javascripts/mathjax.js,sha256=lkPNMk5XrDlyut9e5nGHgpN7gFl8OejpdJJ_gRW_14k,401
|
|
12
|
-
docs/release-notes/_template.txt,sha256=j65E_FDxzimkcMXBrXyF6b2KPm0KAiQlGTxfhQHnN7c,496
|
|
13
|
-
docs/release-notes/index.md,sha256=6VslOEfF3KQQCbntguRKz7uGWd_W_KIYotP8L1fzAeI,227
|
|
14
|
-
docs/release-notes/v2.0.0.md,sha256=eauxvCH3O0B054vhbP0G8GdeF2LM__J57VAGYRFQzBg,4676
|
|
15
|
-
docs/release-notes/v2.0.1.md,sha256=_0oqZjogRv_x6DToWih78uhHu65-J1tat5A1asYxg50,398
|
|
16
|
-
docs/release-notes/v2.1.0.md,sha256=uUnlzG61rI2PYce1SxIySYOnW55e_vnJYJN7l8lcB8A,1325
|
|
17
|
-
docs/release-notes/v2.2.0.md,sha256=MvIdMzmDA4d-h6UFGPU0dEqWl5PwJC8qPE5NvxxlCJ8,2022
|
|
18
|
-
docs/user-guide/index.md,sha256=fxI_bMjz7czJ5aF_7D7l5rQVpc03WV2EAaBo9y3gB2g,7452
|
|
19
|
-
docs/user-guide/Mathematical Notation/Bus.md,sha256=getjae_-rNTXbotO0euXwYCq2arBoayKsN9KeFb2u60,1612
|
|
20
|
-
"docs/user-guide/Mathematical Notation/Effects, Penalty & Objective.md",sha256=RNqcJzNI1E-U01gaeoKu7m-7gjmtDWvjr2Y5JK9YgTA,5685
|
|
21
|
-
docs/user-guide/Mathematical Notation/Flow.md,sha256=MaBsj5j5dfa1qnUYCKbrNqE2yDZSeJ60_hoq95uhWyg,1094
|
|
22
|
-
docs/user-guide/Mathematical Notation/Investment.md,sha256=NUs8b2Hx1ZNFxSuGqFHx5epk2-qqUQ7I_EG17X5EVPQ,4181
|
|
23
|
-
docs/user-guide/Mathematical Notation/LinearConverter.md,sha256=XNkRgE8-MVNplKT3n1MyIrtgTRkbbwp7-qfapZw2kfU,1322
|
|
24
|
-
docs/user-guide/Mathematical Notation/Piecewise.md,sha256=ia4rkKYrEidWIBsgLMAkt10JH-idmaavJTAMzAlMH_8,1994
|
|
25
|
-
docs/user-guide/Mathematical Notation/Storage.md,sha256=PeNzk77i-81VX8I5r3zen3karF5v3wal9x2_ReUuyho,2199
|
|
26
|
-
docs/user-guide/Mathematical Notation/index.md,sha256=gkglBsoARhgvppXN9PgdJF33sCSnwGY7MtKDtCC32bE,1255
|
|
27
|
-
docs/user-guide/Mathematical Notation/others.md,sha256=wOUsfspAoSNTMlTNipeQ8ohoVVX2S-eI3dmlzqqrbR8,47
|
|
28
|
-
flixopt/__init__.py,sha256=F49OK5QLUnMGmsaKQ-G0dXsVuKr9Ow_pjM4KMSNZ918,614
|
|
29
|
-
flixopt/aggregation.py,sha256=UaAYh34C4XhDgiSs4lm31XEMLr4YO5BzLKUAx4NQuyI,17002
|
|
30
|
-
flixopt/calculation.py,sha256=u8O11pU-PaY57MybTG63MSa3Rm-fBUTn9OvytZI-3aY,21348
|
|
31
|
-
flixopt/commons.py,sha256=ZNlUN1z-h9OGHPo-s-n5OLlJaoPZKVGcAdRyGKpMk4M,1256
|
|
32
|
-
flixopt/components.py,sha256=lu76ZklsG2fS7xOYYEoutFgj72DLCfqwFpRcBzBZfzs,31377
|
|
33
|
-
flixopt/config.py,sha256=Kt8QYk7hX5qHcQUtfgjM862C6SQr4K2lDvtk_LLER8Y,9085
|
|
34
|
-
flixopt/config.yaml,sha256=imzAnnhcJhIfKNTTXFB5Td7Pvk5ARn5j720k-oGGRug,392
|
|
35
|
-
flixopt/core.py,sha256=IS9IN-WrHTn2U8cbrhkFw3TqLblKNDNzMXZVHatZuks,56359
|
|
36
|
-
flixopt/effects.py,sha256=TELgTCuzu8wYWEmRpQY5r_hBxQIk0pr_hm2Rn-hTpAA,24575
|
|
37
|
-
flixopt/elements.py,sha256=glEvUpHHjZZVUvafRAybNXiqJNlnhWWZ3edgoSfpslc,28630
|
|
38
|
-
flixopt/features.py,sha256=zcLzunoi-LAMUuG6OjJ_4j95zA3b-tptPkgvSN29Als,46725
|
|
39
|
-
flixopt/flow_system.py,sha256=mLEZ0blw5dNLRR8IDBjkQWob_uKeXD-aADQSUy9Vtjw,21090
|
|
40
|
-
flixopt/interface.py,sha256=HKYPO0J3FoEyxa6Wr-BIkEHsGpNwDobXq3zzy1CqoXo,16148
|
|
41
|
-
flixopt/io.py,sha256=S4Ia3lcKykXUEW8qn8pu8JOhqejp001bolCGXO7vleM,12029
|
|
42
|
-
flixopt/linear_converters.py,sha256=xIp0mxw2v5mVzT9ZWYUeJUbh-jYgFiRmku88vOXhtWA,10934
|
|
43
|
-
flixopt/plotting.py,sha256=68O330RnLBNlOcZ-P6WK1YBvRwSoG6x9ELrBcDBOrNA,54879
|
|
44
|
-
flixopt/results.py,sha256=1tD94E2YfOIA8nX5bXR3vnAnBwokO9O0Mlk5zuESF5Q,69189
|
|
45
|
-
flixopt/solvers.py,sha256=k1bSoiXec3asWED70-erXkgtpn2C8KRBfSZj0FLviSM,2436
|
|
46
|
-
flixopt/structure.py,sha256=Ufgu8cf1pO4UIww4Lht7I1Iabm6JUxWM-N7gGdNjIdM,28905
|
|
47
|
-
flixopt/utils.py,sha256=xuksGh1dXj8HNhkcjMCVIxlpAA_QSWXePFmkbJYvQwM,1712
|
|
48
|
-
flixopt-2.2.0b0.dist-info/licenses/LICENSE,sha256=HKsZnbrM_3Rvnr_u9cWSG90cBsj5_slaqI_z_qcxnGI,1118
|
|
49
|
-
pics/architecture_flixOpt-pre2.0.0.png,sha256=9RWSA3vys588aadr2437zor-_-xBTQNQ0bAf8xGcu5g,70605
|
|
50
|
-
pics/architecture_flixOpt.png,sha256=KjN1bJwESbkHmTW7UsJ7dZyiKZlTO7Dx20dg8KlR1HU,260219
|
|
51
|
-
pics/flixOpt_plotting.jpg,sha256=zn7ZPAtXm5eRTxtOj86e4-PPhHpCar1jqGh7vMBgQGY,518862
|
|
52
|
-
pics/flixopt-icon.svg,sha256=_1a6bk2pDOVEy233LC1nM6jZ35NdzD8Hd3UqGxW1Xpg,135341
|
|
53
|
-
pics/pics.pptx,sha256=ImWeGGvjtWJ6BGruipsnZYmWtHj5sWdbw1NSFePbkC8,683344
|
|
54
|
-
scripts/gen_ref_pages.py,sha256=AYRtXyz78x5I_Hn0oRtGVbTxgLLj2QNyRX6vWRefPjc,1960
|
|
55
|
-
tests/ressources/Zeitreihen2020.csv,sha256=kbsDTKZS0iUsNZAS7m3DohzZI_OHHWe44s3GwLvcTLw,1918412
|
|
56
|
-
flixopt-2.2.0b0.dist-info/METADATA,sha256=0O2Ass8s06oafXxxkjUbHtWdfmeUUjCmUzjzcBE3uZI,7157
|
|
57
|
-
flixopt-2.2.0b0.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
|
|
58
|
-
flixopt-2.2.0b0.dist-info/top_level.txt,sha256=DEuo4R1z7GmEp5R3pjbQEJbaPRjKHFvNX2ceiBnVOL0,32
|
|
59
|
-
flixopt-2.2.0b0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|