-
Notifications
You must be signed in to change notification settings - Fork 63
Migration guide v7.3.0
Downstream projects should:
-
TBD
-
Upgrade the version in their XIIDM / JIIDM unit test files corresponding to the current version:
-
For ".xiidm" or ".xml" files: replace
xmlns:iidm="http://www.powsybl.org/schema/iidm/1_16"withxmlns:iidm="http://www.powsybl.org/schema/iidm/1_17"; -
For ".json" or ".jiidm" files: replace
"version" : "1.16"with"version" : "1.17".
-
N/A
Classes
The following classes were renamed:
| Old name | New name |
|---|---|
TBD |
TBD |
Methods
The following methods were renamed:
| Old name | New name |
|---|---|
TBD |
TBD |
Constants
The following constants were renamed:
| Old name | New name |
|---|---|
TBD |
TBD |
Reports
The following ReportNode keys were renamed:
| Old name | New name |
|---|---|
TBD |
TBD |
In the messages of the following ReportNode keys, some variables were renamed:
- ReportNode keys:
TBD
| Old name | New name |
|---|---|
TBD |
TBD |
The LimitReduction JSON format has been bump to version 1.2. This is not a breaking change per se, but you should be aware of this if your project communicates with another one based on an older version of PowSyBl:
- LimitReduction JSON files generated by an older version of PowSyBl could still be read;
- but LimitReduction JSON files generated by this version of PowSyBl won't be readable by older versions.
N/A
N/A
N/A
The following dependencies have been replaced:
| Old dependency | New dependency |
|---|---|
| TBD | TBD |
A few classes were either moved to a new package or removed entirely in the package com.powsybl.psse.model.pf. This should however not impact users as those are internal classes and are not expected to be used directly.
Moved classes
| Old classes | New classes |
|---|---|
c.p.p.m.pf.PsseSubstation.PsseSubstationEquipmentTerminal |
c.p.p.m.pf.internal.PsseSubstationEquipmentTerminal |
c.p.p.m.pf.PsseSubstation.PsseSubstationEquipmentTerminalCommonStart |
c.p.p.m.pf.internal.PsseSubstationEquipmentTerminalCommonStart |
c.p.p.m.pf.PsseSubstation.PsseSubstationEquipmentTerminalx |
c.p.p.m.pf.internal.PsseSubstationEquipmentTerminalx |
c.p.p.m.pf.PsseSubstation.PsseSubstationNode |
c.p.p.m.pf.internal.PsseSubstationNode |
c.p.p.m.pf.PsseSubstation.PsseSubstationNodex |
c.p.p.m.pf.internal.PsseSubstationNodex |
c.p.p.m.pf.PsseSubstation.PsseSubstationRecord |
c.p.p.m.pf.internal.PsseSubstationRecord |
c.p.p.m.pf.PsseSubstation.PsseSubstationSwitchingDevice |
c.p.p.m.pf.internal.PsseSubstationSwitchingDevice |
c.p.p.m.pf.PsseSubstation.PsseSubstationSwitchingDevicex |
c.p.p.m.pf.internal.PsseSubstationSwitchingDevicex |
c.p.p.m.pf.PsseTransformer.TransformerImpedances |
c.p.p.m.pf.internal.TransformerImpedances |
c.p.p.m.pf.PsseTransformer.TransformerWindingRecord |
c.p.p.m.pf.internal.TransformerWindingRecord |
c.p.p.m.pf.PsseMultiTerminalDcTransmissionLine.PsseMultiTerminalDcBus |
c.p.p.m.pf.internal.PsseMultiTerminalDcBus |
c.p.p.m.pf.PsseMultiTerminalDcTransmissionLine.PsseMultiTerminalDcBusx |
c.p.p.m.pf.internal.PsseMultiTerminalDcBusx |
c.p.p.m.pf.PsseMultiTerminalDcTransmissionLine.PsseMultiTerminalDcConverter |
c.p.p.m.pf.internal.PsseMultiTerminalDcConverter |
c.p.p.m.pf.PsseMultiTerminalDcTransmissionLine.PsseMultiTerminalDcConverterx |
c.p.p.m.pf.internal.PsseMultiTerminalDcConverterx |
c.p.p.m.pf.PsseMultiTerminalDcTransmissionLine.PsseMultiTerminalDcLink |
c.p.p.m.pf.internal.PsseMultiTerminalDcLink |
c.p.p.m.pf.PsseMultiTerminalDcTransmissionLine.PsseMultiTerminalDcLinkx |
c.p.p.m.pf.internal.PsseMultiTerminalDcLinkx |
c.p.p.m.pf.PsseMultiTerminalDcTransmissionLine.PsseMultiTerminalDcMain |
c.p.p.m.pf.internal.PsseMultiTerminalDcMain |
c.p.p.m.pf.io.TransformerImpedanceCorrectionTablesData.ZCorr33 |
c.p.p.m.pf.internal.ZCorr33 |
c.p.p.m.pf.io.TransformerImpedanceCorrectionTablesData.ZCorr35First |
c.p.p.m.pf.internal.ZCorr35First |
c.p.p.m.pf.io.TransformerImpedanceCorrectionTablesData.ZCorr35Points |
c.p.p.m.pf.internal.ZCorr35Points |
c.p.p.m.pf.io.TransformerImpedanceCorrectionTablesData.ZCorr35X |
c.p.p.m.pf.internal.ZCorr35X |
Removed classes
| Removed classes |
|---|
c.p.p.m.pf.io.WindingHeaderTransformer |
c.p.p.m.pf.io.WindingRatesHeaderTransformer |
Custom IIDM implementations' maintainers should modify:
Terminal.disconnect()TIeLine.disconnectBoundaryLines()HvdcLine.disconnectConverterStations()
to only change the state of the non-fictional breakers, instead of all the breakers.
If you defined your own IIDM implementation, you should implement the following methods:
- In your
DcSwitchimplementation:double getR()DcSwitch setR(double r)
- In your
DcSwitchAdderimplementation:DcSwitchAdder setR(double r)
Custom IIDM implementations' maintainers should change the exception messages that may be encountered at the temporary limits creation:
- When the value is
NaN:temporary limit value is not set for '<name>' within limit set '<operationalGroupId>'
- When the value is
< 0:temporary limit value must be >= 0 for '<name>' within limit set '<operationalGroupId>'
- When the acceptable duration is null:
acceptable duration is not set for '<name>' within limit set '<operationalGroupId>'
- When the acceptable duration is
< 0:acceptable duration must be >= 0 for '<name>' within limit set '<operationalGroupId'>
If you are using the following constructors:
LimitViolation(String subjectId, @Nullable String subjectName, String operationalLimitsGroupId, LimitViolationType limitType, @Nullable String limitName, int acceptableDuration, double limit, double limitReduction, double value, @Nullable ThreeSides side, @Nullable ViolationLocation voltageLocation)LimitViolation(String subjectId, LimitViolationType limitType, double limit, double limitReduction, double value, ViolationLocation voltageLocation)
Then no change is required.
Otherwise you can:
- use
LimitViolationBuilder, either withnew LimitViolationBuilder()or withLimitViolation.builder(), add the values and then use.build() - use the constructor of
LimitViolationwith all the variables (mentionned above), and provide null values for all the variables you do not have a value for
Note that if you were using a constructor and were providing null values to it, you do not need to do that with the Builder. Also note that the default limitReduction is 1 and the default acceptableDuration is Integer.MAX_VALUE.