Skip to main content

ordered

Function ordered 

Source
pub fn ordered<'a>(
    slack: Option<&'a mut DistributedSlack>,
    qlimits: Option<&'a mut ReactiveLimits>,
    phase: Option<&'a mut PhaseControl>,
    voltage: Option<&'a mut TransformerVoltageControl>,
) -> Vec<&'a mut dyn OuterLoop>
Expand description

The order powsybl-open-loadflow applies by default, restricted to the loops gridoxide has: distributed slack innermost, then reactive limits, then the two tap controls.

The ordering is a physical claim rather than a convention — generators respond faster than tap changers, so a tap should be chosen against a reactive dispatch that has already settled, and re-examined when the tap move disturbs it. The loops are passed as &mut dyn rather than owned boxes so a caller keeps its concrete values and can read their reports — DistributedSlack‘s shifts, ReactiveLimits’ switches, a tap loop’s per-controller outcomes — after the run, without downcasting.