EnergyModelsBase is an operational, multi nodal energy system model, written in Julia. The model is based on the JuMP optimization framework. It is a multi carrier energy model, where the definition of the carriers are fully up to the user of the model. One of the primary design goals was to develop a model that can easily be extended with new functionalities without the need to understand and remember every variable and constraint in the model.

For running a basic energy system model, only the base technology package EnergyModelsBase and the time structure package TimeStruct are needed.

The main package provides simple descriptions for energy sources, sinks, conversion, and storage units. It corresponds to an operational model without geographic features.

Other packages can the optionally be added if specific functionality or technology nodes are needed. The most important packages are

  • EnergyModelsGeography: this package makes it possible to easily extend your energy model with different geographic areas, where transmission can be set to allow for the transport of resources between the different areas.
  • EnergyModelsInvestments: this package implements functionality for investments, where the length of the investment periods are fully flexible and is decided by setting the time structure.

Open Packages implementing technology specific nodes:

  • EnergyModelsRenewableProducers: implements NonDisRES for intermittent (Non-Dispatchable) Renewable Energy Sources and HydroStor modeling a regulated hydro storage plant as well as PumpedHydroStor modelling a pumped hydro storage plant.

Manual outline

How to guides

Library outline