pub enum Parametrization {
Natural,
Local,
PseudoArcLength,
}Expand description
Which equation closes the n power-flow equations in n+1 unknowns.
All three share one sparsity pattern, so switching between them costs
nothing and they can be mixed along a single trace — which the driver does:
Natural is what lands exactly on a target λ and what the
event locator corrects with, whatever the trace’s nominal choice.
Variants§
Natural
λ − λ_pred = 0. Cheapest, and the only one whose continuation
parameter is meaningful to a caller — but it cannot pass the nose,
where λ stops being a valid parameter for the curve.
Local
z_k − z_k_pred = 0, with k the largest component of the tangent.
The classical Ajjarapu–Christy choice, and the default: it passes the
nose, and its border row is one entry rather than n+1. See the module
docs for why that second property decides the matter at any real size.
PseudoArcLength
tᵀ(z − z₀) − σ = 0. The most robust in principle — its bordering row
is non-orthogonal to the null vector by construction rather than by a
search — and what MATPOWER defaults to. But its row is dense, which
costs 92× a plain solve at n = 2449 against Local’s 1.4×. Worth having
for small networks and for cross-checking Local; not the default.
Trait Implementations§
Source§impl Clone for Parametrization
impl Clone for Parametrization
impl Copy for Parametrization
Source§impl Debug for Parametrization
impl Debug for Parametrization
Source§impl Default for Parametrization
impl Default for Parametrization
impl Eq for Parametrization
Source§impl PartialEq for Parametrization
impl PartialEq for Parametrization
impl StructuralPartialEq for Parametrization
Auto Trait Implementations§
impl Freeze for Parametrization
impl RefUnwindSafe for Parametrization
impl Send for Parametrization
impl Sync for Parametrization
impl Unpin for Parametrization
impl UnsafeUnpin for Parametrization
impl UnwindSafe for Parametrization
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