View on GitHub


Smart Grid Simulation Library

SmartGridToolbox Logo


SmartGridToolbox is a C++11 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.

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

Instructions for obtaining and building the SmartGridToolbox libraries can be found on the main GitHub pages. After you have built and installed SmartGridToolbox, you can begin to familiarise yourself with its use. The following introduction to the architecture will be helpful. At present, tutorials are still being developed. Two more complete sample applications can be found in the examples directory. The source code, or doxygen documentation, are your friend.


An introduction to the architecture can be found here.

The tutorials also serve as documentation.

To go beyond this, the primary documentation for the API is via doxygen.


The tutorials can be found in SmartGridToolbox/Tutorials.

Network Tutorial - Construct and solve networks (no simulation).

Simulation Tutorial - Construct and solve a basic simulation.

Properties Tutorial - See how SmartGridToolbox Properties work.


The examples can be found in SmartGridToolbox/Examples.

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.