PowSyBl (Power System Blocks) is an open source framework written in Java, dedicated to electrical grid modelling and simulation, licensed under the Mozilla Public License version 2.0. It is part of LF Energy, an open source foundation focused on the power systems sector, hosted within The Linux Foundation.
The power system blocks may be used through scripts for a quick implementation (or prototyping), but also be assembled to build state of the art applications. Indeed, one major aim of the project is to make it easy to write complex software for power system simulation and analysis. For example, using PowSyBl one can create applications able to:
- handle a variety of formats, such as CGMES for European data exchanges
- perform power flow simulations and security analyses on the network
- perform dynamic simulations on the network
- create visual representations of the network
Another key characteristic of PowSyBl is its modular design, at the core of the open source approach. It enables developers to extend or customize its features by providing their own plugins.
PowSyBl provides a complete internal grid model with substations, voltage levels, AC and DC lines, two and three windings transformers, batteries, generators, loads, shunt and static VAR compensators, etc.
For security analyses, it offers the possibility to define contingencies on the network. The grid model can also be enhanced with extensions that complete the equipments modeling (dynamic profile, short-circuit profile, monitoring, etc.).
PowSyBl also provides importers and exporters for several common pan-european exchange formats (Entso-E CIM/CGMES, UCTE-DEF, etc.).
PowSyBl as a library provides several APIs for power systems’ simulation and analysis (power flow computation, security analysis, sensitivity analysis, time domain simulation, etc.). These simulations can run either on a personal computer or on a server, but they can also run on a supercomputer like in the iTesla project with the Curie supercomputer. The separation of the simulation API and the implementations allows developers to provide their own implementations if necessary, which makes the framework very flexible.
PowSyBl enables users to display network graph diagrams and single-line diagrams of a network in a highly customizable way.
PowSyBl is also available as a command line tool, for quick shot modelling and/or simulation. PowSyBl scripts may be written and executed thanks to the dedicated Domain Specific Language code included in the project.
All the features of PowSyBl are exposed as web services, so as to make it easy to build web-based applications on top of the framework.
The PowSyBl project contains of a set of Java libraries that cover all the abovementioned features:
Application File System: a library to handle study files.
Balances adjustments: balances adjustment is a process that consists in acting on specified injections to ensure given balance on specific network areas.
Core: provides the core features of the PowSyBl framework such as the grid modelling, the support of several data exchange format (CGMES, UCTE…), computation APIs (power flow, security analysis, sensitivity analysis, dynamic simulation, etc.).
High Performance Computing: a library to facilitate high performance computing with PowSyBl.
- Open loadflow: an open source library for power flow simulations (load flows, security analysis, sensitivity analysis).
Powsybl-diagram: a library to display higlhy customizable diagrams of a network.
Network Hypothesis: provides component to model network hypotheses.
- PowSyBl GSE (archived): a library to make it easier to write desktop applications based on PowSyBl. This repository is archived. The Grid Study Environment (GSE) project aimed at helping developers to write desktop applications based on PowSyBl, through a JavaFX user interface.
All these repositories also contain the associated DSL when necessary, for a very simple use of PowSyBl through the command line and/or scripts.
The project also contains a set of microservices that expose PowSyBl’s features:
Case server: handles raw network data storage.
Network store server: provides a persistent IIDM implementation, exposed as a web service.
Geographical data server: handles equipments locations.
Network conversion server: this service can convert a network stored in a case server to an IIDM network stored in the network store server.
CGMES geographical data import server: this service can take a CGMES network containing a Geographical Layout profile from a case server and upload its content to the geographical data server.
Single line diagram server: this service can generate a voltage level single line diagram (in SVG format) for a given voltage level in an IIDM network, from a network store server.
Network map server: this service is used to extract network data from a network store server and reshape it to feed a UI network map component.
IIDM for C++: a C++ implementation of IIDM, to enable C++ developers to use PowSyBl.
Math native: a C++ library for sparse matrices. Used in open loadflow for example.
PowSyBl provides a repository containing all the necessary code to go through its tutorials: PowSyBl tutorials.
The PowSyBl incubator repository contains all the experimental code corresponding to ongoing work that is not stabilized yet.
The Powsybl dev tools repository contains tools to be used for debug purposes.