From bb09ec87a8df668c364c4043405630d19f887d5b Mon Sep 17 00:00:00 2001 From: Thijs Baaijen <13253091+Thijss@users.noreply.github.com> Date: Wed, 22 Oct 2025 15:29:47 +0200 Subject: [PATCH 1/2] Add basic versions of Node/Branch arrays Signed-off-by: Thijs Baaijen <13253091+Thijss@users.noreply.github.com> --- .../_core/model/dtypes/branches.py | 31 ++++++++++++++----- .../_core/model/dtypes/nodes.py | 9 ++++-- 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/src/power_grid_model_ds/_core/model/dtypes/branches.py b/src/power_grid_model_ds/_core/model/dtypes/branches.py index e4a2aea1..515d142a 100644 --- a/src/power_grid_model_ds/_core/model/dtypes/branches.py +++ b/src/power_grid_model_ds/_core/model/dtypes/branches.py @@ -11,13 +11,18 @@ from power_grid_model_ds._core.model.dtypes.id import Id -class Branch(Id): - """Branch data type""" +class BasicBranch(Id): + """Branch that matches the PGM Branch data type""" from_node: NDArray[np.int32] # node id (from-side) to_node: NDArray[np.int32] # node id (to-side) from_status: NDArray[np.int8] # 1 = closed, 0 = open to_status: NDArray[np.int8] # 1 = closed, 0 = open + + +class Branch(BasicBranch): + """PGM Branch with additional feeder information""" + feeder_branch_id: NDArray[np.int32] # branch id of the feeding branch feeder_node_id: NDArray[np.int32] # node id of the feeding node is_feeder: NDArray[np.bool_] # whether or not this branch is from the substation @@ -29,12 +34,16 @@ class Branch(Id): } +class BasicLink(BasicBranch): + """Basic Link data type""" + + class Link(Branch): - """Link data type""" + """Link data type including feeder information""" -class Line(Branch): - """Line data type""" +class BasicLine(BasicBranch): + """Basic Line data type""" r1: NDArray[np.float64] # serial resistance x1: NDArray[np.float64] # serial reactance @@ -43,8 +52,12 @@ class Line(Branch): i_n: NDArray[np.float64] # rated current -class Transformer(Branch): - """Transformer data type""" +class Line(Branch, BasicLine): + """Line data type including feeder information""" + + +class BasicTransformer(BasicBranch): + """Basic Transformer data type""" u1: NDArray[np.float64] # rated voltage (from-side) u2: NDArray[np.float64] # rated voltage (to-side) @@ -64,6 +77,10 @@ class Transformer(Branch): tap_nom: NDArray[np.int8] # nominal position of tap changer +class Transformer(Branch, BasicTransformer): + """Transformer including feeder information""" + + class Branch3(Id): """Branch3 data type""" diff --git a/src/power_grid_model_ds/_core/model/dtypes/nodes.py b/src/power_grid_model_ds/_core/model/dtypes/nodes.py index f8e97101..87686536 100644 --- a/src/power_grid_model_ds/_core/model/dtypes/nodes.py +++ b/src/power_grid_model_ds/_core/model/dtypes/nodes.py @@ -12,10 +12,15 @@ from power_grid_model_ds._core.model.enums.nodes import NodeType -class Node(Id): - """Node data type""" +class BasicNode(Id): + """Basic Node that matches the PGM Node data type""" u_rated: NDArray[np.float64] # rated line-line voltage + + +class Node(BasicNode): + """Node data type, including node type and feeder information""" + node_type: NDArray[np.int8] feeder_branch_id: NDArray[np.int32] # branch id of the feeder feeder_node_id: NDArray[np.int32] # node id of the first substation node From cc8a0c613b0e81559832b7d4cd9dffbfa968eb94 Mon Sep 17 00:00:00 2001 From: Thijs Baaijen <13253091+Thijss@users.noreply.github.com> Date: Wed, 22 Oct 2025 15:29:52 +0200 Subject: [PATCH 2/2] Fix test Signed-off-by: Thijs Baaijen <13253091+Thijss@users.noreply.github.com> --- .../loadflow/test_power_grid_model.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/integration/loadflow/test_power_grid_model.py b/tests/integration/loadflow/test_power_grid_model.py index 9529e6d3..a3c32a72 100644 --- a/tests/integration/loadflow/test_power_grid_model.py +++ b/tests/integration/loadflow/test_power_grid_model.py @@ -225,14 +225,14 @@ def test_create_grid_from_input_data(self, input_data_pgm): 2, 1, 1, - -2147483648, - -2147483648, - False, 0.00396133, 4.53865336e-05, 0.0, 0.0, 303.91942029, + -2147483648, + -2147483648, + False, ), ( 10, @@ -240,14 +240,14 @@ def test_create_grid_from_input_data(self, input_data_pgm): 1, 1, 1, - -2147483648, - -2147483648, - False, 0.32598809, 1.34716591e-02, 0.0, 0.0, 210.06857453, + -2147483648, + -2147483648, + False, ), ], dtype=[ @@ -256,14 +256,14 @@ def test_create_grid_from_input_data(self, input_data_pgm): ("to_node", "