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.
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.
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.
Related publications:
-
Morrison, Robbie, Tobias Wittmann, Jan Heise, and Thomas Bruckner (2005). In Kjelstrup, Signe, Johan E Hustad et al (editors). Chapter: Policy-oriented energy system modeling with 'xeona'. Trondheim, Norway: Tapir Academic Press. pp 659–668. ISBN 82-519-2041-8. Conference held Norwegian University of Science and Technology (NTNU) on 20–22 June 2005.
-
Bruckner, Thomas, Robbie Morrison, and Tobias Wittmann (2005). "Public policy modeling of distributed energy technologies: strategies, attributes, and challenges". Ecological Economics. 54 (2–3): 328–245. ISSN 0921-8009. doi:10.1016/j.ecolecon.2004.12.032.
-
Morrison, Robbie, Tobias Wittmann, and Thomas Bruckner (2004). Energy sustainability through representative large-scale simulation: the logical and physical design of 'xeona'. Auckland, New Zealand: International Conference on Sustainability Engineering and Science (ICSES). Conference held Sheraton Auckland on 6–9 July 2004.
-
Morrison, Robbie (14 October 2010). Core codebase of the xeona energy systems modeling environment — revision 5314. doi:10.5281/zenodo.4817704. PDF version. Zenodo upload 27 May 2021. Contains 197 source files and circa 58 000 source lines of code of C++. 1164 pages.
Copyright (c) Robbie Morrison
This file is licensed under a Creative Commons Attribution 4.0 International License.
Text last modified 12 May 2025.
▢



