Skip to content

Commit dfbaf91

Browse files
authored
PowSyBl 4.0.0 (#44)
Signed-off-by: Geoffroy Jamgotchian <[email protected]>
1 parent ea0b3b3 commit dfbaf91

File tree

10 files changed

+253
-105
lines changed

10 files changed

+253
-105
lines changed

Diff for: .github/workflows/main.yml

+18-18
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,17 @@ jobs:
3434
uses: ayltai/setup-graalvm@v1
3535
with:
3636
java-version: 11
37-
graalvm-version: 21.0.0
37+
graalvm-version: 20.3.0
3838
native-image: true
3939

40-
- name: Checkout olf sources
41-
uses: actions/checkout@v1
42-
with:
43-
repository: powsybl/powsybl-open-loadflow
44-
ref: gridpy-v0.1.0
45-
46-
- name: Build and install olf artifact
47-
run: scl enable rh-maven33 'mvn --batch-mode -DskipTests=true --file ../powsybl-open-loadflow/pom.xml install'
40+
# - name: Checkout olf sources
41+
# uses: actions/checkout@v1
42+
# with:
43+
# repository: powsybl/powsybl-open-loadflow
44+
# ref: master
45+
#
46+
# - name: Build and install olf artifact
47+
# run: scl enable rh-maven33 'mvn --batch-mode -DskipTests=true --file ../powsybl-open-loadflow/pom.xml install'
4848

4949
- name: Checkout sources
5050
uses: actions/checkout@v1
@@ -102,17 +102,17 @@ jobs:
102102
uses: ayltai/setup-graalvm@v1
103103
with:
104104
java-version: 11
105-
graalvm-version: 21.0.0
105+
graalvm-version: 20.3.0
106106
native-image: true
107107

108-
- name: Checkout olf sources
109-
uses: actions/checkout@v1
110-
with:
111-
repository: powsybl/powsybl-open-loadflow
112-
ref: gridpy-v0.1.0
113-
114-
- name: Build and install olf artifact
115-
run: mvn --batch-mode -DskipTests=true --file ../powsybl-open-loadflow/pom.xml install
108+
# - name: Checkout olf sources
109+
# uses: actions/checkout@v1
110+
# with:
111+
# repository: powsybl/powsybl-open-loadflow
112+
# ref: master
113+
#
114+
# - name: Build and install olf artifact
115+
# run: mvn --batch-mode -DskipTests=true --file ../powsybl-open-loadflow/pom.xml install
116116

117117
- name: Checkout sources
118118
uses: actions/checkout@v1

Diff for: README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ To build this project, you need:
1313
- Cmake >= 3.14
1414
- C++11 compiler
1515
- Python >= 3.7
16-
- [GraalVM 21.0.0](https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-21.0.0) with [native image](https://www.graalvm.org/reference-manual/native-image/#install-native-image)
16+
- [GraalVM 20.3.0](https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-20.3.0) with [native image](https://www.graalvm.org/reference-manual/native-image/#install-native-image)
1717

1818
## Build from sources
1919

Diff for: java/pom.xml

+19-21
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,16 @@
2626
<properties>
2727
<java.version>11</java.version>
2828

29-
<graalvm.version>21.0.0</graalvm.version>
30-
<gridsuite-dependencies.version>4</gridsuite-dependencies.version>
29+
<graalvm.version>20.3.0</graalvm.version>
3130
<janino.version>3.1.0</janino.version>
3231
<junit-jupiter.version>5.5.2</junit-jupiter.version>
3332
<logback.version>1.2.3</logback.version>
3433
<mapdb.version>3.0.8</mapdb.version>
3534
<maven-shade-plugin.version>3.2.4</maven-shade-plugin.version>
3635
<slf4j.version>1.7.30</slf4j.version>
37-
<open-load-flow.version>0.9.0-SNAPSHOT</open-load-flow.version>
36+
<powysbl-core.version>4.0.1</powysbl-core.version>
37+
<powysbl-single-line-diagram.version>2.0.0</powysbl-single-line-diagram.version>
38+
<powsybl-open-load-flow.version>0.9.0</powsybl-open-load-flow.version>
3839
</properties>
3940

4041
<build>
@@ -75,23 +76,6 @@
7576
</plugins>
7677
</build>
7778

78-
<dependencyManagement>
79-
<dependencies>
80-
<!-- overrides of imports -->
81-
82-
<!-- imports -->
83-
<dependency>
84-
<groupId>org.gridsuite</groupId>
85-
<artifactId>gridsuite-dependencies</artifactId>
86-
<version>${gridsuite-dependencies.version}</version>
87-
<type>pom</type>
88-
<scope>import</scope>
89-
</dependency>
90-
91-
<!-- project specific dependencies -->
92-
</dependencies>
93-
</dependencyManagement>
94-
9579
<dependencies>
9680
<!-- compile -->
9781

@@ -139,55 +123,68 @@
139123
<dependency>
140124
<groupId>com.powsybl</groupId>
141125
<artifactId>powsybl-cgmes-conversion</artifactId>
126+
<version>${powysbl-core.version}</version>
142127
</dependency>
143128
<dependency>
144129
<groupId>com.powsybl</groupId>
145130
<artifactId>powsybl-config-classic</artifactId>
131+
<version>${powysbl-core.version}</version>
146132
</dependency>
147133
<dependency>
148134
<groupId>com.powsybl</groupId>
149135
<artifactId>powsybl-ieee-cdf-converter</artifactId>
136+
<version>${powysbl-core.version}</version>
150137
<scope>compile</scope>
151138
</dependency>
152139
<dependency>
153140
<groupId>com.powsybl</groupId>
154141
<artifactId>powsybl-iidm-api</artifactId>
142+
<version>${powysbl-core.version}</version>
155143
</dependency>
156144
<dependency>
157145
<groupId>com.powsybl</groupId>
158146
<artifactId>powsybl-iidm-test</artifactId>
147+
<version>${powysbl-core.version}</version>
159148
</dependency>
160149
<dependency>
161150
<groupId>com.powsybl</groupId>
162151
<artifactId>powsybl-iidm-xml-converter</artifactId>
152+
<version>${powysbl-core.version}</version>
163153
</dependency>
164154
<dependency>
165155
<groupId>com.powsybl</groupId>
166156
<artifactId>powsybl-loadflow-api</artifactId>
157+
<version>${powysbl-core.version}</version>
167158
</dependency>
168159
<dependency>
169160
<groupId>com.powsybl</groupId>
170161
<artifactId>powsybl-matpower-converter</artifactId>
162+
<version>${powysbl-core.version}</version>
171163
</dependency>
172164
<dependency>
173165
<groupId>com.powsybl</groupId>
174166
<artifactId>powsybl-psse-converter</artifactId>
167+
<version>${powysbl-core.version}</version>
175168
</dependency>
176169
<dependency>
177170
<groupId>com.powsybl</groupId>
178171
<artifactId>powsybl-single-line-diagram-core</artifactId>
172+
<version>${powysbl-single-line-diagram.version}</version>
179173
</dependency>
180174
<dependency>
181175
<groupId>com.powsybl</groupId>
182176
<artifactId>powsybl-tools</artifactId>
177+
<version>${powysbl-core.version}</version>
183178
</dependency>
184179
<dependency>
185180
<groupId>com.powsybl</groupId>
186181
<artifactId>powsybl-triple-store-impl-rdf4j</artifactId>
182+
<version>${powysbl-core.version}</version>
187183
</dependency>
188184
<dependency>
189185
<groupId>com.powsybl</groupId>
190186
<artifactId>powsybl-ucte-converter</artifactId>
187+
<version>${powysbl-core.version}</version>
191188
</dependency>
192189

193190
<!-- runtime -->
@@ -201,11 +198,12 @@
201198
<dependency>
202199
<groupId>com.powsybl</groupId>
203200
<artifactId>powsybl-iidm-impl</artifactId>
201+
<version>${powysbl-core.version}</version>
204202
</dependency>
205203
<dependency>
206204
<groupId>com.powsybl</groupId>
207205
<artifactId>powsybl-open-loadflow</artifactId>
208-
<version>${open-load-flow.version}</version>
206+
<version>${powsybl-open-load-flow.version}</version>
209207
</dependency>
210208

211209
<!-- test -->

Diff for: java/src/main/java/org/gridsuite/gridpy/SensitivityAnalysisContext.java

+20-6
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,20 @@ void setFactorMatrix(List<String> branchsIds, List<String> injectionsOrTransfosI
8282
this.injectionsOrTransfosIds = Objects.requireNonNull(injectionsOrTransfosIds);
8383
}
8484

85+
private static Injection<?> getInjection(Network network, String injectionId) {
86+
Injection<?> injection = network.getGenerator(injectionId);
87+
if (injection == null) {
88+
injection = network.getLoad(injectionId);
89+
}
90+
if (injection == null) {
91+
injection = network.getLccConverterStation(injectionId);
92+
}
93+
if (injection == null) {
94+
injection = network.getVscConverterStation(injectionId);
95+
}
96+
return injection;
97+
}
98+
8599
private List<SensitivityFactor> createFactors(Network network) {
86100
if (branchsIds == null) {
87101
return Collections.emptyList();
@@ -93,20 +107,20 @@ private List<SensitivityFactor> createFactors(Network network) {
93107
if (branch == null) {
94108
throw new PowsyblException("Branch '" + branchId + "' not found");
95109
}
96-
BranchFlow branchFlow = new BranchFlow(branchId, branch.getName(), branchId);
110+
BranchFlow branchFlow = new BranchFlow(branchId, branch.getNameOrId(), branchId);
97111
for (int row = 0; row < injectionsOrTransfosIds.size(); row++) {
98112
String injectionOrTransfoId = injectionsOrTransfosIds.get(row);
99-
Generator generator = network.getGenerator(injectionOrTransfoId);
100-
if (generator != null) {
101-
InjectionIncrease injectionIncrease = new InjectionIncrease(injectionOrTransfoId, generator.getName(), injectionOrTransfoId);
113+
Injection<?> injection = getInjection(network, injectionOrTransfoId);
114+
if (injection != null) {
115+
InjectionIncrease injectionIncrease = new InjectionIncrease(injectionOrTransfoId, injection.getNameOrId(), injectionOrTransfoId);
102116
factors.add(new IndexedBranchFlowPerInjectionIncrease(branchFlow, injectionIncrease, row, column));
103117
} else {
104118
TwoWindingsTransformer twt = network.getTwoWindingsTransformer(injectionOrTransfoId);
105119
if (twt != null) {
106120
if (twt.getPhaseTapChanger() == null) {
107121
throw new PowsyblException("Transformer '" + injectionOrTransfoId + "' is not a phase shifter");
108122
}
109-
PhaseTapChangerAngle phaseTapChangerAngle = new PhaseTapChangerAngle(injectionOrTransfoId, twt.getName(), injectionOrTransfoId);
123+
PhaseTapChangerAngle phaseTapChangerAngle = new PhaseTapChangerAngle(injectionOrTransfoId, twt.getNameOrId(), injectionOrTransfoId);
110124
factors.add(new IndexedBranchFlowPerPSTAngle(branchFlow, phaseTapChangerAngle, row, column));
111125
} else {
112126
throw new PowsyblException("Injection or transformer '" + injectionOrTransfoId + "' not found");
@@ -123,7 +137,7 @@ SensitivityAnalysisResultContext run(Network network, LoadFlowParameters loadFlo
123137
List<Contingency> contingencies = createContingencies(network);
124138
List<SensitivityFactor> factors = createFactors(network);
125139
SensitivityAnalysisResult result = SensitivityAnalysis.run(network, VariantManagerConstants.INITIAL_VARIANT_ID,
126-
n -> factors, n -> contingencies, sensitivityAnalysisParameters, LocalComputationManager.getDefault());
140+
n -> factors, contingencies, sensitivityAnalysisParameters, LocalComputationManager.getDefault());
127141
SensitivityAnalysisResultContext resultContext = null;
128142
if (result.isOk()) {
129143
Collection<SensitivityValue> sensitivityValues = result.getSensitivityValues();

Diff for: java/src/main/java/org/gridsuite/gridpy/SingleLineDiagramUtil.java

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ static void writeSvg(Network network, String containerId, String svgFile) {
3535
VoltageLevelLayoutFactory voltageLevelLayoutFactory = new SmartVoltageLevelLayoutFactory(network);
3636
VoltageLevelDiagram voltageLevelDiagram = VoltageLevelDiagram.build(new NetworkGraphBuilder(network), containerId, voltageLevelLayoutFactory, false);
3737
LayoutParameters layoutParameters = new LayoutParameters()
38+
.setCssInternal(true)
3839
.setAdaptCellHeightToContent(true);
3940
voltageLevelDiagram.writeSvg("",
4041
new DefaultSVGWriter(componentLibrary, layoutParameters),

Diff for: java/src/main/resources/META-INF/native-image/jni-config.json

+5-1
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,17 @@
66
{
77
"name":"java.lang.ClassLoader",
88
"methods":[
9-
{"name":"getPlatformClassLoader","parameterTypes":[] },
9+
{"name":"getPlatformClassLoader","parameterTypes":[] },
1010
{"name":"loadClass","parameterTypes":["java.lang.String"] }
1111
]
1212
},
1313
{
1414
"name":"java.lang.ClassNotFoundException"
1515
},
16+
{
17+
"name":"java.lang.InternalError",
18+
"methods":[{"name":"<init>","parameterTypes":["java.lang.String"] }]
19+
},
1620
{
1721
"name":"java.lang.NoSuchMethodError"
1822
},

0 commit comments

Comments
 (0)