What is GEMS?
GEMS is a high-level modelling language, close to mathematical syntax, and a data structure for describing energy systems. Compared to other algebraic modelling languages, GEMS is object- and graph-oriented, making it particularly well-suited to representing energy systems.
Vision and Ambitions for GEMS
The ambition behind the GEMS language is to build and support a community of energy modellers and energy foresight practitioners who can easily share models, assumptions, and studies. This approach is particularly important as future energy systems are increasingly conceived in a multi-energy, multi-sector landscape, characterised by rising complexity and tightly coupled interactions between energy carriers and sectors.
GEMS has the key attributes required to support and sustain such a community.
-
Versatility : GEMS is a generic optimisation language capable of representing a wide range of energy systems and use cases, from operational studies to long-term planning, across multiple energy carriers and scales.
-
Code Stability and Maintainability : By clearly separating model definition from problem resolution, GEMS promotes robust, modular, and maintainable code that can evolve over time without breaking existing models.
-
Interoperability/Interpretability : GEMS relies on a self-contained and exhaustive mathematical formulation, ensuring that all modelling assumptions, variables, and constraints are explicitly defined. This guarantees unambiguous interpretability of models, which is a key enabler for true interoperability between tools, solvers, and modelling frameworks.
Resources
The GEMS documentation, pre-defined model libraries and quick-start examples are hosted in the GitHub repository: GEMS
The following interpreters can be used to run Gems modelling language :
- Antares Simulator, an open-source power system simulator
- GemsPy, a stand-alone Python package, maintained for prototyping purposes
Converters are available to translate existing studies into the GEMS modelling language:
- Antares Legacy Models to GEMS Converter : a Python package that enables the migration of Antares Legacy Models to GEMS.
- PyPSA to Gems Converter, a stand-alone Python package to export PyPSA Networks as GEMS system. This converter supports PyPSA two-stage stochastic optimization problems: such problems can be addressed by GEMS interpreters and solved with Antares Xpansion's Benders decomposition algorithm.
Documentation Highlights
Quick Links
-
Getting Started
How to install GEMS interpreters and create 2 simples studies (Adequacy problem and Unit Commitment).
-
Overview
Understand about GEMS framework and its interpreters.
-
Release Notes
Check out the latest features, bug fixes and improvements in the release notes.
Sections
-
User Guide
Detailed presentation of GEMS syntax, file structure, and how to configure optimization studies.
-
Examples
Examples can be found here from the first steps with GEMS to handling hybrid studies.
-
Interoperability
How to export PyPSA and Antares Legacy study cases in GEMS format and run them with GEMS interpreters.
-
Support and Contributing
Find here Support for using GEMS. How to Contribute to GEMS.