From 5cc90e9088787dc818c1021dca77db2ba785ed63 Mon Sep 17 00:00:00 2001 From: eminyouskn Date: Mon, 4 May 2026 15:23:39 -0400 Subject: [PATCH] Fix handling of PV buses without in-service generators by indexing gen_count with bus IDs Signed-off-by: eminyouskn --- gridfm_datakit/network.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gridfm_datakit/network.py b/gridfm_datakit/network.py index 9364e9de7..d66d971d4 100644 --- a/gridfm_datakit/network.py +++ b/gridfm_datakit/network.py @@ -421,8 +421,10 @@ def deactivate_gens(self, idx_gens: np.ndarray) -> None: gens_on = self.gens[self.idx_gens_in_service] gen_count = np.bincount(gens_on[:, GEN_BUS].astype(int), minlength=n_buses) - # Boolean mask: PV buses with no in-service generator - pv_no_gen = (self.buses[:, BUS_TYPE] == PV) & (gen_count == 0) + # Boolean mask: PV buses with no in-service generator. + # Index gen_count by bus ID (not row index) to handle non-sorted bus ordering. + bus_ids = self.buses[:, BUS_I].astype(int) + pv_no_gen = (self.buses[:, BUS_TYPE] == PV) & (gen_count[bus_ids] == 0) # Set them to PQ self.buses[pv_no_gen, BUS_TYPE] = PQ