Design of the Power Grid Model core
The Power Grid Model at its core is a header-only C++ interface library, wrapped by a dynamic/shared C API library.
The core itself is an engine called the MainModel
that provides the C++ interface and exhibits logic for the various aspects that play a role in power grid calculations.
The MainModel
itself can be deconstructed into an API part, a dispatch part, the grid model and the actual calculation logic.
Calculation logic and data flow
The logic involved in power grid calculations in turn can be devided in a number of separate modules. Coincidentally, those phases also translate to fields of expertise, which enables a reasonably clean architecture.
Logic/control module |
Description |
Expertise |
---|---|---|
I/O |
Constructing, updating and outputting components in the power grid |
Software Engineering |
Topology construction |
Constructing the topological graph of the grid |
Topology |
\(Y_{\text{bus}}\) construction/Component extraction |
Constructing \(Y_{\text{bus}}\) from the power grid components and topology |
Electrical Engineering |
Solver construction/Grid extraction |
Translation from \(Y_{\text{bus}}\) to a solvable system of equations and from the solution back to physical values |
Physics |
Solving |
Abstract solution to the system of equations |
Mathematics |
Note
Software Engineering obviously also plays a role in the general design, but that general design does not involve the logic/control flow and therefore is not listed in this table.
The data flow can be visualized as such: