Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@
</developers>

<properties>
<powsybl-ws-dependencies.version>2.30.0</powsybl-ws-dependencies.version>
<gridsuite-filter.version>1.21.0</gridsuite-filter.version>
<powsybl-ws-dependencies.version>2.31.0-SNAPSHOT</powsybl-ws-dependencies.version>
<gridsuite-filter.version>1.22.0-SNAPSHOT</gridsuite-filter.version>
<swagger-annotations.version>2.2.36</swagger-annotations.version>
<sonar.organization>gridsuite</sonar.organization>
<sonar.projectKey>org.gridsuite:network-modification</sonar.projectKey>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public class ByFilterDeletion extends AbstractModification {
IdentifiableType.BATTERY,
IdentifiableType.LOAD,
IdentifiableType.SHUNT_COMPENSATOR,
IdentifiableType.DANGLING_LINE,
IdentifiableType.BOUNDARY_LINE,
IdentifiableType.STATIC_VAR_COMPENSATOR
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,8 @@
import org.gridsuite.modification.utils.ModificationUtils;
import org.gridsuite.modification.utils.PropertiesUtils;

import java.util.Collection;

import static org.gridsuite.modification.NetworkModificationException.Type.*;
import static org.gridsuite.modification.modifications.LineCreation.addLimits;
import static org.gridsuite.modification.utils.ModificationUtils.copyOperationalLimitsFor2NewLines;

/**
* @author David Braquart <david.braquart at rte-france.com>
Expand Down Expand Up @@ -67,12 +64,6 @@ public void apply(Network network, ReportNode subReportNode) {
if (mayNewVL != null) {
ModificationUtils.getInstance().createVoltageLevel(mayNewVL, subReportNode, network);
}
// copy limits from lineToAttach
Line line = network.getLine(modificationInfos.getLineToAttachToId());
String selectedOperationalLimitsGroup1 = line.getSelectedOperationalLimitsGroupId1().orElse(null);
String selectedOperationalLimitsGroup2 = line.getSelectedOperationalLimitsGroupId2().orElse(null);
Collection<OperationalLimitsGroup> operationalLimitsGroups1 = line.getOperationalLimitsGroups1();
Collection<OperationalLimitsGroup> operationalLimitsGroups2 = line.getOperationalLimitsGroups2();
LineCreationInfos attachmentLineInfos = modificationInfos.getAttachmentLine();
LineAdder lineAdder = network.newLine()
.setId(attachmentLineInfos.getEquipmentId())
Expand Down Expand Up @@ -114,16 +105,6 @@ public void apply(Network network, ReportNode subReportNode) {
// override voltage level
updateAttachmentVoltageLevel(network, modificationInfos.getAttachmentPointDetailInformation());
}

// copy limits from previous line to line1 and line2 TODO remove when powsybl core fixes it
// must remove before fix from powsybl core
copyOperationalLimitsFor2NewLines(network,
modificationInfos.getNewLine1Id(),
modificationInfos.getNewLine2Id(),
operationalLimitsGroups1,
operationalLimitsGroups2,
selectedOperationalLimitsGroup1,
selectedOperationalLimitsGroup2);
}

private void updateAttachmentVoltageLevel(Network network, @NotNull VoltageLevelCreationInfos attachmentPointDetailInformation) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,15 @@
import com.powsybl.commons.report.ReportNode;
import com.powsybl.iidm.modification.topology.ConnectVoltageLevelOnLine;
import com.powsybl.iidm.modification.topology.ConnectVoltageLevelOnLineBuilder;
import com.powsybl.iidm.network.Line;
import com.powsybl.iidm.network.Network;
import com.powsybl.iidm.network.OperationalLimitsGroup;
import org.gridsuite.modification.NetworkModificationException;
import org.gridsuite.modification.dto.LineSplitWithVoltageLevelInfos;
import org.gridsuite.modification.dto.VoltageLevelCreationInfos;
import org.gridsuite.modification.utils.ModificationUtils;
import org.springframework.lang.NonNull;

import java.util.Collection;

import static org.gridsuite.modification.NetworkModificationException.Type.LINE_ALREADY_EXISTS;
import static org.gridsuite.modification.NetworkModificationException.Type.LINE_NOT_FOUND;
import static org.gridsuite.modification.utils.ModificationUtils.copyOperationalLimitsFor2NewLines;

/**
* @author Slimane Amar <slimane.amar at rte-france.com>
Expand Down Expand Up @@ -57,12 +52,6 @@ public void apply(Network network, ReportNode subReportNode) {
if (mayNewVL != null) {
ModificationUtils.getInstance().createVoltageLevel(mayNewVL, subReportNode, network);
}
// copy limits from lineToAttach TODO remove when powsybl core fixes it
Line line = network.getLine(modificationInfos.getLineToSplitId());
String selectedOperationalLimitsGroup1 = line.getSelectedOperationalLimitsGroupId1().orElse(null);
String selectedOperationalLimitsGroup2 = line.getSelectedOperationalLimitsGroupId2().orElse(null);
Collection<OperationalLimitsGroup> operationalLimitsGroups1 = line.getOperationalLimitsGroups1();
Collection<OperationalLimitsGroup> operationalLimitsGroups2 = line.getOperationalLimitsGroups2();
ConnectVoltageLevelOnLine algo = new ConnectVoltageLevelOnLineBuilder()
.withPositionPercent(modificationInfos.getPercent())
.withBusbarSectionOrBusId(modificationInfos.getBbsOrBusId())
Expand All @@ -74,15 +63,6 @@ public void apply(Network network, ReportNode subReportNode) {
.build();

algo.apply(network, true, subReportNode);

// copy limits from previous line to line1 and line2 TODO remove when powsybl core fixes it
copyOperationalLimitsFor2NewLines(network,
modificationInfos.getNewLine1Id(),
modificationInfos.getNewLine2Id(),
operationalLimitsGroups1,
operationalLimitsGroups2,
selectedOperationalLimitsGroup1,
selectedOperationalLimitsGroup2);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1076,7 +1076,7 @@ public Identifiable<?> getEquipmentByIdentifiableType(Network network, Identifia
case BATTERY -> network.getBattery(equipmentId);
case SHUNT_COMPENSATOR -> network.getShuntCompensator(equipmentId);
case STATIC_VAR_COMPENSATOR -> network.getStaticVarCompensator(equipmentId);
case DANGLING_LINE -> network.getDanglingLine(equipmentId);
case BOUNDARY_LINE -> network.getBoundaryLine(equipmentId);
case HVDC_CONVERTER_STATION -> network.getHvdcConverterStation(equipmentId);
case SUBSTATION -> network.getSubstation(equipmentId);
case VOLTAGE_LEVEL -> network.getVoltageLevel(equipmentId);
Expand Down Expand Up @@ -2217,49 +2217,4 @@ public static void updateMeasurementValidity(Measurement measurement, boolean re
}
}
}

public static void copyOperationalLimitsFor2NewLines(Network network, String lineId1, String lineId2,
Collection<OperationalLimitsGroup> operationalLimitsGroups1,
Collection<OperationalLimitsGroup> operationalLimitsGroups2,
String selectedOperationalLimitsGroupId1,
String selectedOperationalLimitsGroupId2) {
Line line1 = network.getLine(lineId1);
Line line2 = network.getLine(lineId2);
copyOperationalLimitsForOneLine(line1, operationalLimitsGroups1, operationalLimitsGroups2,
selectedOperationalLimitsGroupId1, selectedOperationalLimitsGroupId2);
copyOperationalLimitsForOneLine(line2, operationalLimitsGroups1, operationalLimitsGroups2,
selectedOperationalLimitsGroupId1, selectedOperationalLimitsGroupId2);
}

public static void copyOperationalLimitsForOneLine(Line line,
Collection<OperationalLimitsGroup> operationalLimitsGroups1,
Collection<OperationalLimitsGroup> operationalLimitsGroups2,
String selectedOperationalLimitsGroupId1,
String selectedOperationalLimitsGroupId2) {
if (line.getOperationalLimitsGroup1("DEFAULT").isPresent()) {
line.removeOperationalLimitsGroup1("DEFAULT");
}
if (line.getOperationalLimitsGroup2("DEFAULT").isPresent()) {
line.removeOperationalLimitsGroup2("DEFAULT");
}
copyOperationalLimits(operationalLimitsGroups1, line::newOperationalLimitsGroup1);
copyOperationalLimits(operationalLimitsGroups2, line::newOperationalLimitsGroup2);
if (selectedOperationalLimitsGroupId1 != null) {
line.setSelectedOperationalLimitsGroup1(selectedOperationalLimitsGroupId1);
}
if (selectedOperationalLimitsGroupId2 != null) {
line.setSelectedOperationalLimitsGroup2(selectedOperationalLimitsGroupId2);
}
}

public static void copyOperationalLimits(Collection<OperationalLimitsGroup> from,
Function<String, OperationalLimitsGroup> createGroup) {
from.forEach(groupToCopy -> {
OperationalLimitsGroup copy = createGroup.apply(groupToCopy.getId());
groupToCopy.getCurrentLimits().ifPresent(limit -> copy.newCurrentLimits(limit).add());
groupToCopy.getActivePowerLimits().ifPresent(limit -> copy.newActivePowerLimits(limit).add());
groupToCopy.getApparentPowerLimits().ifPresent(limit -> copy.newApparentPowerLimits(limit).add());
groupToCopy.getPropertyNames().forEach(propertyName -> copy.setProperty(propertyName, groupToCopy.getProperty(propertyName)));
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ public static Network create(UUID uuid, boolean createHvdcLine, NetworkFactory n
createSwitch(v2, "v2bshunt", "v2bshunt", SwitchKind.BREAKER, true, false, false, 8, 9);
createSwitch(v2, "v2dshunt", "v2dshunt", SwitchKind.DISCONNECTOR, true, false, false, 9, 0);

createDanglingLine(v2, "v2Dangling", "v2Dangling", 10, 1, 2, 3, 4, 50, 30, "xnode1");
createBoundaryLine(v2, "v2Boundary", "v2Boundary", 10, 1, 2, 3, 4, 50, 30, "xnode1");
createSwitch(v2, "v2bdangling", "v2bdangling", SwitchKind.BREAKER, true, false, false, 10, 11);
createSwitch(v2, "v2ddangling", "v2ddangling", SwitchKind.DISCONNECTOR, true, false, false, 11, 1);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -391,9 +391,9 @@ public static void createBattery(VoltageLevel vl, String id, String name,
.add();
}

public static void createDanglingLine(VoltageLevel vl, String id, String name,
int node, double r, double x, double b, double g, double p0, double q0, String pairingKey) {
vl.newDanglingLine()
public static void createBoundaryLine(VoltageLevel vl, String id, String name,
int node, double r, double x, double b, double g, double p0, double q0, String pairingKey) {
vl.newBoundaryLine()
.setId(id)
.setName(name)
.setR(r)
Expand Down