The Eoles model optimizes the investment and operation of the energy system in order to minimize the total cost while satisfying exogenous energy demands.
Here is a presentation of an earlier version of the model: http://www.centre-cired.fr/quel-mix-electrique-optimal-en-france-en-2050/
Most of the model versions, as well as published articles using them, are presented at https://www.centre-cired.fr/the-eoles-family-of-models/
If you don't have git installed on your computer, you can download the zip folder on Github (via the latest release) or Zenodo.
To get the latest build, you can retrieve the files from this Github through the command line :
git clone https://github.com/CIRED/EOLES.git
A folder will be created in the current directory with all the files contained in this Github.
The model requires some python packages as well as the Gurobi solver. We provide both a requirements.txt and an environment.yml file for the packages dependencies, and a guide to getting an academic licence for Gurobi.
-
Python : Python is an interpreted programming language, with Pyomo it will allow us to model Eoles.
You can download the latest version on the dedicated website : https://www.python.org/downloads/
Then you just have to install it on your computer.
If you plan to install Conda or if you have Conda installed on your computer, Python is likely to be already installed. The model requires python 3 to run properly, and it is recommended to use at least python 3.10 (older versions might work but were not tested) -
Conda ou Pip depending on your preference: Conda and Pip are package managers for Python. Conda is recommended.
- Conda
You can find all the information you need to download and install Conda here:
https://docs.conda.io/projects/conda/en/latest/user-guide/install/
Be careful to choose the version of conda according to the version of Python !!!
You can install Miniconda which is a minimal version of conda,
this allows you to not install all the packages included in conda, but you can install only those that you want. - Pip
You can find all the necessary information to download and install pip here:
https://pip.pypa.io/en/stable/installing/
Pip is installed by default with Conda.
- Conda
-
Installing dependencies with Conda: Navigate to your directory of choice. Create the environment and install dependencies :
conda env create -f environment.yml
Activate the environment :conda activate envEOLES
If you wish to use Jupyter Notebook : useconda install -c anaconda ipykernel
andpython -m ipykernel install --user --name=envEOLES
The environment will then appear in the kernel list. -
Installing dependencies with Pip: Navigate to your directory of choice. Create a virtual environment:
python -m venv envEOLES
If you use another name for the environment and plan on pushing changes to the github, remember to exclude the environment folder from the commit. Activate the virtual environment : Windows :envEOLES\Scripts\activate
macOS/Linux:source envEOLES/bin/activate
Install dependencies :pip install -r requirements.txt
-
Solver : The solver that this model uses is Gurobi.
This solver is commercial but free licenses are available for academics.
This solver has the advantage to be much faster than other open-source solvers, such as cbc. More information about Gurobi here : https://www.gurobi.com/
You can also use another solver if you wish.
To use Gurobi :- Create an account and download Gurobi Optimizer here : https://www.gurobi.com/downloads/
- Request a free academic license here : https://www.gurobi.com/downloads/end-user-license-agreement-academic/
- Use the
grbgetkey
command to install your license. The exact command is given with your license. \ To use Gurobi on Inari : see dedicated README.
The EOLES model is written as a class contained in the modelEoles.py
package.
Several utility functions (initialization and plotting functions) that could be of interest to the user are in the utils.py
package.
An example .py
file is provided, which shows how to do the following : import the ModelEOLES class, create an instance of the model with a given configuration file then use the different methods to build and solve the model and to extract results.\
Example input data suffisant to use example.py are provided in the inputs folder and described in the Sources.xml file.
The path to each data file can be modified in the config files.
Supplementary demand and production profiles can be found in this Zenodo repository
The expected data format is clarified for each data type (constant or profile) in the relevant utility function in utils.py
.
This README was originally written by Quentin Bustarret.
You can find past versions of the model (code and work they were used in) at the following webpage : https://www.centre-cired.fr/the-eoles-family-of-models/