Releases: powsybl/powsybl-core
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
v2.4.1
v2.4.0
Release notes
CGMES (beta)
- Correct missing or invalid data in CGMES files and log these corrections
- Fix bug with angle and tension of buses
- Fix bug with internal connections
- Fix bug with p0 and q0 for
EnergyConsumer
- Resilient to special double values and invalid ID in CGMES files
- Support for import of CGMES files in Node/Breaker topology into IIDM files in Node/Breaker topology
Computation
- Local computation manager hangs when a
java.lang.Error
is thrown
iAL
- Support for
getShunt()
,getShuntCount()
,getShunts()
andgetShuntStream()
methods in iAL
Import/Export
- Allow global import/export parameters configuration for all exporters and importers
iTools
- Allow global import/export parameters configuration in
iTools
commands using import or export - Display the list of available
SecurityAnalysis
extensions with theiTools
commandplugins-info
Loadflow-validation
- Support to validate zero-impedance lines
Quality
- Add javadoc for matrix package
- Migrate to
guru.nidi:graphviz-java
Time series
- Fix bug in
RegularTimeSeriesIndex.getPointCount
method for huge values - Allow to have more than 2GB of data in
TimeSeriesTable
Topology
- Fix bug to export Bus/Breaker topology
- Fix bug to traverse Node/Breaker topology containing internal connections