Skip to content

Commit 1a28286

Browse files
So-Frasflo-dup
authored andcommitted
Bump powsybl-core to 5.3.0 (#523)
* integration of new powsybl-core version 5.3.0-alpha-2 * deal with tie lines in network-area diagrams * update test references for NAD * manage tie lines in single-line diagrams Signed-off-by: Sophie Frasnedo <[email protected]>
1 parent a9ef6b6 commit 1a28286

File tree

58 files changed

+1706
-69
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+1706
-69
lines changed

diagram-test/src/main/java/com/powsybl/diagram/test/Networks.java

+31
Original file line numberDiff line numberDiff line change
@@ -1942,4 +1942,35 @@ private static void addThreeFeedersPosition(Extendable<?> extendable,
19421942
feederAdder3.withName(feederName3).withDirection(direction3).add();
19431943
extensionAdder.add();
19441944
}
1945+
1946+
public static Network createNetworkWithTieLineInVoltageLevel() {
1947+
Network network = createBusBreakerNetworkWithInternalBranches("tieLineWithinVoltageLevel", "test");
1948+
network.getLine("L11").remove();
1949+
String tieLineId = "B11_B12_1";
1950+
String xnodeId = "XNODE1";
1951+
DanglingLine b11xnode1 = network.getVoltageLevel("VL1").newDanglingLine().setId("B11_XNODE1").setR(1.5).setX(20.0).setG(0.0).setB(1.93E-4).setBus("B11").setUcteXnodeCode(xnodeId).add();
1952+
DanglingLine xnode1b12 = network.getVoltageLevel("VL1").newDanglingLine().setId("XNODE1_B12").setR(1.5).setX(13.0).setG(0.0).setB(1.93E-4).setBus("B12").setUcteXnodeCode(xnodeId).add();
1953+
network.newTieLine().setId(tieLineId).setDanglingLine1(b11xnode1.getId()).setDanglingLine2(xnode1b12.getId()).add();
1954+
network.getTieLine(tieLineId).getDanglingLine1().getTerminal().setP(302.4440612792969).setQ(98.74027252197266);
1955+
network.getTieLine(tieLineId).getDanglingLine2().getTerminal().setP(-300.43389892578125).setQ(-137.18849182128906);
1956+
1957+
return network;
1958+
1959+
}
1960+
1961+
public static Network createNetworkWithTieLineInSubstation() {
1962+
Network network = createBusBreakerNetworkWithInternalBranches("tieLineWithinSubstation", "test");
1963+
network.getLine("L12").remove();
1964+
String tieLineId = "B11_B21_1";
1965+
String xnodeId = "XNODE1";
1966+
DanglingLine b11xnode1 = network.getVoltageLevel("VL1").newDanglingLine().setId("B11_XNODE1").setR(1.5).setX(20.0).setG(0.0).setB(1.93E-4).setBus("B11").setUcteXnodeCode(xnodeId).add();
1967+
DanglingLine xnode1b21 = network.getVoltageLevel("VL2").newDanglingLine().setId("XNODE1_B21").setR(1.5).setX(13.0).setG(0.0).setB(1.93E-4).setBus("B21").setUcteXnodeCode(xnodeId).add();
1968+
network.newTieLine().setId(tieLineId).setDanglingLine1(b11xnode1.getId()).setDanglingLine2(xnode1b21.getId()).add();
1969+
network.getTieLine(tieLineId).getDanglingLine1().getTerminal().setP(302.4440612792969).setQ(98.74027252197266);
1970+
network.getTieLine(tieLineId).getDanglingLine2().getTerminal().setP(-300.43389892578125).setQ(-137.18849182128906);
1971+
1972+
return network;
1973+
1974+
}
1975+
19451976
}

network-area-diagram/src/main/java/com/powsybl/nad/build/iidm/NetworkGraphBuilder.java

+13-5
Original file line numberDiff line numberDiff line change
@@ -111,11 +111,19 @@ private void visitThreeWindingsTransformer(VoltageLevel vl, ThreeWindingsTransfo
111111
}
112112

113113
private void visitDanglingLine(DanglingLine dl, Graph graph) {
114-
BoundaryNode boundaryNode = new BoundaryNode(idProvider.createId(dl), dl.getId(), dl.getNameOrId());
115-
BusNode boundaryBusNode = new BoundaryBusNode(idProvider.createId(dl), dl.getId());
116-
boundaryNode.addBusNode(boundaryBusNode);
117-
graph.addNode(boundaryNode);
118-
addEdge(graph, dl, boundaryNode, boundaryBusNode);
114+
if (!dl.isPaired()) {
115+
BoundaryNode boundaryNode = new BoundaryNode(idProvider.createId(dl), dl.getId(), dl.getNameOrId());
116+
BusNode boundaryBusNode = new BoundaryBusNode(idProvider.createId(dl), dl.getId());
117+
boundaryNode.addBusNode(boundaryBusNode);
118+
graph.addNode(boundaryNode);
119+
addEdge(graph, dl, boundaryNode, boundaryBusNode);
120+
} else {
121+
dl.getTieLine().ifPresent(tieLine -> visitTieLine(tieLine, dl, graph));
122+
}
123+
}
124+
125+
private void visitTieLine(TieLine tieLine, DanglingLine dl, Graph graph) {
126+
addEdge(graph, tieLine, dl.getTerminal().getVoltageLevel(), BranchEdge.TIE_LINE_EDGE);
119127
}
120128

121129
private void visitHvdcConverterStation(HvdcConverterStation<?> converterStation, Graph graph) {

network-area-diagram/src/main/java/com/powsybl/nad/model/BranchEdge.java

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public int getNum() {
3333
public static final String LINE_EDGE = "LineEdge";
3434
public static final String HVDC_LINE_EDGE = "HvdcLineEdge";
3535
public static final String DANGLING_LINE_EDGE = "DanglingLineEdge";
36+
public static final String TIE_LINE_EDGE = "TieLineEdge";
3637

3738
private List<Point> points1 = Collections.emptyList();
3839
private List<Point> points2 = Collections.emptyList();

network-area-diagram/src/main/java/com/powsybl/nad/svg/StyleProvider.java

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public interface StyleProvider {
2525
String HVDC_EDGE_CLASS = CLASSES_PREFIX + "hvdc-edge";
2626
String THREE_WT_EDGES_CLASS = CLASSES_PREFIX + "3wt-edges";
2727
String DANGLING_LINE_EDGE_CLASS = CLASSES_PREFIX + "dangling-line-edge";
28+
String TIE_LINE_EDGE_CLASS = CLASSES_PREFIX + "tie-line-edge";
2829
String TEXT_EDGES_CLASS = CLASSES_PREFIX + "text-edges";
2930
String EDGE_INFOS_CLASS = CLASSES_PREFIX + "edge-infos";
3031
String EDGE_LABEL_CLASS = CLASSES_PREFIX + "edge-label";

network-area-diagram/src/main/java/com/powsybl/nad/svg/iidm/AbstractVoltageStyleProvider.java

+2
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@ protected Optional<String> getBaseVoltageStyle(Edge edge) {
104104
return Optional.of(HVDC_EDGE_CLASS);
105105
} else if (branchType.equals(BranchEdge.DANGLING_LINE_EDGE)) {
106106
return Optional.of(DANGLING_LINE_EDGE_CLASS);
107+
} else if (branchType.equals(BranchEdge.TIE_LINE_EDGE)) {
108+
return Optional.of(TIE_LINE_EDGE_CLASS);
107109
}
108110
} else if (edge instanceof ThreeWtEdge) {
109111
Terminal terminal = network.getThreeWindingsTransformer(edge.getEquipmentId())

network-area-diagram/src/main/resources/nominalStyle.css

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
.nad-vl-nodes .nad-busnode {fill: var(--nad-vl-color, lightblue)}
66
.nad-vl-nodes circle.nad-unknown-busnode {stroke: lightgrey; stroke-width: 5; stroke-dasharray: 5,5; fill: none}
77
.nad-hvdc-edge polyline.nad-hvdc {stroke: grey; stroke-width: 40}
8-
.nad-dangling-line-edge {fill: var(--nad-vl-color, lighgrey)}
8+
.nad-branch-edges .nad-tie-line-edge .nad-edge-path {stroke-width: 7}
99
.nad-pst-arrow {stroke: #6a6a6a; stroke-width: 4; stroke-linecap: round; fill: none}
1010
.nad-state-out .nad-arrow-in {visibility: hidden}
1111
.nad-state-in .nad-arrow-out {visibility: hidden}

network-area-diagram/src/main/resources/topologicalStyle.css

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
.nad-vl-nodes .nad-busnode {fill: var(--nad-vl-color, lightgrey)}
66
.nad-vl-nodes circle.nad-unknown-busnode {stroke: var(--nad-vl-color, #808080); stroke-width: 5; stroke-dasharray: 5,5; fill: none}
77
.nad-hvdc-edge polyline.nad-hvdc {stroke: grey; stroke-width: 40}
8-
.nad-dangling-line-edge {stroke: var(--nad-vl-color, lightgrey); stroke-width: 1; fill: none}
8+
.nad-branch-edges .nad-tie-line-edge .nad-edge-path {stroke-width: 7}
99
.nad-pst-arrow {stroke: #6a6a6a; stroke-width: 4; stroke-linecap: round; fill: none}
1010
.nad-state-out .nad-arrow-in {visibility: hidden}
1111
.nad-state-in .nad-arrow-out {visibility: hidden}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/**
2+
* Copyright (c) 2023, RTE (http://www.rte-france.com)
3+
* This Source Code Form is subject to the terms of the Mozilla Public
4+
* License, v. 2.0. If a copy of the MPL was not distributed with this
5+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
6+
* SPDX-License-Identifier: MPL-2.0
7+
*/
8+
package com.powsybl.nad.svg;
9+
10+
import com.powsybl.iidm.network.Network;
11+
import com.powsybl.iidm.network.test.EurostagTutorialExample1Factory;
12+
import com.powsybl.nad.AbstractTest;
13+
import com.powsybl.nad.layout.LayoutParameters;
14+
import com.powsybl.nad.svg.iidm.DefaultLabelProvider;
15+
import com.powsybl.nad.svg.iidm.NominalVoltageStyleProvider;
16+
import org.junit.jupiter.api.BeforeEach;
17+
import org.junit.jupiter.api.Test;
18+
19+
import static org.junit.jupiter.api.Assertions.assertEquals;
20+
21+
/**
22+
* @author Sophie Frasnedo <sophie.frasnedo at rte-france.com>
23+
*/
24+
class TieLineTest extends AbstractTest {
25+
26+
@BeforeEach
27+
void setup() {
28+
setLayoutParameters(new LayoutParameters());
29+
setSvgParameters(new SvgParameters()
30+
.setSvgWidthAndHeightAdded(true)
31+
.setFixedWidth(800));
32+
}
33+
34+
@Override
35+
protected StyleProvider getStyleProvider(Network network) {
36+
return new NominalVoltageStyleProvider(network);
37+
}
38+
39+
@Override
40+
protected LabelProvider getLabelProvider(Network network) {
41+
return new DefaultLabelProvider(network, getSvgParameters()) {
42+
};
43+
}
44+
45+
@Test
46+
void testTieLine() {
47+
Network network = EurostagTutorialExample1Factory.createWithTieLine();
48+
assertEquals(toString("/tie_line.svg"), generateSvgString(network, "/tie_line.svg"));
49+
}
50+
51+
}

network-area-diagram/src/test/resources/3wt.svg

+1-1
Loading

network-area-diagram/src/test/resources/3wt_disconnected.svg

+1-1
Loading

network-area-diagram/src/test/resources/3wt_disconnected_topological.svg

+1-1
Loading

network-area-diagram/src/test/resources/3wt_partial.svg

+1-1
Loading

network-area-diagram/src/test/resources/IEEE_118_bus.svg

+1-1
Loading

network-area-diagram/src/test/resources/IEEE_118_bus_partial.svg

+1-1
Loading

network-area-diagram/src/test/resources/IEEE_118_bus_partial_non_connected.svg

+1-1
Loading

network-area-diagram/src/test/resources/IEEE_14_bus.svg

+1-1
Loading

network-area-diagram/src/test/resources/IEEE_14_bus_disconnection.svg

+1-1
Loading

network-area-diagram/src/test/resources/IEEE_14_bus_fictitious.svg

+1-1
Loading

network-area-diagram/src/test/resources/IEEE_14_bus_text_nodes.svg

+1-1
Loading

network-area-diagram/src/test/resources/IEEE_14_id_prefixed.svg

+1-1
Loading

network-area-diagram/src/test/resources/IEEE_24_bus.svg

+1-1
Loading

network-area-diagram/src/test/resources/IEEE_30_bus.svg

+1-1
Loading

network-area-diagram/src/test/resources/IEEE_57_bus.svg

+1-1
Loading

network-area-diagram/src/test/resources/current_limits.svg

+1-1
Loading

network-area-diagram/src/test/resources/dangling_line_connected.svg

+1-1
Loading

network-area-diagram/src/test/resources/dangling_line_disconnected.svg

+1-1
Loading

network-area-diagram/src/test/resources/detailed_text_node.svg

+1-1
Loading

network-area-diagram/src/test/resources/detailed_text_node_no_legend.svg

+1-1
Loading

0 commit comments

Comments
 (0)