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: CHANGELOG.rst
+7Lines changed: 7 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,13 @@ Change Log
4
4
[4.18.5] - 2025-05-20
5
5
-----------------------
6
6
- [CHANGED] introduce variable TTC forward and backward for the transmission lines
7
+
8
+
[4.18.5] - 2025-05-19
9
+
-----------------------
10
+
- [CHANGED] add hourly mutually exclusive generators, generators can now be part of several mutually exclusive groups, exclusivity now applies to consumption too
11
+
- [FIXED] change from titleside to title_side in output results to adapt to the latest plotly version
12
+
- [CHANGED] add logfile for GAMS solver
13
+
- [FIXED] fix error in the cost summary per area files
7
14
- [FIXED] fix some errors in the output results
8
15
- [FIXED] don't initialize some variables
9
16
- [FIXED] don't fixed or count variables that have no value
Copy file name to clipboardExpand all lines: README.rst
+1-10Lines changed: 1 addition & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -132,7 +132,7 @@ Miniconda (recommended)
132
132
2. The `HiGHS <https://ergo-code.github.io/HiGHS/dev/interfaces/python/#python-getting-started>`_ is our recommendation if you want a free and open-source solver.
133
133
3. Install openTEPES via pip by ``pip install openTEPES``
134
134
135
-
Continue at `Get Started <#get-started>`_ and see the `Tips <#tips>`_.
135
+
Continue at `Get Started <#get-started>`_.
136
136
137
137
138
138
GitHub Repository (the hard way)
@@ -206,15 +206,6 @@ Then, the **results** should be written in the folder who is called with the cas
1. A complete documentation of the openTEPES model can be found at `<https://opentepes.readthedocs.io/en/latest/index.html>`_, which presents the mathematical formulation, input data and output results.
213
-
2. Try modifying the **TimeStep** in **oT_Data_Parameter_<case>.csv** and see their effect on results.
214
-
3. Using **0** or **1**, the optimization options can be activated or deactivated in **oT_Data_Option_<case>.csv**.
215
-
4. If you need a nice python editor, think about using `PyCharm <https://www.jetbrains.com/pycharm/>`_. It has many features including project management, etc.
216
-
5. We also suggest the use of `Gurobi <https://www.gurobi.com/academia/academic-program-and-licenses/>`_ (for Academics and Recent Graduates) as a solver to deal with MIP and LP problems instead of GLPK.
Copy file name to clipboardExpand all lines: doc/rst/Download.rst
+2-14Lines changed: 2 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
Download & Installation
4
4
=======================
5
-
The **openTEPES** model has been developed using `Python 3.12.3<https://www.python.org/>`_ and `Pyomo 6.9.2 <https://pyomo.readthedocs.io/en/stable/>`_ and it uses `Gurobi 12.0.1<https://www.gurobi.com/products/gurobi-optimizer/>`_ as commercial MIP solver for which a free academic license is available.
5
+
The **openTEPES** model has been developed using `Python 3.13.2<https://www.python.org/>`_ and `Pyomo 6.9.2 <https://pyomo.readthedocs.io/en/stable/>`_ and it uses `Gurobi 12.0.2<https://www.gurobi.com/products/gurobi-optimizer/>`_ as commercial MIP solver for which a free academic license is available.
6
6
It uses Pyomo so that it is independent of the preferred solver. You can alternatively use one of the free solvers `HiGHS 1.10.0 <https://ergo-code.github.io/HiGHS/dev/installation/#Precompiled-Binaries>`_, `SCIP 9.2.1 <https://www.scipopt.org/index.php#download>`_, `GLPK 5.0 <https://www.gnu.org/software/glpk/>`_,
7
7
and `CBC 2.10.12 <https://github.com/coin-or/Cbc/releases>`_. List the serial solver interfaces under Pyomo with this call::
8
8
@@ -39,7 +39,6 @@ Here, you have the input files of:
39
39
40
40
Code
41
41
----
42
-
43
42
The **openTEPES** code is provided under the `GNU Affero General Public License <https://www.gnu.org/licenses/agpl-3.0.en.html>`_:
44
43
45
44
- the code can't become part of a closed-source commercial software product
@@ -68,7 +67,7 @@ There are 2 ways to get all required packages under Windows. We recommend using
68
67
2. `HiGHS <https://ergo-code.github.io/HiGHS/dev/interfaces/python/#python-getting-started>`_ is our recommendation if you want a free and open-source solver.
69
68
3. Install openTEPES via pip by ``pip install openTEPES``
70
69
71
-
Continue at `Get Started <#get-started>`_ and see the `Tips <#tips>`_.
70
+
Continue at `Get Started <#get-started>`_.
72
71
73
72
74
73
**GitHub Repository (the hard way)**
@@ -78,7 +77,6 @@ Continue at `Get Started <#get-started>`_ and see the `Tips <#tips>`_.
78
77
3. Set up the path by ``cd "C:\Users\<username>\...\openTEPES"``. (Note that the path is where the repository was cloned.)
79
78
4. Install openTEPES via pip by ``pip install .``
80
79
81
-
82
80
**Solvers**
83
81
84
82
HiGHS
@@ -112,7 +110,6 @@ This option is activated by calling the openTEPES model with the solver name 'ga
112
110
113
111
Get started
114
112
-----------
115
-
116
113
Developers
117
114
118
115
By cloning the `openTEPES repository <https://github.com/IIT-EnergySystemModels/openTEPES/tree/master>`_, you can create branches and propose pull-request. Any help will be very appreciated.
@@ -141,15 +138,6 @@ Then, the **results** should be written in the folder who is called with the cas
1. A complete documentation of the openTEPES model can be found at `<https://opentepes.readthedocs.io/en/latest/index.html>`_, which presents the mathematical formulation, input data and output results.
148
-
2. Try modifying the **TimeStep** in **oT_Data_Parameter_<case>.csv** and see their effect on results.
149
-
3. Using **0** or **1**, the optimization options can be activated or deactivated in **oT_Data_Option_<case>.csv**.
150
-
4. If you need a nice python editor, think about using `PyCharm <https://www.jetbrains.com/pycharm/>`_. It has many features including project management, etc.
151
-
5. We also suggest the use of `Gurobi <https://www.gurobi.com/academia/academic-program-and-licenses/>`_ (for Academics and Recent Graduates) as a solver to deal with MIP and LP problems instead of GLPK.
Node Name of the node where generator is located. If left empty, the generator is ignored
343
343
Technology Technology of the generator (nuclear, coal, CCGT, OCGT, ESS, solar, wind, biomass, etc.)
344
-
MutuallyExclusive Mutually exclusive generator with the current one. Only exclusion in one direction is needed. It is computationally demanding.
344
+
MutuallyExclusive Mutually exclusive groups the generator belongs to. Only one generator per group can be committed simultaneously. It is computationally demanding.
345
345
BinaryCommitment Binary unit commitment decision Yes/No
346
346
NoOperatingReserve No contribution to operating reserve. Yes if the unit doesn't contribute to the operating reserve Yes/No
347
347
OutflowsIncompatibility Outflows are incompatible with the charging process (e.g., electric vehicle). This is not the case of an electrolyzer Yes/No
@@ -387,7 +387,7 @@ ShutDownCost Shutdown cost
387
387
CO2EmissionRate CO2 emission rate. It can be negative for units absorbing CO2 emissions as biomass tCO2/MWh
FixedChargeRate Fixed-charge rate to annualize the overnight investment cost p.u.
390
+
FixedChargeRate Fixed-charge rate to annualize the overnight investment cost. Proportion of annual payment to return the overnight investment cost p.u.
391
391
StorageInvestment Storage capacity and energy inflows linked to the investment decision Yes/No
392
392
BinaryInvestment Binary unit investment decision Yes/No
393
393
InvestmentLo Lower bound of investment decision p.u.
@@ -443,7 +443,7 @@ Those generators or ESS with fixed cost >0 are considered candidate and can be
443
443
444
444
Maximum, minimum, and initial storage values are considered proportional to the invested capacity for the candidate ESS units if StorageInvestment is activated.
445
445
446
-
When there are several generators mutually exclusive you must create a cycle of mutual exclusivity for every two generators. For example, if three generators are mutually exclusive among them and only one of them can be committed, then generator 1 can be declared exclusive with generator 2 and generator 2 with generator 3 and generator 3 with generator 1.
446
+
A generator can be in several groups, which must be separated by "\|" when inputted. So if Generator1 belongs to Group1 and Group2, the data entry should be "Group1\|Group2". If any of the generators in a group is an installation candidate it is assumed that the exclusivity is yearly, so only one of the generators can be committed in the whole Period. When all mutually exclusive generators in a group are already installed and functioning it is assumed that the exclusivity is hourly and which generator is committed can change every LoadLevel.
447
447
448
448
If lower and upper bounds of investment/retirement decisions are very close (with a difference <1e-3) to 0 or 1 are converted into 0 and 1.
449
449
@@ -597,6 +597,8 @@ For example, these data can be used for defining the minimum and/or maximum ener
597
597
Electricity transmission network
598
598
--------------------------------
599
599
600
+
At least one electric transmission line connecting two different nodes must be defined.
601
+
600
602
A description of the circuit (initial node, final node, circuit) data included in the file ``oT_Data_Network.csv`` follows:
Copy file name to clipboardExpand all lines: doc/rst/MathematicalFormulation.rst
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -658,7 +658,7 @@ Given that there are disjunctive constraints, which are only correct with binary
658
658
659
659
**Hydrogen network operation**
660
660
661
-
Balance of hydrogen generation by electrolyzers, hydrogen consumption from hydrogen heater using it, and demand at each node [tH2] «``eBalanceH2``»
661
+
Balance of hydrogen generation by electrolyzers, hydrogen consumption from hydrogen heater using it, and demand at each node [tH2] «``eBalanceH2``». A transport model is used to model the hydrogen network.
Balance of heat generation produced by CHPs and fuel heaters respectively and demand at each node [GW] «``eBalanceHeat``»
671
+
Balance of heat generation produced by CHPs and fuel heaters respectively and demand at each node [GW] «``eBalanceHeat``». A transport model is used to model the heat network.
0 commit comments