Skip to content

robbiemorrison/xeona

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xeona

xeona is an environment for modeling energy systems that provides endogenous support for multi‑party operations, least‑cost market clearing, simplified AC power‑flow, and capacitated network effects — plus exogenous structural change through user‑defined scenarios.

xeona was completed in 2014, at which point active development ceased.

The source code, documentation, and development data are deposited here as an historical record.

Overview

xeona represents one of the earlier attempts to combine agent‑based modeling with classical optimization‑informed energy system modeling.

xeona relies on object‑oriented design and analysis (OODA) and was necessarily written from the ground up in a high‑performance general‑purpose programming language.

Figure 1: Key components divided into three realms

xeona offers a clear separation of responsibilities between technical characterizations, operator decisioning, and market‑based dispatch. Figure 1 shows the general arrangements. The implementation of xeona includes the following features:

  • high‑resolution technical modeling
  • linear AC power‑flow (with phase angles)
  • ability to capture network saturation effects
  • agent‑based decisioning
  • contractual relationships (considered structural)
  • simplified locational marginal pricing (aka nodal pricing)
  • structural change by means of exogenous scenarios
  • solver‑agnostic internal interface (shares some functionality with Linopy)

The system itself did not look ahead but the agents can — just as in real life.

Figure 2: Some design features shown schematically

xeona supports the concept of distributed autonomy and the system is thus divided into commitment domains separated by gateway entities — as indicated in figure 2. The so‑called CTA algorithm embedded in xeona then provides a novel way to traverse the system at each time step, incrementally capacitating and solving the domains and gateways whenever feasible until a complete solution is realized. Figure 2 also shows the plug metaphor that is used to wire the system and define notional demand flow in the process.

xeona was designed to study sector‑coupling specifically and system integration under distributed decision-making more generally — both emerging topics when the software was conceived.

Implementation

xeona was written as production software.

xeona was implemented using 58 000 source lines of C++ with ancillary processing and visualization coded in R and bash. The main code is located in the xeona1 directory tree.

The source code is licensed under the GNU GPLv3+ license and the documentation and data are under the Creative Commons CC‑BY‑4.0 licenses.

Publications

Related publications:


Creative Commons License
Copyright (c) Robbie Morrison
This file is licensed under a Creative Commons Attribution 4.0 International License.

Text last modified 12 May 2025.

About

energy systems modeling environment

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors