Releases: powsybl/powsybl-core
v3.3.0
To fix any issues due to migration, please go to the migration guide. Labels and are clickable and lead to the section of the migration guide corresponding to the associated described change.
Release notes
CGMES (beta)
- Bug fix: regulating terminal TN can be obtained through CN (#1251)
- Change in CGMES import of SVC regulation (#1238 & #1295)
- Check that node has attached equipment attached to them before setting voltages and angles during CGMES import of a node/breaker network (#1233)
- Improve performance of the
PropertyBag::tabulate()
method (#1264) - Let Connectivity Nodes find Topological Node SvVoltage through Terminals (#1237)
- Optimize SPARQL request (#1246)
- Support CGMES export with simple modifications in bus/branch topology (#1201)
- Support shunt's regulation (#1220)
- Update CGMES conversion of DC components to interpret correctly atypical DC configuration (no simple single DC line) (#1230, #1275 & #1291)
- Unhandled update notifications do not throw exceptions anymore while preparing CGMES export (#1283)
- Optimize the performance of the logging methods in the conversion context (#1266)
Configuration
- Add mechanism to allow the configuration file to be updated by a JSON file in command line (#1248)
Dynamic simulation
- Add a
parameters-file
option to the dynamic-simulation command (#1107)
IEEE
- Bug fix: align
isTransformer
's logic tocreateBranches
line and transformer detection logic (#1236)
IIDM
- Add a convenient method to get an
Optional<Terminal>
from its node in theNodeBreakerView
(#1235 ) - Add a convenient method to check if a node in the
NodeBreakerView
has equipment (Connectable
,Switch
orInternalConnection
) attached to it (#1233) - Add more restrictive integrity tests on HVDC lines and converter stations (#1262)
- Add a new predicate type for network reduction: allow to keep a voltage level and its neighbors up to a specified depth (#1261)
- Bug fix: ensure that
voltageLevel.getConnectables()
andvoltageLevel.getConnectableStream()
return distinct elements (#1218) - Bug fix: fix a NullPointerException when removing a voltage level that contains an internal connection (#1259)
- Bug Fix: fix the filtering of buses for the Synchronous component (#1258)
- Extension
MergedXNode
constructor throws exception ifrdp
orxdp
isNaN
(#1222) - Extension
CoordinatedReactiveControl
andActivePowerControl
follow the new API design (#1255) - Fix in destructive merging of two
DanglingLine
in aMergedLine
(#1142) - Introduce
Identifiable.getOptionalName()
,Identifiable.getNameOrId()
and deprecateIdentifiable.getName()
(#1243) - Introduce new convenient methods to run through connectables from network (#1232)
- Merging view
- Refactor XMLExport to remove the multi file export feature (#1215 & #1281)
- Remove
skip-extensions
property inXMLExporter
(#1212) - Update IIDM/XIIDM version from
1.1
to1.2
- Add a
ratedS
attribute toTwoWindingsTransformer
andThreeWindingsTransformer.Leg
to model apparent power (#1199) - Add regulation for
ShuntCompensator
(#958) - Any
Identifiable
canfictitious
, not onlySwitch
(#1209) - Change behavior of
targetDeadband
for tap changers (#958 & #1204) - Change mechanism for creating and cleaning vertices in a node/breaker voltage level's graph (#1161)
- Delete
nodeCount
attribute innodeBreakerTopology
XML element (#1161) - The lossFactor is a percentage (#1280)
- Add a
Loadflow
- Fix
LoadFlowParameters
copy constructor to also clone the extension (#1154) specificCompatibility
parameter is renamedt2wtSplitShuntAdmittance
(#1198)
Network extraction
- Add a new network predicate based on a voltage level and a depth (#1261)
PSS/E (alpha)
- Support PSS/E import
Security
- Change the design of the
SecurityAnalysisResultBuilder
and improve security analysis interceptors (#1247)
Sensitivity
- Modify the sensitivity API to support for post-contingency sensitivity analyses (#1155 & #1245)
- Support a CSV export of sensitivity calculation results (#1190)
UCTE
- Bug fix: in a mergedXnode, R1/(R1+R2) is set to 0 when R1+R2 is equal to 0 (resp X) (#1222 )
- Bug fix: Add a comment in the UCTE header to specify the tool used and the case date (#1223)
- Equivalent UCTE bus are tagged as fictitious IIDM bus and vice versa (#1249)
- Fix EntsoeFileName to parse IDCF (#1284)
- Fix on
rdp
andxdp
values ofmergedXnode
during UCTE import (#1222 & #1241) - Fix loss of element names on tie-lines (#1263)
Quality
v3.2.0
To fix any issues due to migration, please go to the migration guide.
Release notes
Action DSL
- Bug fix: a scalable can be reused in a network and get the same result, even if it has been considered saturated before
CGMES (beta)
- Bug fix on CGMES import of temporary current limits of branches
- Bug fix: when a mixed node/breaker and bus/branch CGMES file does not contain
EquipmentOperation
profile, the import, including the import of topology, is done in bus/branch - Bug fix: when a switch does not have any equipment container in a CGMES file, the switch will be converted to a low impedance line during CGMES import
- Improvement of CGMES import of
TwoWindingsTransformer
andThreeWindingsTransformer
- Sort changelog for a CGMES simple update
- SSH continuous values which are imported as discrete values are now rounded, not truncated anymore
- Support CGMES import of remote regulating control for
StaticVarCompensator
Computation Manager
- Bug fix: support
LazyCreatedComputationManager.execute(ExecutionEnvironment, ExecutionHandler<R>, ComputationParameters)
Configuration
- Allow to chose the name of the default IIDM implementation instead of the hard-coded
Default
- Harmonize the configuration of default API implementation (loadflow, IIDM, etc.)
IEEE-CDF
IIDM
- Bug fix: correct log error when trying to assign an extension already assigned to another equipment
- Bug fix: ensure that traversers searching a terminal do no set back to
null
if a terminal is found - Bug fix:
InternalConnectionAdder
does not inherit fromIdentifiableAdder
anymore - Bug fix: naming of
CalculatedBus
andMergedBus
- Deprecate
AbstractConnectableXml.writeCurrentLimits
methods without anIidmXmlVersion
parameter - Merging view:
- Implement merging view modules for
DanglingLine
- Implement merging view modules for
HvdcLine
- Implement merging view modules for
MergedLine
- Implement variant manager for merging view
- Implement merging view modules for
- Refactoring of merging view of
BusView
andBusBreakerView
- Support
*.iidm.xml
as IIDM-XML extension - Update IIDM/XIIDM version from
1.0
to1.1
- Add a
regulatingTerminal
forStaticVarCompensator
- Add
b
,g
and potentiallyratioTapChanger
andphaseTapChanger
for all legs of three windings transformer - Add versioning support to IIDM extensions
- Support a new way to express voltages and angles in Node/Breaker topology
- Support reading and writing XIIDM files from previous versions
- Support reading and writing extensions from provious versions
- Add a
- Refactor the extension design to allow several implementations
- Refactor the XNode extension to follow the new API
- Refactor the ActivePowerControl to follow the new API
- Add convenient method to get a network path or a stream based on a specific IIDM version
IIDM scripting
- Bug fix: Fix the loading of the Load/Save groovy extension
Load-flow validation
- Allow to calculate branches', two windings transformers' and three windings transformers' flows while considering which ends are connected in every possible configuration
- Handle the case when nominal voltages at ends of a line are different: add a structural ratio
- Fix static VAR compensator checks to support remote control
Security analysis
- Bug fix: fix IllegalStateException with SecurityAnalysisImpl in multi-thread mode
UCTE
- Bug fix: a merged
XNode
is exported with 0 active and reactive generation - Bug fix: a merged
XNode
keeps the properties of the twoDanglingLine
that compose it - Bug fix: deals with the fact that, when a line and a 2WT have the same Id, a modified Id is generated
- Support the import of target flow of
PhaseTapChanger
from UCTE files - Update the list of accepted order codes for branches
Quality
- Aggregated javadoc automatically added to releases
- Generate javadoc for groovy modules (loadflow-scripting)
- Creation of a Technology Compatibility Kit (Tck) to reuse tests previously from
iidm-impl
testingiidm-api
- Switch from
guru.nidi:graphivz-java
library toorg.anarres.graphviz:graphviz-builder
- Update
commons-compress
version from1.17
to1.19
- Update
jackson-databind
version from2.8.11.3
to2.10.1
- Use
powsybl-parent
to refactor parentpom.xml
file
v3.1.0
Release notes
Action DSL
- Add support for generator modifications
- Change PST taps in relative
- Fix proportional scalable scaling algorithm
AFS
CGMES
- Improve HVDC converters import
- Improve two or three windings transformer import
- Improve shunts import
- Import PhaseAngleClock as an extension in three windings transformers
- Import regulating control import for SVC and T3X
- Improve CGMES update for incremental export
- Improve CGMES validation functions
- Fix fix alpha conversion
- Fix LoadBreakSwitches import
- Fix handling of duplicate RDF:ID with RDF4J
- Improve triplestore copy
Computation
Entsoe
- Fix writer used in extensions XML export (separate mode)
Groovy
IEEE CDF
- Add IEEE CDF importer
IIDM
- Change T3X model
- Add merging view module
- Fix properties access regression in groovy scripts
- Fix checks on RTC attributes related to the regulation
Scripting
- Refactor scripting module to prepare the removal of AFS
- Move everything related to IIDM and Groovy to IIDM scripting module
UCTE
- The NamingStrategy used during the export is configurable through the properties or the platform configuration
- Fix import to not lack the final character of a node line anymore
- Fix export to not export real numbers in scientific notation
Quality
- Replace Travis/AppVeyor by GitHub Actions for the continuous integration
- Update maven-checkstyle-plugin version up to 3.1.0
- Remove unused maven-build-helper-plugin
v3.0.0
Release notes
Action util
- Add iterative process for scaling on
ProportionalScalable
instances
AFS
- Detect incomplete nodes
CGMES (beta)
- Allow user to define
SSH
orSV
profile to retrieve state values - Extend support for CGMES export
- Fix CGMES import of
EquivalentInjection
- Fix CGMES import of remote regulating terminal
- Fix CGMES import of
StaticVarCompensator
- Make CGMES catalogs final
- Make public some conversion tester tools
- Partially correct CGMES import of
PhaseTapChanger
- Refactoring of CGMES import of generator regulating control
- Support CGMES import of
SVInjection
- Support CGMES import of
qPercent
(coordinated reactive control) forSynchronousMachines
- Various fixes:
- A CGMES import is considered node-breaker if and only if all
FullModel
objects that have profileEquipmentCore
orEquipmentBoundary
have alsoEquipmentOperation
orEquipmentBoundaryOperation
profile. - Conversion for phase tap changers takes into account that the associated transformer may have been considered invalid and not imported when looking for the transformed side in the cached list of transformer tap changers.
- CGMES
EquivalentInjection
attributes regulationStatusand
regulationTarget` are treated as optional, following its definition in the SSH profile. - The CGMES conversion tester has been modified so it does not use a now deprecated version of the
Importers.importData
method.
- A CGMES import is considered node-breaker if and only if all
Computation
- Add bytes into
ComputationException
Configuration
- Change method to retrieve configuration
- Use
ClassicPlatformConfigProvider
indistribution-core
- Use
TestPlatformConfigProvider
in tests
IIDM
- Add
getNetwork()
method inIdentifiable
- Add methods to retrieve the
HVDCLine
from the converter stations - Deprecate
ShuntCompensator::getMaximumB()
- Fix
AbstractTapChanger
change notifications - Fix
BusTerminal::BusBreakerView::setConnectableBus()
- Fix
NodeBreakerVoltageLevel::CalculatedBusTopology::getConnectableBus()
- Fix
StaticVarCompensator
change notifications - Publish
CoordinatedReactiveControl
extension - Publish
AbstractMultiVariantConnectable
extension - Replace
getProperties
by getter and setter - Send
NetworkListeners
a notification when a variant is added or removed - Systematically send
NetworkListeners
a notification when network values change
IIDM Network State Comparator
- Support comparator of IIDM networks' states
Loadflow
Local Computation Manager
- Fix
CompletableFuture
contract of cancel
Time series
- Fix
CalculatedTimeSeries::split(int newchunksize)
- Fix time series cleaning within mapDB by completely removing chunks
- Fix
split
precision at huge index values - Implement nonrecursive ast visitors
- Use
supercsv
to parse csv
UCTE
- Fix YNODE import/export
- Solve some issues on UCTE import of merged lines
- Support UCTE export
Variant Manager
- Improve
VariantManagerImpl::removeVariant
performance
XIIDM
- Fix HVDC line XIIDM export anonymization bug
- Fix reading of partially missing IIDM extensions in XIIDM files
- Fix
XmlUtil.readUntilEndElementWithDepth
in case of handler consuming XIIDM file
Quality
- Add automatic module name in
iidm-extensions
- Add missing modules to dependencies in
distribution-core
to get coverage report - Correct automatic module name in
sensitivity-api
- Generate individual Jacoco reports by default
- Increase code coverage
- Remove deprecated sonar configuration and try to use the default configuration
- Restore checks on java 11 normal maven executions
- Travis CI improvements
Misc
- Fix: all tests use
Jimfs
in unix mode - Move enforcer's
dependencyConvergence
from toppom.xml
todistribution-core
'spom.xml
- Use v1.0.1 of
powsybl-math-native
(MacOS support)
v2.6.1
AFS
- Fix the clean of timeseries in MapDB implementation
IIDM
- Add methods to retrieve the HVDCLine from the converter stations
- Fix the read of IIDM extensions in case of missing some XML serializer
- Fix the
BusBreakerView::setConnectableBus
in case of an invalid bus ID - Fix the algorithm to retrieve a connectableBus in a BusView from a N/B voltage level
Loadflow validation
- Assert for a valid bus from the BusView to avoid NullPointerException
Security Analysis
- Fix a regression in the selection of the computation manager (short vs long task) in security analysis sub-tasks
Quality
- Cleanup .gitignore
v2.6.0
AFS
- Add a function to retrieve a
ProjectFolder
for a project ID - Add a consistency flag in AFS to avoid access to a partially created node
CGMES (beta)
- Bug fixes
- Fix boundaries convertion for Node/Breaker networks
- Fix regulating control conversion for ratio and phase tap changers
- Fix statements processing order in RDF4J triple store implementation
- Use ltcFlag attribute when importing RTC and PTC
IIDM
- Add an optional
targetDeadband
attributes to tap changers - Add an extension for Generators and Batteries for active power control
- Add the variant ID in notifications sent by the network
- IIDM network import using alternative IIDM implementation
- Bug fixes
- Export network properties in XML
- Use the right writer to export references to terminals in XML
- Allow null regulating terminals in tap changers when it's consistent
iTools packager
- Stop bundling provided dependencies
Contingency DSL
- Support of comparison operations in DSL
- Support of ShuntCompensator and StaticVarCompensator contingencies in DSL
Computation MPI
Math
- Move math native code to powsybl-math-native
Security Analysis
- Distributed security analysis reports logs in exceptions
- Add input preprocessors for security analysis
- Bug fixes
- Fix multi-thread mode activation in security analysis
Technical debt
v2.5.2
v2.5.1
Release notes
IIDM
- Add integrity checks for Generators and Batteries
- Release integrity check for regulating terminal of tap changers
- Fix voltage, angle, connected and synchronous component number from buses that contain no NodeTerminal
Scripting
- Fix regression due to the change of the return type of
Substation::getCountry
.
v2.5.0
Release notes
CGMES (beta)
- Skip current limits if no PATL is defined
- Remove deprecated cim1 modules
- Support default boundary files
- Bug fixes:
- Fix reactive capability curves import
- Fix regulating terminal import
- Fix country code for XNodes
- Fix ConcurrentModificationException in Node mapping
Computation
- Add Javadoc for computation module
- Add extendable computation parameters
Contingencies
IIDM
- Variant can be copied into an existing one [BC#790]
- Remove deprecated
getShunt
andgetShuntStream
methods - Add
getBus
methods to network BusView and BusBreakerView - Print balance summary to a Writer instead of a Logger
- Change
getName
implementation of merged lines to get a human readable name - Add support of batteries
- An exception is thrown if no importer is found to load a network
- The import/export of a terminal reference have been moved to a specific class
- Substation's countries are optional
- Bug fixes:
- Fix removal of extensions
- Fix merged network ID modification and renaming
- Fix bus name in BusAdder
iTools
- Fix handling of spaces in paths
Loadflow validation
Math
- Add Javadoc for graph module
- Add Javadoc for matrix module
- Add
add
method to sparse matrix - Rename some methods in matrix API
Security analysis
- Refactor SecurityAnalysisBuilder, make the API cleaner
- LimitViolationDetector has access to the current contingency
- LimitViolationDetector have been moved to
com.powsybl.security.detectors
- Get logs from a security analysis computation
Quality
- Add TopIssue GitHub App.
- Add a link to Spectrum community
- Add a link to Javadoc.io