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.

Files changed (48) hide show
  1. docs/examples/00-Minimal Example.md +1 -1
  2. docs/examples/01-Basic Example.md +1 -1
  3. docs/examples/02-Complex Example.md +1 -1
  4. docs/examples/index.md +1 -1
  5. docs/faq/contribute.md +26 -14
  6. docs/faq/index.md +1 -1
  7. docs/javascripts/mathjax.js +1 -1
  8. docs/user-guide/Mathematical Notation/Bus.md +1 -1
  9. docs/user-guide/Mathematical Notation/Effects, Penalty & Objective.md +13 -13
  10. docs/user-guide/Mathematical Notation/Flow.md +1 -1
  11. docs/user-guide/Mathematical Notation/LinearConverter.md +2 -2
  12. docs/user-guide/Mathematical Notation/Piecewise.md +1 -1
  13. docs/user-guide/Mathematical Notation/Storage.md +1 -1
  14. docs/user-guide/Mathematical Notation/index.md +1 -1
  15. docs/user-guide/Mathematical Notation/others.md +1 -1
  16. docs/user-guide/index.md +2 -2
  17. flixopt/__init__.py +5 -0
  18. flixopt/aggregation.py +0 -1
  19. flixopt/calculation.py +40 -72
  20. flixopt/commons.py +10 -1
  21. flixopt/components.py +326 -154
  22. flixopt/core.py +459 -966
  23. flixopt/effects.py +67 -270
  24. flixopt/elements.py +76 -84
  25. flixopt/features.py +172 -154
  26. flixopt/flow_system.py +70 -99
  27. flixopt/interface.py +315 -147
  28. flixopt/io.py +27 -56
  29. flixopt/linear_converters.py +3 -3
  30. flixopt/network_app.py +755 -0
  31. flixopt/plotting.py +16 -34
  32. flixopt/results.py +108 -806
  33. flixopt/structure.py +11 -67
  34. flixopt/utils.py +9 -6
  35. {flixopt-2.2.0b0.dist-info → flixopt-2.2.0rc2.dist-info}/METADATA +63 -42
  36. flixopt-2.2.0rc2.dist-info/RECORD +54 -0
  37. {flixopt-2.2.0b0.dist-info → flixopt-2.2.0rc2.dist-info}/WHEEL +1 -1
  38. scripts/extract_release_notes.py +45 -0
  39. docs/release-notes/_template.txt +0 -32
  40. docs/release-notes/index.md +0 -7
  41. docs/release-notes/v2.0.0.md +0 -93
  42. docs/release-notes/v2.0.1.md +0 -12
  43. docs/release-notes/v2.1.0.md +0 -31
  44. docs/release-notes/v2.2.0.md +0 -55
  45. docs/user-guide/Mathematical Notation/Investment.md +0 -115
  46. flixopt-2.2.0b0.dist-info/RECORD +0 -59
  47. {flixopt-2.2.0b0.dist-info → flixopt-2.2.0rc2.dist-info}/licenses/LICENSE +0 -0
  48. {flixopt-2.2.0b0.dist-info → flixopt-2.2.0rc2.dist-info}/top_level.txt +0 -0
@@ -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
@@ -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,,