Skip to content

Commit c167b26

Browse files
Merge pull request #885 from PowerGridModel/bug/auto-tap-inf-loop
fix for infinite loop in automatic tap changer
2 parents 44c5272 + 4bf2a28 commit c167b26

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

power_grid_model_c/power_grid_model/include/power_grid_model/optimizer/tap_position_optimizer.hpp

+4-3
Original file line numberDiff line numberDiff line change
@@ -899,13 +899,14 @@ class TapPositionOptimizerImpl<std::tuple<TransformerTypes...>, StateCalculator,
899899
adjust_transformer(regulator, state, result, update_data, search, options) || tap_changed;
900900
}
901901
if (tap_changed) {
902+
iterations_per_rank[rank_index + 1] = 0;
903+
++iterations_per_rank[rank_index];
902904
break;
903905
}
904-
iterations_per_rank[++rank_index] = 0; // NOSONAR
906+
++rank_index;
905907
}
906908
if (tap_changed) {
907-
if (static_cast<uint64_t>(++iterations_per_rank[rank_index]) >
908-
2 * max_tap_ranges_per_rank[rank_index]) {
909+
if (static_cast<uint64_t>(iterations_per_rank[rank_index]) > 2 * max_tap_ranges_per_rank[rank_index]) {
909910
throw MaxIterationReached{"TapPositionOptimizer::iterate"};
910911
}
911912
update_state(update_data);

0 commit comments

Comments
 (0)