Chordal SDP#

API path: power_flow_relaxations.models.chordal_shor

class ChordalShor(scenario, configuration, clique_reduction=0.2, **kwargs)[source]#

Bases: NodalBaseModel

Chordal-decomposed Shor SDP relaxation for ACOPF.

Uses clique-wise PSD matrices from a chordal extension of the network graph, plus overlap-consistency constraints, to approximate the dense Shor SDP with improved scalability on sparse grids.

Build the chordal Shor model and clique-wise PSD variables.

Forces relaxation mode, computes a chordal extension, extracts reduced cliques, creates one PSD matrix per clique and period, and precomputes edge-to-clique mappings used by the flow constraints.

Parameters:

clique_reduction (float)

chordal_consistency_constraints()[source]#

Enforce agreement between overlapping clique PSD matrices.

A maximum spanning tree of the clique-intersection graph is used as the stitching structure. For each tree edge (C_i, C_j), all shared real/imag lifted entries corresponding to node pairs in C_i ∩ C_j are constrained equal for every period.

This ensures local clique matrices define a globally consistent lifted representation on overlaps.

get_V_vt_values()[source]#

Recover approximate bus voltages from clique-based SDP matrices.

For each period, aggregates clique matrix entries into a global lifted matrix, symmetrizes and PSD-completes it, extracts a rank-1 approximation from the dominant eigenpair, rotates the result to the reference angle, and returns (V_d, V_q) per node and period.

Return type:

dict

power_constraints()[source]#

Add AC power-flow relaxation constraints in clique-matrix form.

Enforces PSD-block symmetry, voltage-magnitude bounds, and active/reactive flow equations with tolerance bands, then adds current-rating and inter-clique consistency constraints.

reference_constraints()[source]#

Anchor the voltage-angle reference bus in the lifted space.

Enforces unit reference magnitude and zero quadrature cross terms so the global angle reference is fixed.