Skip to content

Commit 9903454

Browse files
committed
refactor(loadflow-validation): remove duplicated code
Signed-off-by: Samir Romdhani <samir.romdhani_externe@rte-france.com>
1 parent b885258 commit 9903454

File tree

5 files changed

+34
-30
lines changed

5 files changed

+34
-30
lines changed

loadflow/loadflow-validation/src/main/java/com/powsybl/loadflow/validation/GeneratorsValidation.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import org.slf4j.Logger;
2020
import org.slf4j.LoggerFactory;
2121

22-
import com.powsybl.iidm.network.Bus;
2322
import com.powsybl.iidm.network.Generator;
2423
import com.powsybl.iidm.network.Network;
2524
import com.powsybl.loadflow.validation.io.ValidationWriter;
@@ -89,7 +88,6 @@ public boolean checkGenerators(Generator gen, ValidationConfig config, Validatio
8988
Objects.requireNonNull(generatorsWriter);
9089
double p = gen.getTerminal().getP();
9190
double q = gen.getTerminal().getQ();
92-
Bus bus = gen.getTerminal().getBusView().getBus();
9391
double targetP = gen.getTargetP();
9492
double targetQ = gen.getTargetQ();
9593
double targetV = gen.getTargetV();
@@ -98,11 +96,10 @@ public boolean checkGenerators(Generator gen, ValidationConfig config, Validatio
9896
double maxP = gen.getMaxP();
9997
double minQ = gen.getReactiveLimits().getMinQ(targetP);
10098
double maxQ = gen.getReactiveLimits().getMaxQ(targetP);
101-
double v = bus != null ? bus.getV() : Double.NaN;
102-
boolean connected = bus != null;
103-
Bus connectableBus = gen.getTerminal().getBusView().getConnectableBus();
104-
boolean connectableMainComponent = connectableBus != null && connectableBus.isInMainConnectedComponent();
105-
boolean mainComponent = bus != null ? bus.isInMainConnectedComponent() : connectableMainComponent;
99+
ValidationUtils.TerminalState terminalState = ValidationUtils.getTerminalState(gen.getTerminal());
100+
double v = terminalState.v();
101+
boolean connected = terminalState.connected();
102+
boolean mainComponent = terminalState.mainComponent();
106103
return checkGenerators(gen.getId(), p, q, v, targetP, targetQ, targetV, voltageRegulatorOn, minP, maxP, minQ, maxQ, connected,
107104
mainComponent, config, generatorsWriter, guesser);
108105
}

loadflow/loadflow-validation/src/main/java/com/powsybl/loadflow/validation/ShuntCompensatorsValidation.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -96,12 +96,10 @@ public boolean checkShunts(ShuntCompensator shunt, ValidationConfig config, Vali
9696
double bPerSection = shunt.getModel(ShuntCompensatorLinearModel.class).getBPerSection();
9797
double nominalV = shunt.getTerminal().getVoltageLevel().getNominalV();
9898
double qMax = bPerSection * maximumSectionCount * nominalV * nominalV;
99-
Bus bus = shunt.getTerminal().getBusView().getBus();
100-
double v = bus != null ? bus.getV() : Double.NaN;
101-
boolean connected = bus != null;
102-
Bus connectableBus = shunt.getTerminal().getBusView().getConnectableBus();
103-
boolean connectableMainComponent = connectableBus != null && connectableBus.isInMainConnectedComponent();
104-
boolean mainComponent = bus != null ? bus.isInMainConnectedComponent() : connectableMainComponent;
99+
ValidationUtils.TerminalState terminalState = ValidationUtils.getTerminalState(shunt.getTerminal());
100+
double v = terminalState.v();
101+
boolean connected = terminalState.connected();
102+
boolean mainComponent = terminalState.mainComponent();
105103
return checkShunts(shunt.getId(), p, q, currentSectionCount, maximumSectionCount, bPerSection, v, qMax, nominalV, connected, mainComponent, config, shuntsWriter);
106104
}
107105

loadflow/loadflow-validation/src/main/java/com/powsybl/loadflow/validation/StaticVarCompensatorsValidation.java

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -97,17 +97,12 @@ public boolean checkSVCs(StaticVarCompensator svc, ValidationConfig config, Vali
9797
double bMax = svc.getBmax();
9898
double nominalVcontroller = svc.getTerminal().getVoltageLevel().getNominalV();
9999
double vController = bus != null ? bus.getV() : Double.NaN;
100-
double vControlled;
101-
if (svc.getRegulatingTerminal() != null) {
102-
Bus controlledBus = svc.getRegulatingTerminal().getBusView().getBus();
103-
vControlled = controlledBus != null ? controlledBus.getV() : Double.NaN;
104-
} else {
105-
vControlled = vController;
106-
}
107-
boolean connected = bus != null;
108-
Bus connectableBus = svc.getTerminal().getBusView().getConnectableBus();
109-
boolean connectableMainComponent = connectableBus != null && connectableBus.isInMainConnectedComponent();
110-
boolean mainComponent = bus != null ? bus.isInMainConnectedComponent() : connectableMainComponent;
100+
double vControlled = svc.getRegulatingTerminal() != null
101+
? ValidationUtils.getTerminalState(svc.getRegulatingTerminal()).v()
102+
: vController;
103+
ValidationUtils.TerminalState terminalState = ValidationUtils.getTerminalState(svc.getTerminal());
104+
boolean connected = terminalState.connected();
105+
boolean mainComponent = terminalState.mainComponent();
111106
return checkSVCs(svc.getId(), p, q, vControlled, vController, nominalVcontroller, reactivePowerSetpoint, voltageSetpoint, regulationMode, regulating, bMin, bMax, connected, mainComponent, config, svcsWriter);
112107
}
113108

loadflow/loadflow-validation/src/main/java/com/powsybl/loadflow/validation/TransformersValidation.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,12 +97,11 @@ public boolean checkTransformer(TwoWindingsTransformer twt, ValidationConfig con
9797
}
9898
return true;
9999
}
100-
Bus bus = ratioTapChanger.getRegulationTerminal().getBusView().getBus();
101-
double v = bus != null ? bus.getV() : Double.NaN;
102-
boolean connected = bus != null;
103-
Bus connectableBus = ratioTapChanger.getRegulationTerminal().getBusView().getConnectableBus();
104-
boolean connectableMainComponent = connectableBus != null && connectableBus.isInMainConnectedComponent();
105-
boolean mainComponent = bus != null ? bus.isInMainConnectedComponent() : connectableMainComponent;
100+
ValidationUtils.TerminalState terminalState = ValidationUtils.getTerminalState(ratioTapChanger.getRegulationTerminal());
101+
double v = terminalState.v();
102+
boolean connected = terminalState.connected();
103+
boolean mainComponent = terminalState.mainComponent();
104+
106105
return checkTransformer(twt.getId(), rho, rhoPreviousStep, rhoNextStep, tapPosition, lowTapPosition, highTapPosition,
107106
targetV, regulatedSide, v, connected, mainComponent, config, twtsWriter);
108107
}

loadflow/loadflow-validation/src/main/java/com/powsybl/loadflow/validation/ValidationUtils.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
package com.powsybl.loadflow.validation;
99

1010
import com.powsybl.commons.config.ConfigurationException;
11+
import com.powsybl.iidm.network.Bus;
12+
import com.powsybl.iidm.network.Terminal;
1113
import com.powsybl.loadflow.validation.io.ValidationWriter;
1214
import com.powsybl.loadflow.validation.io.ValidationWriterFactory;
1315

@@ -89,4 +91,17 @@ public static boolean isMainComponent(ValidationConfig config, boolean mainCompo
8991
return !config.isCheckMainComponentOnly() || mainComponent;
9092
}
9193

94+
public record TerminalState(double v, boolean connected, boolean mainComponent) { }
95+
96+
public static TerminalState getTerminalState(Terminal terminal) {
97+
Objects.requireNonNull(terminal);
98+
Bus bus = terminal.getBusView().getBus();
99+
Bus connectableBus = terminal.getBusView().getConnectableBus();
100+
boolean connected = bus != null;
101+
boolean connectableMainComponent = connectableBus != null && connectableBus.isInMainConnectedComponent();
102+
boolean mainComponent = connected ? bus.isInMainConnectedComponent() : connectableMainComponent;
103+
double v = connected ? bus.getV() : Double.NaN;
104+
return new TerminalState(v, connected, mainComponent);
105+
}
106+
92107
}

0 commit comments

Comments
 (0)