Skip to main content
EL1XR logo

PyPI Python version GitHub Actions Workflow Status Read the Docs Codacy Badge Downloads

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)

  1. Install the package from PyPI:

pip install el1xr_opt
  1. 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:

  1. Clone the repository:

git clone https://github.com/EL1XR-dev/el1xr_opt.git
cd el1xr_opt
  1. Create and activate a virtual environment (recommended):

python -m venv venv
source venv/bin/activate  # On Windows use `venv\Scripts\activate`
  1. Install the package in editable mode, which also installs the necessary dependencies:

pip install -e .
  1. 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:

  1. Fork the repository.

  2. Create a new branch for your feature or bug fix.

  3. Make your changes and commit them with a clear message.

  4. Push your changes to your fork.

  5. 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.15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for el1xr_opt 1.0.15
File Size Uploaded
el1xr_opt-1.0.15.tar.gz 35.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for el1xr_opt 1.0.15
File Interpreter ABI Platform
el1xr_opt-1.0.15-py3-none-any.whl Python 3 none any Details

Total release size: 49.6 MB

Release files / el1xr_opt-1.0.15.tar.gz

Download URL el1xr_opt-1.0.15.tar.gz
Size 35.0 MB
Tags Source
SHA-256 checksum
How to use checksums
edab50aa13f58bac78486c1106aafc294089d80bd25f8a69c21da4e98218e9d0
BLAKE2b-256 checksum
How to use checksums
f1a9f891a0daab4ccfdf088fe7087d24a2c048bdd52b305cd9e8b40385dd938d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.32.5

Release files / el1xr_opt-1.0.15-py3-none-any.whl

Download URL el1xr_opt-1.0.15-py3-none-any.whl
Size 14.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
69a5613dd8513a53cf034a200c45be8b096f85c89905a23afa690545d73a2824
BLAKE2b-256 checksum
How to use checksums
9f6307f2082274fd0aab2a222b79c2a81536137efca849c75da18742a78e0725
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.32.5

Release history Release notifications | RSS feed

This release

1.0.15 This release

2 release files

1.0.14

2 release files

1.0.13

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page