Skip to content

Add reports for AC Load Flow voltage initialization#1368

Merged
SylvestreSakti merged 11 commits intomainfrom
report-ac-volt-init
Mar 26, 2026
Merged

Add reports for AC Load Flow voltage initialization#1368
SylvestreSakti merged 11 commits intomainfrom
report-ac-volt-init

Conversation

@jeandemanged
Copy link
Copy Markdown
Member

@jeandemanged jeandemanged commented Mar 12, 2026

Please check if the PR fulfills these requirements

  • The commit message follows our guidelines
  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)
  • A PR or issue has been opened in all impacted repositories (if any)

Does this PR already have an issue describing the problem?

No

What kind of change does this PR introduce?

Feature

What is the current behavior?

There are no reports for AC Load Flow bus voltage initialization. This wouldn't be a real problem if the DC_VALUES voltage initializer was not issuing reports entries making the overall report of an AC LF run confusing/misleading, e.g.

           + Load flow on network 'ieee9cdf'
              + Network CC0 SC0
                + Network info
                    Network has 9 buses and 9 branches
                    Network balance: active generation=319.64102 MW, active load=315 MW, reactive generation=0 MVar, reactive load=115 MVar
                    Angle reference bus: VL1_0
                    Slack bus: VL1_0
                 Slack bus active power (-4.64102 MW) distributed in 1 distribution iteration(s)
                 DC load flow completed (solverSuccess=true, outerloopStatus=STABLE)

What is the new behavior (if this is a feature change)?

  • Specific report entries when voltage initialization is done, mentioning the initialization method
  • In the case of security analysis, no report is made about previous values voltage initialization for contingency and operator strategy simulations - this would be of no value and would clutter the report unnecessarily. Internally to OLF, use AcLoadFlowParameters.voltageInitReport boolean to control whether the report is to be created or not.
  • Implementing above distinction between basecase simulation and contingency/operator strategy simulation revealed a bug in the case of multiple AC islands / synchronous components in security analysis: In the case of slackDistributionFailureBehavior being set to THROW:
    • the first LfNetwork would use THROW for basecase simulation, then switch to FAIL for contingency/operator strategy simulation
    • all subsequent LfNetwork simulations would use FAIL for basecase simulation - which is inconsistent
    • this has been fixed as part of this PR: AcLoadFlowParameters are now copied for each LfNetwork run from the initial values
           + Load flow on network 'ieee9cdf'
              + Network CC0 SC0
                 + Network info
                    Network has 9 buses and 9 branches
                    Network balance: active generation=319.64102 MW, active load=315 MW, reactive generation=0 MVar, reactive load=115 MVar
                    Angle reference bus: VL1_0
                    Slack bus: VL1_0
                 + Voltage initialization with method Full Voltage
                    Voltage initialization with method Voltage Magnitude
                    + Voltage initialization with method DC value
                       Slack bus active power (-4.64102 MW) distributed in 1 distribution iteration(s)
                       DC load flow completed (solverSuccess=true, outerloopStatus=STABLE)

Does this PR introduce a breaking change or deprecate an API?

  • No

Other information:

Signed-off-by: Damien Jeandemange <damien.jeandemange@artelys.com>
Signed-off-by: Damien Jeandemange <damien.jeandemange@artelys.com>
Signed-off-by: Damien Jeandemange <damien.jeandemange@artelys.com>
@jeandemanged jeandemanged marked this pull request as ready for review March 24, 2026 08:45
Comment thread src/main/java/com/powsybl/openloadflow/dc/DcValueVoltageInitializer.java Outdated
jeandemanged and others added 5 commits March 24, 2026 10:15
Signed-off-by: Damien Jeandemange <damien.jeandemange@artelys.com>
Signed-off-by: Damien Jeandemange <damien.jeandemange@artelys.com>
# Conflicts:
#	src/test/java/com/powsybl/openloadflow/OpenLoadFlowProviderTest.java
Signed-off-by: Damien Jeandemange <damien.jeandemange@artelys.com>
SylvestreSakti
SylvestreSakti previously approved these changes Mar 24, 2026
# Conflicts:
#	src/main/resources/com/powsybl/openloadflow/reports_fr.properties
#	src/test/java/com/powsybl/openloadflow/OpenLoadFlowProviderTest.java
@sonarqubecloud
Copy link
Copy Markdown

@SylvestreSakti SylvestreSakti merged commit 54fc72f into main Mar 26, 2026
7 checks passed
@SylvestreSakti SylvestreSakti deleted the report-ac-volt-init branch March 26, 2026 15:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants