Skip to content

Differences with other modelling languages and tools

Modelica Logo MODELICA Language

Modelica is a language designed for modelling physical systems based on differential and algebraic equations, with a strong focus on dynamic behaviour and simulation. In contrast, GEMS is dedicated to the formulation of mathematical optimisation problems, making it better suited for long-term energy system studies. While Modelica excels at component-level dynamics, GEMS focuses on system-wide decision-making, planning, and optimisation.


GAMS Logo GAMS - General Algebraic Modeling System

GAMS is a powerful language for expressing mathematical optimisation problems in an algebraic form. However, it does not provide a native object-oriented or graph-based modelling paradigm. GEMS object and graph-oriented approach is particularly well suited for modelling interconnected energy systems, where similar components (generators, batteries, loads) are replicated across multiple nodes.


Linopy Logo Linopy - Python Package - Linear optimization with n-dimensional labeled variables

Although both Linopy and GEMS are used to formulate optimisation problems, they do not fulfil the same functions. Linopy is a Python-based modelling multisolver interface whereas GEMS is conceived as a modelling language to explicitly formulate the energy systems, their components, and their behaviour independently of any particular implementation. GEMS plays at the level of the system (there it is graph-oriented) whereas Linopy plays at the level of the linear problem (it is vector-oriented, and one should build a layer on top of that to manage the system graphs). GEMS interpreters may be built on top of multisolver interfaces, such as Linopy or Google OR-Tools.

Antares Logo Antares Simulator (Legacy)

Historically, Antares Simulator, an open-source tool for long-term energy system studies, relies on a fixed file tree structure as its main input format. This structure is hard-coded in the tool, which limits flexibility and extensibility. Introducing new objects or behaviours typically requires modifying the C++ source code, whereas GEMS allows such extensions directly at the modelling language level.


PyPSA Logo PyPSA – Python for Power System Analysis

PyPSA enables the generation of energy system studies using flexible configuration files and produces a NetCDF representation of the resulting model. However, the component models themselves are hard-coded in the PyPSA core, which limits extensibility. Adding new component formulations or behaviours requires Python development skills, while GEMS allows users to define and extend models declaratively.


PLEXOS Logo PLEXOS® Energy Modeling Software

PLEXOS® follows a philosophy similar to Antares Simulator, relying on a fixed and predefined file-based structure to describe studies. While powerful, this approach offers limited flexibility when adapting or extending model structures. GEMS, by contrast, provides a fully configurable modelling language where system structure and component behaviour can evolve without modifying the solver core.