Skip to content

[Do not review yet] IOM-side port of PSI#1579 (SCUC branch formulation using MODF)#102

Draft
acostarelli wants to merge 2 commits into
mainfrom
ac/scuc
Draft

[Do not review yet] IOM-side port of PSI#1579 (SCUC branch formulation using MODF)#102
acostarelli wants to merge 2 commits into
mainfrom
ac/scuc

Conversation

@acostarelli
Copy link
Copy Markdown
Member

Bumps PNM compat to ^0.20 for VirtualMODF. Renames the NetworkModel LODF_matrix field to MODF_matrix (PNM.VirtualMODF). Adds an outages field/kwarg/getter on DeviceModel plus a _formulation_supports_outages trait that POM will specialize for AbstractSecurityConstrainedStaticBranch. Adds sparse-axis paths for post-contingency duals across dual_processing, optimization_container, decision_model_store, and add_constraint_dual. Extends Base.isempty/empty! on BranchReductionOptimizationTracker to cover constraint_map_by_type.

Bumps PNM compat to ^0.20 for VirtualMODF. Renames the NetworkModel
LODF_matrix field to MODF_matrix (PNM.VirtualMODF). Adds an outages
field/kwarg/getter on DeviceModel plus a _formulation_supports_outages
trait that POM will specialize for AbstractSecurityConstrainedStaticBranch.
Adds sparse-axis paths for post-contingency duals across dual_processing,
optimization_container, decision_model_store, and add_constraint_dual.
Extends Base.isempty/empty! on BranchReductionOptimizationTracker to
cover constraint_map_by_type.

PSI's power-specific changes (devices_models, network_models,
services_models, contingency_model, template_validation, etc.) remain
out of scope here and will follow in POM.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 19, 2026

Performance Results
Main


This branch


Adds four MODF helpers that PSI placed in core/network_model.jl but are
PSY-free, so they belong in IOM rather than POM:

- _build_network_reductions: pure PNM, drop-in.
- _validate_provided_modf_reduction!: pure PNM, drop-in.
- _template_has_outage_aware_branch: recast from PSI's
  _template_uses_security_constrained_branch to dispatch on the
  _formulation_supports_outages trait (already in IOM) rather than the
  POM-resident AbstractSecurityConstrainedStaticBranch type.
- _consolidate_device_model_outages_with_modf!: same recast; name kept.

The POM port will call these via IOM.* directly. The remaining new
helpers in PSI's network_model.jl (irreducible-bus discovery for
monitored components, instantiate_network_model! updates) stay POM-bound
because they need PSY.System / PSY.Branch / PSY.has_time_series / etc.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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