openTEPES 4.18.8__py3-none-any.whl → 4.18.10__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.
- openTEPES/__init__.py +1 -1
- openTEPES/openTEPES.py +3 -3
- openTEPES/openTEPES_InputData.py +10 -6
- openTEPES/openTEPES_Main.py +2 -2
- openTEPES/openTEPES_ModelFormulation.py +116 -91
- openTEPES/openTEPES_OutputResults.py +248 -79
- openTEPES/openTEPES_ProblemSolving.py +8 -8
- {opentepes-4.18.8.dist-info → opentepes-4.18.10.dist-info}/METADATA +16 -16
- {opentepes-4.18.8.dist-info → opentepes-4.18.10.dist-info}/RECORD +12 -12
- {opentepes-4.18.8.dist-info → opentepes-4.18.10.dist-info}/WHEEL +0 -0
- {opentepes-4.18.8.dist-info → opentepes-4.18.10.dist-info}/entry_points.txt +0 -0
- {opentepes-4.18.8.dist-info → opentepes-4.18.10.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Open Generation, Storage, and Transmission Operation and Expansion Planning Model with RES and ESS (openTEPES) - January
|
|
2
|
+
Open Generation, Storage, and Transmission Operation and Expansion Planning Model with RES and ESS (openTEPES) - January 21, 2026
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
5
|
import time
|
|
@@ -31,7 +31,7 @@ def ProblemSolving(DirName, CaseName, SolverName, OptModel, mTEPES, pIndLogConso
|
|
|
31
31
|
# Solver.options['Seed' ] = 104729
|
|
32
32
|
# Solver.options['Presolve' ] = 2
|
|
33
33
|
# Solver.options['RINS' ] = 100
|
|
34
|
-
# Solver.options['BarConvTol' ] = 1e-
|
|
34
|
+
# Solver.options['BarConvTol' ] = 1e-12
|
|
35
35
|
# Solver.options['BarQCPConvTol' ] = 0.025
|
|
36
36
|
# Solver.options['IISFile' ] = f'{_path}/openTEPES_gurobi_'+CaseName+'.ilp' # should be uncommented to show results of IIS
|
|
37
37
|
Solver.options['MIPGap' ] = 0.01
|
|
@@ -50,28 +50,28 @@ def ProblemSolving(DirName, CaseName, SolverName, OptModel, mTEPES, pIndLogConso
|
|
|
50
50
|
# Solver.options['RINSHeur' ] = 100
|
|
51
51
|
# Solver.options['EpGap' ] = 0.01
|
|
52
52
|
Solver.options['Threads' ] = int((psutil.cpu_count(logical=True) + psutil.cpu_count(logical=False))/2)
|
|
53
|
-
Solver.options['TimeLimit' ] =
|
|
54
|
-
# Solver.options['ItLim' ] =
|
|
53
|
+
Solver.options['TimeLimit' ] = 72000
|
|
54
|
+
# Solver.options['ItLim' ] = 72000000
|
|
55
55
|
if SolverName == 'appsi_highs':
|
|
56
56
|
FileName = f'{_path}/openTEPES_highs_{CaseName}_{p}_{sc}_{st}.log'
|
|
57
57
|
if os.path.exists(FileName):
|
|
58
58
|
os.remove(FileName)
|
|
59
59
|
Solver.options['log_file' ] = f'{_path}/openTEPES_highs_{CaseName}_{p}_{sc}_{st}.log'
|
|
60
|
-
Solver.options['solver' ] = '
|
|
60
|
+
Solver.options['solver' ] = 'hipo'
|
|
61
61
|
Solver.options['simplex_strategy' ] = 3
|
|
62
62
|
Solver.options['run_crossover' ] = 'on'
|
|
63
63
|
Solver.options['mip_rel_gap' ] = 0.01
|
|
64
64
|
Solver.options['parallel' ] = 'on'
|
|
65
65
|
Solver.options['threads' ] = int((psutil.cpu_count(logical=True) + psutil.cpu_count(logical=False))/2)
|
|
66
|
-
Solver.options['time_limit' ] =
|
|
67
|
-
Solver.options['simplex_iteration_limit'] =
|
|
66
|
+
Solver.options['time_limit' ] = 72000
|
|
67
|
+
Solver.options['simplex_iteration_limit'] = 72000000
|
|
68
68
|
if SolverName == 'gams':
|
|
69
69
|
FileName = f'{_path}/openTEPES_gams_{CaseName}_{p}_{sc}_{st}.log'
|
|
70
70
|
solver_options = {
|
|
71
71
|
'file COPT / cplex.opt / ; put COPT putclose "LPMethod 4" / "EpGap 0.01" / ; GAMS_MODEL.OptFile = 1 ; '
|
|
72
72
|
'option SysOut = off ;',
|
|
73
73
|
'option LP = cplex ; option MIP = cplex ;',
|
|
74
|
-
'option ResLim =
|
|
74
|
+
'option ResLim = 72000 ; option IterLim = 72000000 ;',
|
|
75
75
|
'option Threads = '+str(int((psutil.cpu_count(logical=True) + psutil.cpu_count(logical=False))/2))+' ;'
|
|
76
76
|
}
|
|
77
77
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openTEPES
|
|
3
|
-
Version: 4.18.
|
|
3
|
+
Version: 4.18.10
|
|
4
4
|
Summary: Open Generation, Storage, and Transmission Operation and Expansion Planning Model with RES and ESS (openTEPES)
|
|
5
5
|
Home-page: https://opentepes.readthedocs.io/en/latest/index.html
|
|
6
6
|
Author: IIT-EnergySystemModels
|
|
@@ -11,19 +11,19 @@ Classifier: Development Status :: 5 - Production/Stable
|
|
|
11
11
|
Classifier: Intended Audience :: Science/Research
|
|
12
12
|
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
|
|
13
13
|
Classifier: Operating System :: OS Independent
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
15
15
|
License-File: LICENSE
|
|
16
|
-
Requires-Dist:
|
|
17
|
-
Requires-Dist: matplotlib>=3.3.4
|
|
18
|
-
Requires-Dist: numpy>=1.20.1
|
|
19
|
-
Requires-Dist: pandas>=1.2.3
|
|
20
|
-
Requires-Dist: plotly>=5.7.0
|
|
16
|
+
Requires-Dist: altair>=5.5.0
|
|
21
17
|
Requires-Dist: colour>=0.1.5
|
|
22
|
-
Requires-Dist: altair>=5.0.0
|
|
23
|
-
Requires-Dist: psutil>=5.8.0
|
|
24
|
-
Requires-Dist: jsonschema>=4.16.0
|
|
25
|
-
Requires-Dist: networkx>=3.3
|
|
26
18
|
Requires-Dist: dill>=0.3.8
|
|
19
|
+
Requires-Dist: duckdb>=1.3.2
|
|
20
|
+
Requires-Dist: jsonschema>=4.26.0
|
|
21
|
+
Requires-Dist: matplotlib>=3.10.0
|
|
22
|
+
Requires-Dist: networkx>=3.6.1
|
|
23
|
+
Requires-Dist: pandas>=2.2.2
|
|
24
|
+
Requires-Dist: plotly>=5.24.1
|
|
25
|
+
Requires-Dist: psutil>=5.9.5
|
|
26
|
+
Requires-Dist: pyomo>=6.9.5
|
|
27
27
|
|
|
28
28
|
.. image:: https://raw.githubusercontent.com/IIT-EnergySystemModels/openTEPES/refs/heads/master/doc/img/openTEPES.png
|
|
29
29
|
:target: https://opentepes.readthedocs.io/en/latest/index.html
|
|
@@ -123,7 +123,7 @@ It determines automatically optimal expansion plans that satisfy simultaneously
|
|
|
123
123
|
|
|
124
124
|
It represents hierarchically the different time scopes to make decisions in an electric system:
|
|
125
125
|
|
|
126
|
-
- Load level: one hour, e.g., 01-01 00:00:00+01:00 to 12-30 23:00:00+01:00, or quarter of an hour
|
|
126
|
+
- Load level: one hour, e.g., 01-01 00:00:00+01:00 to 12-30 23:00:00+01:00, or **quarter of an hour**, e.g., 01-01 00:00:00+01:00 to 30-12 23:45:00+01:00
|
|
127
127
|
|
|
128
128
|
The time division allows a user-defined flexible representation of the periods for evaluating the system operation. Moreover, it can be run with chronological periods of several consecutive hours (bi-hourly, tri-hourly resolution in case of hourly definition or half an hour in case of quarter of an hour definition) to decrease the computational burden without losing accuracy. The model can be run with a single period (year) or with several periods (years) to allow the analysis of the system's evolution.
|
|
129
129
|
The time definition also allows for specifying disconnected representative periods (e.g., days, weeks) to evaluate the system operation.
|
|
@@ -131,7 +131,7 @@ It determines automatically optimal expansion plans that satisfy simultaneously
|
|
|
131
131
|
The period (year) must be represented by 8736 hours because several model concepts representing the system operation are based on weeks (168 hours) or months (made of 4 weeks, 672 hours).
|
|
132
132
|
|
|
133
133
|
- **Stochastic**: several stochastic parameters that can influence the optimal generation, storage, and transmission expansion decisions are considered. The model considers stochastic
|
|
134
|
-
medium-term yearly uncertainties (scenarios) related to the system operation. These operation scenarios are associated with renewable energy sources, energy inflows and outflows, natural water inflows, operating reserves, inertia, and electricity, hydrogen, and heat demand.
|
|
134
|
+
medium-term yearly uncertainties (scenarios) related to the system operation. These operation scenarios are associated with renewable energy sources, energy inflows and outflows, natural water inflows, operating reserves, ramp reserves, inertia, and electricity, hydrogen, and heat demand.
|
|
135
135
|
|
|
136
136
|
The objective function incorporates the two main quantifiable costs: **generation, storage, and transmission investment cost (CAPEX)** and **expected variable operation costs (including generation, consumption, emission, and reliability costs) (system OPEX)**.
|
|
137
137
|
|
|
@@ -150,10 +150,10 @@ Besides, it includes a representation of **Power to Heat (P2H)** by setting the
|
|
|
150
150
|
The main results of the model can be structured into these topics:
|
|
151
151
|
|
|
152
152
|
- **Investment**: (generation, storage, hydro reservoirs, electric lines, hydrogen pipelines, and heat pipes) investment decisions and cost
|
|
153
|
-
- **Operation**: unit commitment, startup, and shutdown of non-renewable units, unit output and aggregation by technologies (thermal, storage hydro, pumped-hydro storage, RES), RES curtailment, electric line, hydrogen pipeline, and heat pipe flows, line ohmic losses, node voltage angles, upward and downward operating reserves, ESS inventory levels, hydro reservoir volumes, power, hydrogen, and heat not served
|
|
153
|
+
- **Operation**: unit commitment, startup, and shutdown of non-renewable units, unit output and aggregation by technologies (thermal, storage hydro, pumped-hydro storage, RES), RES curtailment, electric line, hydrogen pipeline, and heat pipe flows, line ohmic losses, node voltage angles, upward and downward operating reserves, upward and downward ramp reserves, ESS inventory levels, hydro reservoir volumes, power, hydrogen, and heat not served
|
|
154
154
|
- **Emissions**: CO2 emissions by unit
|
|
155
155
|
- **Marginal**: Locational Short-Run Marginal Costs (LSRMC), stored energy value, water volume value
|
|
156
|
-
- **Economic**: operation, emission, and reliability costs and revenues from operation and
|
|
156
|
+
- **Economic**: operation, emission, and reliability costs and revenues from operation, operating reserves, and ramp reserves
|
|
157
157
|
- **Flexibility**: flexibility provided by demand, by the different generation and consumption technologies, and by power not served
|
|
158
158
|
|
|
159
159
|
Results are shown in csv files and graphical plots.
|
|
@@ -164,7 +164,7 @@ Installation
|
|
|
164
164
|
############
|
|
165
165
|
`Installation guide <https://pascua.iit.comillas.edu/aramos/openTEPES_installation.pdf>`_.
|
|
166
166
|
|
|
167
|
-
There are 2 ways to get all the required packages under Windows. We recommend using the Python distribution Miniconda. If you don't want to use it or already have an existing Python
|
|
167
|
+
There are 2 ways to get all the required packages under Windows. We recommend using the Python distribution Miniconda. If you don't want to use it or already have an existing Python installation, you can also download the required packages by yourself.
|
|
168
168
|
|
|
169
169
|
Miniconda (recommended)
|
|
170
170
|
=======================
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
openTEPES/__init__.py,sha256=
|
|
1
|
+
openTEPES/__init__.py,sha256=5L-SpCSyWwUjHcXqOMDHVG25n03wCz2ymKwUn3V1wqI,833
|
|
2
2
|
openTEPES/openTEPES.mapbox_token,sha256=xsXNkwGp2vzXqQy2zVkyLhhNcNWniK2BMeOFpc5SZHI,93
|
|
3
|
-
openTEPES/openTEPES.py,sha256=
|
|
4
|
-
openTEPES/openTEPES_InputData.py,sha256=
|
|
5
|
-
openTEPES/openTEPES_Main.py,sha256=
|
|
6
|
-
openTEPES/openTEPES_ModelFormulation.py,sha256=
|
|
7
|
-
openTEPES/openTEPES_OutputResults.py,sha256=
|
|
8
|
-
openTEPES/openTEPES_ProblemSolving.py,sha256=
|
|
3
|
+
openTEPES/openTEPES.py,sha256=K8jUPdByW1wy59Bh0T0_oqZ29Ds8q6cPnCKqH0xTkFc,27463
|
|
4
|
+
openTEPES/openTEPES_InputData.py,sha256=GldpcWf_BUW493LI69vsf5xJ0Oo7VGZI59VaAT9m9KU,246011
|
|
5
|
+
openTEPES/openTEPES_Main.py,sha256=dddDRIF1BAP7414CjznKfcSCvkHXRJYNak1k8JEc65M,40783
|
|
6
|
+
openTEPES/openTEPES_ModelFormulation.py,sha256=Jci1IPJoJOW6psladRbvIJDjdaPSmSMDU_chcp-iCb4,144057
|
|
7
|
+
openTEPES/openTEPES_OutputResults.py,sha256=LDs43z20dA05jdgtqkIBeF2o1_z1n7XagFjybPqWL84,241177
|
|
8
|
+
openTEPES/openTEPES_ProblemSolving.py,sha256=_3CU1dO-VE6g6gWE8hosyfVed-B9UFiMUKt6uDiy4NI,16764
|
|
9
9
|
openTEPES/openTEPES_gitinfo.py,sha256=6fA1fa-JcyusSc_HcjPiCgnV9zn-fZwdG-kK0a5Fxc8,2004
|
|
10
10
|
openTEPES/.idea/.name,sha256=jiwfcnJ20wztcvpny4SHcqmAIWK-w5tCqN9TWf0GOkw,11
|
|
11
11
|
openTEPES/.idea/misc.xml,sha256=m4-3O284ZBS8WZSQD0QWwk8YjuQYz92w6kr7NRFNips,298
|
|
@@ -384,8 +384,8 @@ openTEPES/sSEP/oT_Dict_Storage_sSEP.csv,sha256=H2rJXZvoMuT-25sI2GpG8IuiNKD-dxuty
|
|
|
384
384
|
openTEPES/sSEP/oT_Dict_Technology_sSEP.csv,sha256=MCTpplzz7_eVPKQfOw35c86ib6CTtW6UK6JrbCJ8wls,170
|
|
385
385
|
openTEPES/sSEP/oT_Dict_ZoneToArea_sSEP.csv,sha256=AUDCs5Bg6sw9f2pVjGP1o4IJjXFF_VrokOGf_V3QsEI,24
|
|
386
386
|
openTEPES/sSEP/oT_Dict_Zone_sSEP.csv,sha256=TBud-fvbFbiAsuutxTYe8wWlv_x1P8oyWXILMpYiXJc,13
|
|
387
|
-
opentepes-4.18.
|
|
388
|
-
opentepes-4.18.
|
|
389
|
-
opentepes-4.18.
|
|
390
|
-
opentepes-4.18.
|
|
391
|
-
opentepes-4.18.
|
|
387
|
+
opentepes-4.18.10.dist-info/entry_points.txt,sha256=gNNPrDaTsRuRJXI1FLNgqMX1CiJ45bEp1dEDH7ZB8Oc,49
|
|
388
|
+
opentepes-4.18.10.dist-info/licenses/LICENSE,sha256=4O7bphXVzRuYavtsWzpLGuM3E-fp3HTRna7F4yIfnS4,35184
|
|
389
|
+
opentepes-4.18.10.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
|
390
|
+
opentepes-4.18.10.dist-info/METADATA,sha256=qCa3FslFhw6oMv4dTbR3oj-e2oI0l5Ha5F9NgDQrj6s,19421
|
|
391
|
+
opentepes-4.18.10.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|