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.
@@ -1,5 +1,5 @@
1
1
  """
2
- Open Generation, Storage, and Transmission Operation and Expansion Planning Model with RES and ESS (openTEPES) - January 07, 2026
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-9
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' ] = 36000
54
- # Solver.options['ItLim' ] = 36000000
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' ] = 'simplex'
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' ] = 36000
67
- Solver.options['simplex_iteration_limit'] = 36000000
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 = 36000 ; option IterLim = 36000000 ;',
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.8
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.11
14
+ Classifier: Programming Language :: Python :: 3.13
15
15
  License-File: LICENSE
16
- Requires-Dist: pyomo>=5.7.3
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, e.g., 01-01 00:00:00+01:00 to 30-12 23:45:00+01:00
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 operating reserves
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 (version 3.11) installation, you can also download the required packages by yourself.
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=CzNM5Un96U7o_nqkM6CkUFhd8552xJI_a9iFvmGRoFU,832
1
+ openTEPES/__init__.py,sha256=5L-SpCSyWwUjHcXqOMDHVG25n03wCz2ymKwUn3V1wqI,833
2
2
  openTEPES/openTEPES.mapbox_token,sha256=xsXNkwGp2vzXqQy2zVkyLhhNcNWniK2BMeOFpc5SZHI,93
3
- openTEPES/openTEPES.py,sha256=RzdXYHSvcja3ujf9wmhm1QvgJU-ChEEJXSz2UDkmVt8,27461
4
- openTEPES/openTEPES_InputData.py,sha256=kAItZuIB6BKWwSxLHcLl_5Te8ZAuZjOnmHCGrwOo7lQ,245623
5
- openTEPES/openTEPES_Main.py,sha256=oq365yAInW7fmsvVeHPRRCU74qtNuTCD4StdAw9tqmk,40782
6
- openTEPES/openTEPES_ModelFormulation.py,sha256=g9nRAbJpZ8r1_aIP-EH6t7mJhoWDB8uj8Q8zZjVnwjM,141751
7
- openTEPES/openTEPES_OutputResults.py,sha256=2CapqdOsbCcT-RO2pRjfkgrc5GPjmrUN0IdrZGr6ze0,236028
8
- openTEPES/openTEPES_ProblemSolving.py,sha256=6Q21lf7DqNYV6zaOyyY7IuepxjpapbJ3a-ukObieVM8,16766
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.8.dist-info/entry_points.txt,sha256=gNNPrDaTsRuRJXI1FLNgqMX1CiJ45bEp1dEDH7ZB8Oc,49
388
- opentepes-4.18.8.dist-info/licenses/LICENSE,sha256=4O7bphXVzRuYavtsWzpLGuM3E-fp3HTRna7F4yIfnS4,35184
389
- opentepes-4.18.8.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
390
- opentepes-4.18.8.dist-info/METADATA,sha256=w_hBKYHhzJX4mz_-_aU8W2cQxVy2N_8UdGg_FrQ3l2Q,19361
391
- opentepes-4.18.8.dist-info/RECORD,,
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,,