Skip to content

EMT 1/3: Core, Bus, LoadZ and VectorFit - #646

Open
lukelowry wants to merge 1 commit into
developfrom
lukel/emt-1
Open

lukelowry wants to merge 1 commit into
developfrom
lukel/emt-1

Conversation

@lukelowry

Copy link
Copy Markdown
Collaborator

Description

First of three stacked PRs that add the EMT model family. This one adds the core classes, the bus, an impedance load, and the VectorFit operator.

Proposed changes

  • Add EMT::Component and EMT::SystemModel, following the OPF design.
  • Linear models compute their Jacobian once with dependency tracking.
  • Read case and state keys by enum name with Utilities::enumKey, moved from OPF. Unknown keys throw.
  • Set absolute tolerances per model from the bus kv and the system va_base.
  • Add Bus, LoadZ, VectorFit, the case and state parsers, monitors, and INPUT_FORMAT.md.
  • Add Testing::jacobianMatchesResidual and unit tests.

Checklist

  • All tests pass.
  • Code compiles cleanly with flags -Wall -Wpedantic -Wconversion -Wextra.
  • The new code follows GridKit™ style guidelines.
  • There are unit tests for the new code.
  • The new code is documented.
  • The feature branch is rebased with respect to the target branch.
  • The CHANGELOG.md has been updated to reflect the changes.

Further comments

None.

@read-the-docs-community

read-the-docs-community Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

@lukelowry
lukelowry added this pull request to stack #649 November 5, 2026 06:21

@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.

This is awesome work!

Before we review, please document all *Impl.hpp files with Doxygen comments per developer guidelines. A little more verbose explanations what each method does together with invariants, pre- and post-conditionds, variable definitions, etc., is needed in a PR of this complexity.

@pelesh

pelesh commented Nov 5, 2026

Copy link
Copy Markdown
Collaborator
  • Set absolute tolerances per model from the bus kv and the system va_base.

Fantastic!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants