powergrid_synth.transmission.transformer_edges
Transformer edge generation between different-voltage subgraphs.
Implements Algorithm 3 (Stars) from Aksoy et al. (2018) (arXiv:1711.11098, Section 4.4).
Module Contents
- class powergrid_synth.transmission.transformer_edges.TransformerConnector[source]
Generate transformer edges between two same-voltage subgraphs.
Transformer subgraphs in real power grids consist almost entirely of disjoint \(k\)-star graphs. This class replicates that structure by creating random stars from the desired transformer degree sequences, with a bipartite Chung-Lu fallback for leftover vertices.
See Algorithm 3 in Aksoy et al. (2018).
- generate_transformer_edges(t_xy, t_yx)[source]
Generate transformer edges between voltage levels X and Y.
Implements Stars(\(\mathbf{t}[X,Y],\;\mathbf{t}[Y,X]\)) \(\to E\) (Algorithm 3).
The algorithm proceeds in four stages:
Partition vertices into centers (degree \(\geq 2\)) and leaves (degree \(= 1\)).
Build \(k\)-stars centred at high-degree vertices, consuming degree-1 vertices from the opposite level as leaves.
Match remaining degree-1 vertices across levels into single edges.
Apply bipartite Chung-Lu on any leftover vertices whose degrees could not be realised via stars.
- Parameters:
t_xy (list of int) – Transformer degree for each node in subgraph X toward Y.
t_xy[i]is the number of transformer edges desired for node i in X.t_yx (list of int) – Transformer degree for each node in subgraph Y toward X.
- Returns:
Edge list as
(u, v)where u is a local index in X and v is a local index in Y.- Return type:
list of tuple[int, int]
Notes
A sufficient condition for all degrees to be matched exactly (no leftover Chung-Lu) is:
\[\sum_{i:\,t[X,Y]_i\geq 2} t[X,Y]_i \;\leq\; |\{j\in Y : t[Y,X]_j = 1\}|\]and symmetrically for the other direction.