Download & Installation¶
The openTEPES has been developed using Python 3.11.5 and Pyomo 6.6.2 and it uses Gurobi 11.0.0 as commercial MIP solver for which a free academic license is available. It uses Pyomo so that it is independent of the preferred solver. You can alternatively use one of the free solvers HiGHS 1.5.3, SCIP 8.0.4, GLPK 4.65 and CBC 2.10.11. List the serial solver interfaces under Pyomo with this call:
pyomo help -s
Gurobi, HiGHS, or SCIP solvers can be installed as a package:
conda install -c gurobi gurobi pip install highspy conda install -c conda-forge pyscipopt
Besides, it also requires the following packages:
Pandas for inputting data and outputting results
psutil for detecting the number of CPUs
Here, you have the input files of a small case study of 9 nodes, another one like a small Spanish system and a modified RTS24 case study, and the Reliability Test System Grid Modernization Lab Consortium (RTS-GMLC).
The openTEPES code is provided under the GNU General Public License:
the code can’t become part of a closed-source commercial software product
any future changes and improvements to the code remain free and open
This model is a work in progress and will be updated accordingly. If you want to subscribe to the openTEPES model updates send an email to email@example.com
There are 2 ways to get all required packages under Windows. We recommend using the Python distribution Anaconda. If you don’t want to use it or already have an existing Python (version 3.8 | 3.9 recommended, 2.7 is supported as well) installation, you can also download the required packages by yourself.
Miniconda. Choose the 64-bit installer if possible.
During the installation procedure, keep both checkboxes “modify the PATH” and “register Python” selected! If only higher Python versions are available, you can switch to a specific Python Version by typing
conda install python=<version>
Remark: if Anaconda or Miniconda was installed previously, please check that python is registered in the environment variables.
Packages and Solver:
GitHub Repository (the hard way)
Clone the openTEPES repository.
Launch the command prompt (Windows: Win+R, type “cmd”, Enter), or the Anaconda prompt
Set up the path by
cd "C:\Users\<username>\...\openTEPES". (Note that the path is where the repository was cloned.)
Install openTEPES via pip by
pip install .
As an easy option for installation, we have the free and open-source GLPK solver. However, it takes too much time for large-scale problems. It can be installed using:
conda install -c conda-forge glpk.
The CBC solver is our recommendation if you want a free and open-source solver. For Windows users, the effective way to install the CBC solver is downloading the binaries from this link, copy and paste the cbc.exe file to the PATH that is the “bin” directory of the Anaconda or Miniconda environment. It can be installed using:
conda install -c conda-forge coincbc.
Another recommendation is the use of Gurobi solver. However, it is commercial solver but most powerful than GLPK and CBC for large-scale problems.
As a commercial solver it needs a license that is free of charge for academic usage by signing up in Gurobi webpage.
It can be installed using:
conda install -c gurobi gurobi and then ask for an academic or commercial license. Activate the license in your computer using the
grbgetkey command (you need to be in the university domain if you are installing an academic license).
Another alternative is the Mosek solver. Note that it is a commercial solver and you need a license for it. Mosek is a good alternative to deal with QPs, SOCPs, and SDPs problems. You only need to use
conda install -c mosek mosek for installation and request a license (academic or commercial). To request the academic one, you can request here. Moreover, Mosek brings a license guide. But if you are request an academic license, you will receive the license by email, and you only need to locate it in the following path
C:\Users\(your user)\mosek in your computer.
By cloning the openTEPES repository, you can create branches and propose pull-request. Any help will be very appreciated.
Continue like the users for a simple way of executions.
If you are not planning on developing, please follows the instructions of the Installation.
Once installation is complete, openTEPES can be executed in a test mode by using a command prompt. In the directory of your choice, open and execute the openTEPES_run.py script by using the following on the command prompt (Windows) or Terminal (Linux). (Depending on what your standard python version is, you might need to call python3 instead of python.):
Then, four parameters (case, dir, solver, and console log) will be asked for.
Remark: at this step only press enter for each input and openTEPES will be executed with the default parameters.
After this in a directory of your choice, make a copy of the 9n or sSEP case to create a new case of your choice but using the current format of the CSV files.
A proper execution by
openTEPES_Main can be made by introducing the new case and the directory of your choice. Note that the solver is glpk by default, but it can be changed by other solvers that pyomo supports (e.g., gurobi, mosek).
Then, the results should be written in the folder who is called with the case name. The results contain plots and summary spreadsheets for multiple optimised energy scenarios, periods and load levels as well as the investment decisions.
Note that there is an alternative way to run the model by creating a new script script.py, and write the following:
from openTEPES.openTEPES import openTEPES_run
openTEPES_run(<case>, <dir>, <solver>)
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.
Try modifying the TimeStep in oT_Data_Parameter_<case>.csv and see their effect on results.
Using 0 or 1, the optimization options can be activated or deactivated in oT_Data_Option_<case>.csv.
If you need a nice python editor, think about using PyCharm. It has many features including project management, etc.
We also suggest the use of Gurobi (for Academics and Researchers) as a solver to deal with MIP and LP problems instead of GLPK.
Run the Tutorial
It can be run in Binder: