Skip to content

Design for PowerFlow and PhasorDynamics Interoperability - #514

Merged
nkoukpaizan merged 5 commits into
developfrom
lukel/state-init-dev
Nov 3, 2026
Merged

nkoukpaizan merged 5 commits into
developfrom
lukel/state-init-dev

Conversation

@lukelowry

@lukelowry lukelowry commented Jul 31, 2026 •

Copy link
Copy Markdown
Collaborator

Description

Partially addresses #466, #405, and allow us to close related PR #391

Introduce .state.json as a shared initialization/state artifact for PowerFlow and PhasorDynamics (and compatible with EMT), separating operating state and dispatch from the static .case.json model definition. This provides a file-based interoperability boundary without coupling the model implementations.

The proposed format is documented in STATE.md. Further justification for the design is provided in that document

Proposed changes

  • Document the proposed state-file structure and migration path.
  • Store bus voltages and device current injections under buses.
  • Store device dispatch, connectivity, tap, phase, and other initialization states under devices.
  • Add a Hawaii example at nominal steady-state dispatch.

If approved, I would like to include a *.state.json for each case as an initial artifact. I only committed an example for the Hawaii case.

@lukelowry
lukelowry marked this pull request as ready for review July 31, 2026 11:44
@lukelowry

Copy link
Copy Markdown
Collaborator Author

Using this approach its very easy to exchange states between PowerFlow, PhasorDynamics, and OPF (experimental), see this downstream branch. I can reliably start in steady state after changing the generator dispatch using OPF! And the only shared knowledge between the OPF/ and PhasorDynamics/ is the proposed *.state.json. This contract would make initialization of EMT much easier (which is notoriously hard)

@lukelowry
lukelowry force-pushed the lukel/state-init-dev branch from 809f6f5 to b31d6c9 Compare August 4, 2026 19:59
@lukelowry lukelowry mentioned this pull request Aug 4, 2026
7 tasks done
@lukelowry
lukelowry marked this pull request as draft August 5, 2026 06:17
@lukelowry

Copy link
Copy Markdown
Collaborator Author

Drafting since not likely to be done before release but is very important for the development of EMT and practical use.

@lukelowry
lukelowry force-pushed the lukel/state-init-dev branch 2 times, most recently from 7d804b7 to 3b0b656 Compare August 7, 2026 08:17
@pelesh pelesh added this to the Release 0.3 milestone Aug 7, 2026
@lukelowry
lukelowry force-pushed the lukel/state-init-dev branch 5 times, most recently from 7af38af to b176c66 Compare August 14, 2026 17:49
@lukelowry
lukelowry force-pushed the lukel/state-init-dev branch 3 times, most recently from 833b428 to 164d308 Compare August 24, 2026 16:07
@lukelowry
lukelowry force-pushed the lukel/state-init-dev branch 6 times, most recently from 3254a96 to 8518d24 Compare September 1, 2026 16:39
@lukelowry
lukelowry force-pushed the lukel/state-init-dev branch 5 times, most recently from 313d8d9 to 4659796 Compare September 9, 2026 20:19
@lukelowry
lukelowry force-pushed the lukel/state-init-dev branch 3 times, most recently from a433ba3 to 8fabaad Compare October 14, 2026 22:24
@lukelowry
lukelowry force-pushed the lukel/state-init-dev branch from 8fabaad to 455bc8f Compare October 22, 2026 16:59
@read-the-docs-community

read-the-docs-community Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Documentation build overview

📚 GridKit | 🛠️ Build #35598468 | 📁 Comparing 7607f67 against latest (c9a6497)

  🔍 Preview build  

216 files changed · + 120 added · ± 91 modified · - 5 deleted

+ Added

± Modified

- Deleted

@lukelowry
lukelowry force-pushed the lukel/state-init-dev branch 3 times, most recently from 0129c66 to a697c2e Compare October 28, 2026 17:18
@lukelowry
lukelowry marked this pull request as ready for review October 30, 2026 15:14
@lukelowry
lukelowry requested a review from nkoukpaizan October 30, 2026 15:14
@lukelowry
lukelowry force-pushed the lukel/state-init-dev branch 2 times, most recently from bd376cb to 990f252 Compare October 30, 2026 21:37
@lukelowry

Copy link
Copy Markdown
Collaborator Author

This is highest value right now

@nkoukpaizan nkoukpaizan added the enhancement New feature or request label Nov 2, 2026

@nkoukpaizan nkoukpaizan left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me!

@lukelowry
lukelowry force-pushed the lukel/state-init-dev branch from bcff2d3 to b31c94e Compare November 2, 2026 18:31
@pelesh
pelesh requested a review from tsybinae November 2, 2026 21:59

@pelesh pelesh left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@lukelowry
lukelowry force-pushed the lukel/state-init-dev branch from b31c94e to 97dd018 Compare November 3, 2026 00:03
@lukelowry

Copy link
Copy Markdown
Collaborator Author

alright, this is ready. This sets a good direction for how to adjust PhasorDynamics and OPF accordingly.

@nkoukpaizan
nkoukpaizan merged commit e6e224e into develop Nov 3, 2026
7 checks passed
@lukelowry lukelowry mentioned this pull request Nov 3, 2026
3 tasks done
@lukelowry
lukelowry deleted the lukel/state-init-dev branch November 3, 2026 19:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants