Skip to content

Design for PowerFlow and PhasorDynamics Interoperability - #514

Draft
lukelowry wants to merge 4 commits into
developfrom
lukel/state-init-dev
Draft

Design for PowerFlow and PhasorDynamics Interoperability#514
lukelowry wants to merge 4 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 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 from b31d6c9 to 7d804b7 Compare August 6, 2026 14:41
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.

1 participant