Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

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.11rc10

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.11rc10
File Size Uploaded
el1xr_opt-1.0.11rc10.tar.gz 35.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for el1xr_opt 1.0.11rc10
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

1.0.15

2 release files

1.0.14

2 release files

1.0.13

2 release files

This release

1.0.11rc10 This release

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