pub struct BranchLimits {
pub patl_a: Option<f64>,
pub tatl: Vec<TemporaryLimit>,
}Expand description
The operating limits of one branch terminal.
Terminals are kept separate because they genuinely differ: a transformer’s two windings sit at different voltages and therefore different current ratings, and CGMES/IIDM both model limits per terminal. A source that states one rating for the whole branch (UCTE does) populates both sides with the same value, which is the honest representation of what it said.
Fields§
§patl_a: Option<f64>Permanent admissible transmission loading, amperes. None = unlimited.
tatl: Vec<TemporaryLimit>Temporary ratings, in no particular order. Use
limit_for rather than indexing.
Implementations§
Source§impl BranchLimits
impl BranchLimits
Sourcepub fn is_unlimited(&self) -> bool
pub fn is_unlimited(&self) -> bool
True when this terminal has no rating of any kind — the state every branch is in before an importer that reads limits has run.
Sourcepub fn limit_for(&self, duration_s: f64) -> Option<f64>
pub fn limit_for(&self, duration_s: f64) -> Option<f64>
The rating that applies when the overload may last duration_s.
This is the tightest temporary rating whose acceptable duration is at
least duration_s, falling back to the PATL when no temporary rating
covers that long. Picking the tightest rather than the loosest is
deliberate: several TATLs may nominally cover the requested duration,
and honouring all of them means honouring the smallest.
duration_s = 0.0 asks for the most permissive instantaneous rating,
which is what an outage-instant CNEC is judged against; passing
f64::INFINITY asks for the permanent one.
Trait Implementations§
Source§impl Clone for BranchLimits
impl Clone for BranchLimits
Source§impl Debug for BranchLimits
impl Debug for BranchLimits
Source§impl Default for BranchLimits
impl Default for BranchLimits
Source§impl PartialEq for BranchLimits
impl PartialEq for BranchLimits
impl StructuralPartialEq for BranchLimits
Auto Trait Implementations§
impl Freeze for BranchLimits
impl RefUnwindSafe for BranchLimits
impl Send for BranchLimits
impl Sync for BranchLimits
impl Unpin for BranchLimits
impl UnsafeUnpin for BranchLimits
impl UnwindSafe for BranchLimits
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> 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