SmartGridToolbox Logo

Smart Grid Simulation Library


SmartGridToolbox is a C++14 library for developing smart grid simulations, which can be used on Mac OS X or Linux systems. It was developed by the Energy Systems subgroup of National ICT Australia (NICTA)'s Optimisation Research Group, with the help of the Australian National University and Actew-AGL. It is currently maintained at the Planning and Optimisation Group of the ANU's Research School of Computer Science.

SmartGridToolbox's simulation engine uses agent-based and discrete event simulation concepts. Research into future electricity grids requires the ability to handle a wide range of control strategies and simulation components. SmartGridToolbox aims to provide this ability through an API that emphasises flexibility and extensibility.

Getting started

The main GitHub page for SmartGridToolbox is available here. Please refer to the Linux installation instructions or the MacOS installation instructions to get yourself up and running. The API reference provides a detailed reference for the C++14 API. In particular, the modules page gives an organised overview of the code. The YAML specifications for network and simulation configuration files are also documented. Finally, the tutorials and examples may also be of use.


The tutorials can be found in SmartGridToolbox/Tutorials.

Basics Tutorial - Basic and utility classes and functions.

Network Tutorial - Construct and solve networks.

Simulation Tutorial - Construct and solve a basic simulation.

Parsing Tutorial - See how SmartGridToolbox parses YAML configuration files.

Time Varying Loads Tutorial - See how time series data can be incorporated into simulations.

Properties Tutorial - See how SmartGridToolbox Properties work.


The examples can be found in SmartGridToolbox/Examples. Proper documentation is under construction.

Building Controller Demo - A demo of optimised control involving PV generation, battery storage and smart HVAC.

PV Demo - Optimized volt-VAR control using PV inverters.