pub enum IslandStatus {
Converged,
MaxIterationsReached,
Singular,
NoReferenceBus,
AmbiguousReferenceBus,
}Expand description
Per-connected-component outcome of a multi-island power-flow solve (see
network::connected_components/classify) — one shared Newton-Raphson
call across every solvable component’s unknowns at once (the Y-bus has
no coupling between disconnected components, so this is mathematically
equivalent, iteration for iteration, to solving each independently), with
per-component status recovered afterward rather than tracked live.
Variants§
Converged
This component’s own mismatch is below tol in the final buses
state, regardless of the overall multi-component solve’s status.
MaxIterationsReached
The overall solve ran out of iterations, and this component’s own
mismatch is still above tol.
Singular
The overall solve hit a singular Jacobian, and this component’s own
mismatch is still above tol. Best-effort, not precise: every
backend solves one combined sparse factorization and detects
singularity via a finiteness check on the result vector (see
sparse.rs), not a specific failing pivot/row — there is no way to
attribute a singular failure to one particular component in general,
so every still-unconverged component is marked Singular when the
overall result is Singular, whether or not it was the actual cause.
NoReferenceBus
This component had no Slack bus at all — every member bus was
pinned to a fixed V = 0, P = Q = 0 placeholder
(network::mark_unreferenced_islands) instead of being solved; its
bus values are not a power-flow result, just the marker value.
There is no principled way to fabricate a reference bus for a
genuinely sourceless island, so this is never attempted.
AmbiguousReferenceBus
This component had more than one Slack bus. Left in the shared
solve unmodified (its non-slack buses are still live unknowns): two
independently-fixed slack voltages in one connected component is
physically over-determined, not necessarily numerically singular, so
Newton-Raphson can converge to a result that satisfies neither
slack’s true power balance. This verdict is decided once, before the
solve, and is never overwritten by a numerically-convergent-looking
post-hoc mismatch check.
Trait Implementations§
Source§impl Clone for IslandStatus
impl Clone for IslandStatus
impl Copy for IslandStatus
Source§impl Debug for IslandStatus
impl Debug for IslandStatus
impl Eq for IslandStatus
Source§impl PartialEq for IslandStatus
impl PartialEq for IslandStatus
impl StructuralPartialEq for IslandStatus
Auto Trait Implementations§
impl Freeze for IslandStatus
impl RefUnwindSafe for IslandStatus
impl Send for IslandStatus
impl Sync for IslandStatus
impl Unpin for IslandStatus
impl UnsafeUnpin for IslandStatus
impl UnwindSafe for IslandStatus
Blanket Implementations§
impl<T> Boilerplate for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T, U> Imply<T> for U
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more