Artifacts

PowSyBl can be used as a plain Java library to develop your own application. Depending on the features you need, you would select artifacts in the list below. This page aims at listing them, summarizing their purpose and helping you to figure out what you need in your ‘pom.xml’ file.

The PowSyBl artifacts are available at Maven Central within the groudId com.powsybl.

Grid

Grid modelling

The following artifacts provide the grid model that is at the heart of PowSyBl.

powsybl-iidm-api
This module provides the API of the network core model and some utilities.

powsybl-iidm-impl
This module provides an in-memory implementation of the network core model API.

powsybl-iidm-extensions
This module provides usual extensions for equipments of the grid model.

powsybl-entsoe-util
This module provides extensions for equipments of the grid model used in ENTSO-E business processes.

Grid conversion

The following artifacts provide a common API to convert network files from one format to another. PowSyBl provides several implementations of this API to support common grid exchange formats.

powsybl-iidm-converter-api
This module provides a common API that has to be implemented to support a new grid exchange format.

IIDM-XML

powsybl-iidm-xml-converter
This module provides an implementation of the converter API to allow a user to load/save a network from/to an XML file.

UCTE

The following artifacts provide the support of the UCTE-DEF format.

powsybl-ucte-network
This module provides classes to model the network regarding the UCTE-DEF format.

powsybl-ucte-converter
This module provides an implementation of the converter API to allow a user to load/save a network from/to a UCTE file.

CIM-CGMES

The following artifacts provide the support of the CIM-CGMES format.

powsybl-cgmes-model
This module provides classes to model the network regarding the CIM-CGMES format.

powsybl-cgmes-conversion
This module provides an implementation of the converter API to allow a user to load/save a network from/to a CIM-CGMES file.

powsybl-triple-store-api
This module provides a common API to access to the CIM-CGMES from a triple store. Several implementations are available but we suggest to use Eclipse RDF4J one that offers the best performance.

powsybl-triple-store-impl-rdf4j
This module provides SPARQL queries to access to a triple store based on Eclipse RDF4J.

powsybl-triple-store-impl-blazegraph
This module provides SPARQL queries to access to a triple store based on Blazegraph.

powsybl-triple-store-impl-jena
This module provides SPARQL queries to access to a triple store based on Jena.

powsybl-cgmes-conformity
This module implements the ENTSO-E conformity tests.

powsybl-cim-anonymiser
This module provides a tool to anonymize identifier of a CIM-CGMES file.

IEEE-CDF

The following artifacts provide the support of the IEEE-CDF format.

powsybl-ieee-cdf-model
This module provides classes to model the network regarding the IEEE-CDF format.

powsybl-ieee-cdf-converter
This module provides an implementation of the converter API to allow a user to load/save a network from/to a IEEE-CDF file.

AMPL

powsybl-ampl-converter
This module provides an implementation of the converter API to allow a user to export a network to a set of tabular text files. As the format is really simple to parse, it’s commonly used to integrate PowSyBl with an optimal power flow using an AMPL model or with Matlab.

Network additional features

The following artifacts provide additional features around the network.

powsybl-iidm-comparator
This module provides functions to help to compare IIDM networks.

powsybl-iidm-mergingview
This module provides an alternative way to merge several networks, keeping the underlying networks unchanged.

powsybl-iidm-reducer
This module provides classes to extract a sub area of a network.

powsybl-iidm-util
This module provides additional features around the network.

powsybl-iidm-test
This module provides factories to create simple networks.

Simulators

Power flow

powsybl-loadflow-api
This module provides a common API for power flow computation. You have to implement this API to use your power flow simulator through PowSyBl.

powsybl-open-loadflow
This module provides an implementation of the load flow API.

powsybl-loadflow-results-completion
This module implements power flow equations to initialize the P, Q, V and \(\theta\) from the characteristics of the equipments. This module can be used as a post processor of the import or with the load flow validation tool.

powsybl-loadflow-validation
This module provides functions to check the consistency of a power flow result. It can be use as a java library, but the easiest way to use it is through the iTools CLI.

Contingencies

The following artifacts are used to model contingencies. Contingencies can then be used to run security analyses with or without remedial actions, sensitivity calculation…

powsybl-contingency-api
This module provides an API to model and create contingencies.

powsybl-contingency-dsl
This module provides classes to load a contingency list from a groovy script. This is a powerful way to create contingencies.

Security analyses

powsybl-security-analysis-api
This module provides a common API for security analyses computation. You have to implement this API to use your simulator through PowSyBl. We also provide an simple implementation that relies on a power flow simulator.

powsybl-action-dsl
This module provides the action DSL, a domain specific language to describe a strategy to solve violation issues, used in the action simulation.

powsybl-action-dsl-spi
This module provides an SPI to extend the action a user can use in an action script.

powsybl-action-simulator
This module provides an API to run security analyses with remedial actions. It also provides an implementation based on a power flow simulator.

powsybl-action-util
This module provides a set of common remedial actions an user would like to use in his action script.

Sensitivity calculation

powsybl-sensitivity-api
This module provides a common API for sensitivity calculation. You have to implement this API to use your own simulator through PowSyBl.

Time domain simulation

powsybl-dynamic-simulation-api
This module provides a common API for time domain simulation. You have to implement this API to use your own simulator through PowSyBl.

powsybl-simulation-api
This module provides a legacy API for time domain simulation. This module is not maintained anymore and will be replaced by the powsybl-dynamic-simulation-api.

Configuration management

The following artifacts define how PowSyBl features access to the user configuration.

powsybl-config-classic
This module allows you to access to the configuration defined in a configuration file stored in the home directory of the user. This is the classic way to configure PowSyBl.

powsybl-config-test
This module should be used for unit testing only. It allows you to access to the configuration stored in the classpath.

Computation

The following artifacts are used by PowSyBl to know where the computation are really executed, locally or remotely for high performance computing.

powsybl-computation
This module provides the API to manage computations in PowSyBl.

powsybl-computation-local
This module is an implementation of the computation API that allows a user to run computation locally. This is the simplest way to do calculation using PowSyBl.

powsybl-computation-mpi
This module is an implementation of the computation API that allows a user to run computation on a computation grid using MPI.

powsybl-computation-slurm (Advanced user)
This module is an implementation of the computation API that allows a user to run computation using on servers manage by Slurm, a workload manager.

Data management

The following artifacts described below provide classes to model data in our data management system called AFS (Application File System).

powsybl-afs-core
This module provides the core classes to model a file system (Node, File, Folder…). You have to extend these base classes if you want to store custom data in AFS.

powsybl-afs-ext-base
This module provides classes to manage common powsybl concepts in AFS (cases, networks, scripts…).

powsybl-afs-contingency
This module provides classes to manage contingency lists in AFS.

powsybl-afs-security-analysis
This module provides classes to run security analyses on networks stored in AFS.

powsybl-afs-security-analysis-local
This module provides classes to run security analyses locally.

powsybl-afs-action-dsl
This module provides classes to manage scripts for the simulation of remedial actions.

Storage

powsybl-afs-storage-api
This module provides a common API for the storage layer. This API have to be implemented if you want to store your data in a database. PowSyBl provides several implementation to store data on the file system.

powsybl-afs-local
This module provides an implementation of the storage API to read/store data from/to the local file system.

powsybl-afs-mapdb
This module provides an implementation of the AppFileSystem interface based on MapDB.

powsybl-afs-mapdb-storage
This module provides an implementation of the storage API to read/store data using MapDB.

powsybl-afs-cassandra
This module provides an implementation of the storage API based on Apache Cassandra.

Remote storage

powsybl-afs-ws-storage
This module provides an implementation of the storage API to expose a remote AFS.

powsybl-afs-ws-utils
This module provides utility classes shared between the client part and the server part (JSON serialization…).

powsybl-afs-ws-server
This module provides a facade to expose a remote AFS through a Rest API.

powsybl-afs-ws-server-utils
This module provides utility classes for the backend part (authentication…).

powsybl-afs-ws-client
This module provides the client code to access to a remove AFS.

powsybl-afs-ws-client-utils
This module provides utility classes for the client part (session management, configuration…).

powsybl-afs-network-server
This module provides a Rest API to query a network stored in AFS.

powsybl-afs-network-client
This module provides the client code of the network query Rest API.

Scripting

powsybl-scripting
This module provides a CLI tool to create groovy script based on PowSyBl. It is designed to be fully extendable and offers a complete access to the whole framework, without any limitation.

powsybl-iidm-scripting
This modules provides extensions to access to the network. It is mainly used to maintain the compatibility with existing scripts.

powsybl-loadflow-scripting
This module provides extensions to run power flow from groovy scripts.

powsybl-afs-scripting
This module provides an extension to access to an AFS from groovy scripts.

Mathematical

powsybl-math
This module provides mathematical utility classes to work with matrix or graphs.

powsybl-math-native
This module provides a native implementation of sparse matrix based on SuiteSparse and LU factorization. This module is used by Open LoadFlow.

Timeseries

powsybl-timeseries-api
This module provides a model of time series and a DSL to perform basic operations.

Miscellaneous

powsybl-commons
This module provides a lot of really basic and technical utilities used everywhere in PowSyBl such as XML or JSON helpers, configuration, exceptions…

powsybl-dsl
This module provides classes to define a new domain specific language (DSL). It provides logical expression support and a facade to access and manipulate a network.

iTools

powsybl-tools
This module provides a CLI tool to run simulations.

powsybl-itools-packager-maven-plugin
This module provides a maven plugin to create a standalone distribution based on iTools.

Single line diagram

single-line-diagram-view-app
This module provides a demo app to view diagrams of substations and voltage levels of network files.

single-line-diagram-core
This module enables to generate svg images of voltage levels and substations.

single-line-diagram-view
This module provides a javafx component to display interactive network diagrams.

single-line-diagram-cgmes-layout
This module should be used to create svgs from the CIM-CGMES DL (Diagram Layout) profile.

single-line-diagram-color
This module is used to define colors from a base-voltages.yml file.

single-line-diagram-iidm-extensions
This module defines extensions to attach diagram information to networks.

single-line-diagram-cgmes-dl-iidm-extensions
This module gathers the network core model extensions for CIM-CGMES networks.

single-line-diagram-cgmes-dl-conversion
This module is used to convert the CIM-CGMES DL profile to the network core model extensions.

Grid Study Environment (Deprecated)

The following artifacts are part of a generic desktop application you can easily customize with plugins.

powsybl-gse-app
This module provides the base classes for the GSE front-end. If you want to create a standalone application based on GSE, you have to use this module.

powsybl-gse-afs-ext-base
This module provides a GUI to manage objects defined in the powsybl-afs-ext-base module.

powsybl-gse-copy-paste-afs
This module provides utility functions to manage the copy/paste of data stored in AFS.

powsybl-gse-demo
This module contains the entry point of a demo based on the GSE.

powsybl-gse-network-explorer
This module provides a plugin to visualize the hierarchy and the characteristics of the equipments of a network.

powsybl-gse-network-map
This module provides a plugin to display a network on a map.

powsybl-gse-security-analysis
This module provides a GUI to manage objects related to the security analyses.

powsybl-gse-spi
This module provides an SPI to extend and customize the GSE, creating your own plugins.