Skip to content

Commit 2dcc28e

Browse files
review
1 parent 1a7f24d commit 2dcc28e

File tree

1 file changed

+57
-45
lines changed

1 file changed

+57
-45
lines changed

src/main/java/org/gridsuite/voltageinit/server/service/parameters/VoltageInitParametersService.java

Lines changed: 57 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -222,18 +222,7 @@ public OpenReacParameters buildOpenReacParameters(VoltageInitRunContext context,
222222
voltageLevelModificationLimits, voltageLevelDefaultLimits,
223223
voltageLevel, context.getVoltageLevelsIdsRestricted()));
224224

225-
if (!context.getVoltageLevelsIdsRestricted().isEmpty()) {
226-
reporter.report(Report.builder()
227-
.withKey("restrictedVoltageLevels")
228-
.withDefaultMessage("The modifications to the low limits for certain voltage levels have been restricted to avoid negative voltage limits: ${joinedVoltageLevelsIds}")
229-
.withValue("joinedVoltageLevelsIds", context.getVoltageLevelsIdsRestricted()
230-
.entrySet()
231-
.stream()
232-
.map(entry -> entry.getKey() + " : " + entry.getValue())
233-
.collect(Collectors.joining(", ")))
234-
.withSeverity(TypedValue.WARN_SEVERITY)
235-
.build());
236-
}
225+
logRestrictedVoltageLevels(reporter, context.getVoltageLevelsIdsRestricted());
237226
}
238227

239228
constantQGenerators.addAll(toEquipmentIdsList(context.getNetworkUuid(), context.getVariantId(), voltageInitParameters.getConstantQGenerators()));
@@ -245,7 +234,62 @@ public OpenReacParameters buildOpenReacParameters(VoltageInitRunContext context,
245234
.addVariableTwoWindingsTransformers(variableTwoWindingsTransformers)
246235
.addVariableShuntCompensators(variableShuntCompensators);
247236

248-
parameters.getSpecificVoltageLimits()
237+
logVoltageLimitsModified(reporter, network, parameters.getSpecificVoltageLimits());
238+
logFiltersCounters(reporter, counterMissingVoltageLimits, counterVoltageLimitModifications);
239+
240+
//The optimizer will attach reactive slack variables to all buses
241+
parameters.setReactiveSlackBusesMode(ReactiveSlackBusesMode.ALL);
242+
243+
LOGGER.info("Parameters built in {}s", TimeUnit.NANOSECONDS.toSeconds(System.nanoTime() - startTime.get()));
244+
return parameters;
245+
}
246+
247+
private List<String> toEquipmentIdsList(UUID networkUuid, String variantId, List<FilterEquipmentsEmbeddable> filters) {
248+
if (filters == null || filters.isEmpty()) {
249+
return List.of();
250+
}
251+
List<FilterEquipments> equipments = filterService.exportFilters(filters.stream().map(FilterEquipmentsEmbeddable::getFilterId).toList(), networkUuid, variantId);
252+
Set<String> ids = new HashSet<>();
253+
equipments.forEach(filterEquipment ->
254+
filterEquipment.getIdentifiableAttributes().forEach(identifiableAttribute ->
255+
ids.add(identifiableAttribute.getId())
256+
)
257+
);
258+
return new ArrayList<>(ids);
259+
}
260+
261+
private static void logRestrictedVoltageLevels(final Reporter reporter, final Map<String, Double> voltageLevelsIdsRestricted) {
262+
if (!voltageLevelsIdsRestricted.isEmpty()) {
263+
reporter.report(Report.builder()
264+
.withKey("restrictedVoltageLevels")
265+
.withDefaultMessage("The modifications to the low limits for certain voltage levels have been restricted to avoid negative voltage limits: ${joinedVoltageLevelsIds}")
266+
.withValue("joinedVoltageLevelsIds", voltageLevelsIdsRestricted
267+
.entrySet()
268+
.stream()
269+
.map(entry -> entry.getKey() + " : " + voltageToString(entry.getValue()))
270+
.collect(Collectors.joining(", ")))
271+
.withSeverity(TypedValue.WARN_SEVERITY)
272+
.build());
273+
}
274+
}
275+
276+
private static void logFiltersCounters(final Reporter reporter, final MutableInt counterMissingVoltageLimits, final MutableInt counterVoltageLimitModifications) {
277+
reporter.report(Report.builder()
278+
.withKey("missingVoltageLimits")
279+
.withDefaultMessage("Missing voltage limits of ${nbMissingVoltageLimits} voltage levels have been replaced with user-defined default values.")
280+
.withValue("nbMissingVoltageLimits", counterMissingVoltageLimits.longValue())
281+
.withSeverity(TypedValue.INFO_SEVERITY)
282+
.build());
283+
reporter.report(Report.builder()
284+
.withKey("voltageLimitModifications")
285+
.withDefaultMessage("Voltage limits of ${nbVoltageLimitModifications} voltage levels have been modified according to user input.")
286+
.withValue("nbVoltageLimitModifications", counterVoltageLimitModifications.longValue())
287+
.withSeverity(TypedValue.INFO_SEVERITY)
288+
.build());
289+
}
290+
291+
private static void logVoltageLimitsModified(final Reporter reporter, final Network network, final List<VoltageLimitOverride> specificVoltageLimits) {
292+
specificVoltageLimits
249293
.stream()
250294
.collect(HashMap<String, EnumMap<VoltageLimitType, VoltageLimitOverride>>::new,
251295
(map, voltageLimitOverride) -> map
@@ -269,38 +313,6 @@ public OpenReacParameters buildOpenReacParameters(VoltageInitRunContext context,
269313
.withSeverity(TypedValue.TRACE_SEVERITY)
270314
.build());
271315
});
272-
reporter.report(Report.builder()
273-
.withKey("missingVoltageLimits")
274-
.withDefaultMessage("Missing voltage limits of ${nbMissingVoltageLimits} voltage levels have been replaced with user-defined default values.")
275-
.withValue("nbMissingVoltageLimits", counterMissingVoltageLimits.longValue())
276-
.withSeverity(TypedValue.INFO_SEVERITY)
277-
.build());
278-
reporter.report(Report.builder()
279-
.withKey("voltageLimitModifications")
280-
.withDefaultMessage("Voltage limits of ${nbVoltageLimitModifications} voltage levels have been modified according to user input.")
281-
.withValue("nbVoltageLimitModifications", counterVoltageLimitModifications.longValue())
282-
.withSeverity(TypedValue.INFO_SEVERITY)
283-
.build());
284-
285-
//The optimizer will attach reactive slack variables to all buses
286-
parameters.setReactiveSlackBusesMode(ReactiveSlackBusesMode.ALL);
287-
288-
LOGGER.info("Parameters built in {}s", TimeUnit.NANOSECONDS.toSeconds(System.nanoTime() - startTime.get()));
289-
return parameters;
290-
}
291-
292-
private List<String> toEquipmentIdsList(UUID networkUuid, String variantId, List<FilterEquipmentsEmbeddable> filters) {
293-
if (filters == null || filters.isEmpty()) {
294-
return List.of();
295-
}
296-
List<FilterEquipments> equipments = filterService.exportFilters(filters.stream().map(FilterEquipmentsEmbeddable::getFilterId).toList(), networkUuid, variantId);
297-
Set<String> ids = new HashSet<>();
298-
equipments.forEach(filterEquipment ->
299-
filterEquipment.getIdentifiableAttributes().forEach(identifiableAttribute ->
300-
ids.add(identifiableAttribute.getId())
301-
)
302-
);
303-
return new ArrayList<>(ids);
304316
}
305317

306318
private static String voltageToString(double voltage) {

0 commit comments

Comments
 (0)