Planning and Operation Model for Multi-Energy Systems
Project description
POMMES - Planning and Operation Model for Multi-Energy Systems
POMMES is an open source framework to model investment pathways in multi-energy systems. The framework enables to minimise the system costs to meet the energy services demand by modelling the investment and operating costs of energy conversion, storage and transport technologies.
Documentation: The complete documentation for POMMES (methodology, examples and API) is available at DOCS
Installation
Prerequisites
- Install Miniconda3 distribution
Choose the installation depending on your platform.
To integrate conda in PowerShell, run in the Anaconda Prompt:
-
On Windows
$ conda init powershell
-
On Linux
$ conda init bash
Python environment creation
Ensure Conda is initiated in your shell: see prerequisites if needed.
Download the file
environment.yaml.
To create the environment, run in the file directory:
$ conda env create -f environment-all.yaml
Pycharm (optional, recommended)
Using python Pycharm IDE which can be downloaded from this webpage facilitates the interaction with the tool.
Setting the interpreter in Pycharm
You can set this environment as python interpreter in Pycharm using:
Settings > Project: pommes > Python interpreter > Add interpreter > Add local interpreter ...
Then:
Conda Environment > Load Environments > Use existing environment > pommes-env If needed, update the conda executable path:
[your installation directory]\miniconda3\condabin\conda.bat.
Contributing
All contributions are welcome with merge requests. Use pre-commit for code formatting.
$ pre-commit install
Solver installation
Solving optimisation model with linopy allows to interact easily with multiple solvers. Check linopy documentation to get all compatible solvers.
HiGHS solver is installed in the virtual environment
with the highspy package.
However, for the sake of performance, here is a short tutorial to get the commercial solver
Gurobi which presents much better resolution speed, and which is free for academic use.
Gurobi
Gurobi is already installed in the python virtual environment with the gurobipy package.
To generate a named academic license, visit the gurobi license webpage
and sign in with your academic e-mail address.
You will get a license token.
Then go to the download page of the license tool packages
You can then run the grbgetkey script and copy-paste your token in the console.
If you want to change the default directory of the gurobi.lic file,
make sure that the corresponding environment variable is modified.
Getting started
The example study is stored in study\test_case. Data stored in study\test_case\data
and the import is described in the study\test_case\config.yaml file.
Try to run the run_study.py first to get some results.
Explore the results in the study\test_case\output directory structured as follow:
output
|-- ref_(suffix?)
|-- constraints
|-- annualised_totex_def.csv
|-- ...
|-- plots
|-- energy_balance
|-- 2020_electricity.html
|-- energybalance.html
|-- variables
|-- annualised_totex.csv
|-- ...
|-- dual.nc
|-- input.nc
|-- model.nc
|-- objective.csv
|-- solution.nc
Explore it!
constraints/gathers the lagrangians of the constraintsvariables/the solution- and some visualisations are available in
plots/.
Run your own scenario
Inputs
To run your own study, copy-paste the test_case/ study, rename it with your study name.
Let's take study_name for the example.
study
|-- test_case
|-- data
|-- availability.csv
|-- ...
|-- config.yaml
|-- study_name
|-- data
|-- availability.csv
|-- ...
|-- config.yaml
You can now change the inputs value of your scenario.
Waiting for an exhaustive description of the inputs, here are some guidelines:
- all power units are in MW
- all energy units in MWh
- storage assets are considered as energy storage (not power or methane or hydrogen storage)
- in (keep) represents the resource needed to charge (keep) 1 MWh of energy
- out represents the resource produced by the storage when discharging 1 MWh of energy
Run the optimisation
Follow the workflow of the study\test_case\run_study.py script with the right study_name (and potentially change the solver)
Enjoy !
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pommes-0.3.2-py3-none-any.whl.
File metadata
- Download URL: pommes-0.3.2-py3-none-any.whl
- Upload date:
- Size: 121.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd2423fd8f22eea88a6e89187bef75d39d58cbd75f86a9b9bbf386bc8ddc3149
|
|
| MD5 |
66c3090b66ad3b9dfcc7496e350e7e5f
|
|
| BLAKE2b-256 |
5f72b421b6d6000b7e5904ca97252a8715bb6ae93915d248267a35defd2e0173
|