Sienna-Platform / Sienna-Platform/PowerOperationsModels.jl
Support intra-horizon topology changes
@m-bossart is already working on this.
Since Aug 7, 2026.
- Dominant language
- Julia
- Stars
- 2
- Forks
- 1
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 26
Description
Today a component is either in the model for the entire horizon or absent
entirely. There is no way to represent a line going out of service midway
through the day.
Current state
- Availability is a build-time boolean (
get_available_components→IS.get_available). NetworkModel.network_matrixis a single matrix for the whole horizon.- DCP ohm law uses a constant
bfor everyt; PTDF uses one column per branch for everyt. - PSY outage attributes (
PlannedOutage,FixedForcedOutage) exist but POM never reads them.
Note that driving a BranchRatingTimeSeriesParameter to zero does not emulate an
outage — impedance is unchanged, so the line still carries flow in the PTDF/ohm law.
Proposed approach (exogenous, known outage schedule)
- Resolve PSY outage attributes into a per-timestep availability mask.
- DCP: skip the
NetworkFlowConstraintrow and the branch'sActivePowerBalance
contribution on outaged steps. - PTDF: reuse the MODF machinery from the security-constrained path.
modf_matrix[arc, spec]
already returns a full injection→flow row against the same injection variables, and
VirtualMODFshares theVirtualPTDFfactorization, so states are Woodbury updates
rather than new PTDF builds.
Known gaps
- MODF expressions are currently built only for monitored arcs; base-case coverage needs
every rated branch × state. Each(arc, state)is a serialized KLU solve — needs benchmarking. - The outaged branch itself needs its flow zeroed and rating constraint dropped.
- Islanding: MODF handles it at the matrix level (
is_islanding,bus_island_labels), but
the power balance does not —subnetworksis one partition applied to allt. Affects DCP equally. - Outage registration currently skips silently on failure and falls back to the unmodified
PTDF row. Acceptable for SC monitoring; on this path it would silently solve the intact
network and must become a hard error. - Dual/LMP path not yet traced for single-matrix assumptions.
Out of scope
Endogenous topology (optimal transmission switching) — needs branch binaries and a
disjunctive ohm law, and is structurally incompatible with PTDF.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.