pub struct PowerFlowReport {
pub buses: Vec<Bus>,
pub islands: Vec<IslandReport>,
pub stats: SolveStats,
pub dc: Option<DcSolution>,
pub linear: Option<LinearReport>,
pub outer: Option<OuterLoopOutcome>,
}Expand description
Result of a full power-flow analysis: the solved (or placeholder, for
unreferenced islands) buses, plus a per-connected-component breakdown of
how each one was resolved — see solver::IslandReport/
solver::IslandStatus.
Fields§
§buses: Vec<Bus>§islands: Vec<IslandReport>Newton-Raphson’s per-component breakdown. Empty for the two direct
methods, which report through dc and
linear instead.
This is not laziness. IslandStatus::MaxIterationsReached cannot
happen without iterations, and IslandStatus::AmbiguousReferenceBus
means “over-determined, the answer may satisfy neither reference” —
which is true of AC and false of DC, where two references leave the
system perfectly well posed. Mapping onto this vocabulary would state
things about a DC solve that are not so.
stats: SolveStatsIteration count and per-iteration convergence trace. The solver
itself prints nothing (see solver::SolveStats); src/main.rs
reconstructs the progress output from this.
For the direct methods this carries only a status — Converged or
Singular — with an empty history, since they take no iterations.
dc: Option<DcSolution>Populated only by PowerFlowMethod::Dc: per-branch active flows,
per-island slack pickup, and the solve’s residual.
linear: Option<LinearReport>Populated only by PowerFlowMethod::LinearImpedance.
outer: Option<OuterLoopOutcome>What the outer loops did, when any were configured. None for a plain
Newton solve and for the two direct methods.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PowerFlowReport
impl RefUnwindSafe for PowerFlowReport
impl Send for PowerFlowReport
impl Sync for PowerFlowReport
impl Unpin for PowerFlowReport
impl UnsafeUnpin for PowerFlowReport
impl UnwindSafe for PowerFlowReport
Blanket Implementations§
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> 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