This release is a pre-release and may not be stable for production use.
Electricity for Low-carbon Integration and eXchange of Resources (EL1XR)
el1xr_opt is the core optimisation engine of the EL1XR-dev ecosystem. It provides a powerful and flexible modelling framework for designing and analysing integrated, zero-carbon energy systems, with support for electricity, heat, hydrogen, and energy storage technologies.
🚀 Features
Documentation via ReadTheDocs.
Modular formulation for multi-vector energy systems
Compatible with deterministic, stochastic, and equilibrium approaches
Flexible temporal structure: hours, days, representative periods
Built on Pyomo
Interfaces with EL1XR-data (datasets) and EL1XR-examples (notebooks)
📂 Structure
src/: Core source code for the optimisation model.
data/: Sample case studies.
docs/: Documentation and formulation notes.
tests/: Validation and regression tests.
📦 Prerequisites
Python 3.11 or higher.
A supported solver: HiGHS, Gurobi, CBC, or CPLEX. The recommended solvers can be installed automatically using the command below.
🚀 Installation
There are two ways to install el1xr_opt:
Option 1: Install from PyPI (Recommended)
Install the package from PyPI:
pip install el1xr_opt
Install the required solvers:
el1xr-install-solvers
Option 2: Install from Source (for Developers)
If you want to work with the latest development version or contribute to the project, you can install it from the source:
Clone the repository:
git clone https://github.com/EL1XR-dev/el1xr_opt.git
cd el1xr_opt
Create and activate a virtual environment (recommended):
python -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
Install the package in editable mode, which also installs the necessary dependencies:
pip install -e .
Install the required solvers:
el1xr-install-solvers
⚡ Quick Example
Run the included Home1 example case with the following command from the root directory:
el1xr-run --case Home1 --solver highs
This will run the optimisation and save the results in the src/el1xr_opt/Home1/Results directory.
Usage
To run the optimisation model, use the el1xr-run command. If you run the script without arguments, it will prompt you for them interactively. Moreover, the model can be executed with explicit information as follows:
python -m el1xr_opt --dir <folder_parent_case> --case <case_folder_name> --solver <solver_name> --date <date_string> --rawresults <'Yes'-or-'No'> --plots <'Yes'-or-'No'>
For example:
python -m el1xr_opt --dir data --case Home1 --solver highs --date "2025-09-30 20:26:00" --rawresults No --plots No
Command-line Arguments
--dir: Directory containing the case data. For the sample cases, this would be src/el1xr_opt.
--case: Name of the case to run (e.g., Home1). Defaults to Home1.
--solver: Solver to use (e.g., highs, gurobi, cbc, cplex). Defaults to highs.
--date: Model run date in “YYYY-MM-DD HH:MM:SS” format. Defaults to the current time.
--rawresults: Save raw results (True/False). Defaults to False.
--plots: Generate plots (True/False). Defaults to False.
🤝 Contributing
Contributions are welcome! If you want to contribute to el1xr_opt, please follow these steps:
Fork the repository.
Create a new branch for your feature or bug fix.
Make your changes and commit them with a clear message.
Push your changes to your fork.
Create a pull request to the main branch of this repository.
📄 License
This project is licensed under the terms of the GNU General Public License v3.0.
Release files for el1xr_opt 1.0.11rc10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| el1xr_opt-1.0.11rc10.tar.gz | 35.4 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| el1xr_opt-1.0.11rc10-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 50.4 MB
Release files / el1xr_opt-1.0.11rc10.tar.gz
| Download URL | el1xr_opt-1.0.11rc10.tar.gz |
|---|---|
| Size | 35.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d4f4aa5a3d866f1c056a1e66d72ef1a6c24ebdc5ed9c864b7a2a48c4bc0f2b4b
|
|
BLAKE2b-256 checksum How to use checksums |
9736a6f973e470fe3da64bcfb1ae42f097d91c5e87528173ea256928eb101079
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-requests/2.32.3
|
Release files / el1xr_opt-1.0.11rc10-py3-none-any.whl
| Download URL | el1xr_opt-1.0.11rc10-py3-none-any.whl |
|---|---|
| Size | 15.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c19a68df7f4170dc16c5ac50704fdd077ef02320a9250516ecd99fbfdf197149
|
|
BLAKE2b-256 checksum How to use checksums |
2a4eeea7b927bee74f76d9b9a03e686e4bf347a269bc35b52a343af6ed5e82bc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-requests/2.32.3
|