#[non_exhaustive]pub enum AngleDifferenceBounds {
PowerModelsPad,
ShiftCenteredPad,
Stated,
None,
}Expand description
Which angle difference bounds an OPF or power flow preparation carries.
Every bound constrains theta_from - theta_to, the MATPOWER and
PowerModels convention, which is not net of a branch’s phase shift.
The assembly options select one with with_angle_difference_bounds. Left
unselected, their correct_angle_difference_bounds flag decides as it
always has: true, the default, is Self::PowerModelsPad and false
is Self::Stated.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
PowerModelsPad
PowerModels’ ±60 degree pad exactly as its
correct_voltage_angle_differences! applies it
(correct_angle_difference_bounds): a side the source leaves
unconstrained or unusable (at or beyond ±90 degrees, the 0/0
spelling, or an inverted window) becomes ±60 degrees around zero, and
a usable stated side is kept. A branch that shifts phase by more than
60 degrees cannot meet this window; select
Self::ShiftCenteredPad or Self::Stated for such a case.
ShiftCenteredPad
The same pad centered on the branch’s phase shift, so a phase
shifting branch keeps its operating point inside the window. An
unshifted branch gets exactly Self::PowerModelsPad.
Stated
The bounds the source states (stated_angle_difference_bounds):
an absent side becomes negative or positive infinity.
None
No angle difference bound: every interval is (−∞, +∞).
Implementations§
Source§impl AngleDifferenceBounds
impl AngleDifferenceBounds
Sourcepub const fn from_correct_flag(correct: bool) -> Self
pub const fn from_correct_flag(correct: bool) -> Self
The selection the legacy correct_angle_difference_bounds flag
stands for: Self::PowerModelsPad when true, Self::Stated
when false.
Trait Implementations§
Source§impl Clone for AngleDifferenceBounds
impl Clone for AngleDifferenceBounds
Source§fn clone(&self) -> AngleDifferenceBounds
fn clone(&self) -> AngleDifferenceBounds
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for AngleDifferenceBounds
Source§impl Debug for AngleDifferenceBounds
impl Debug for AngleDifferenceBounds
Source§impl<'de> Deserialize<'de> for AngleDifferenceBounds
impl<'de> Deserialize<'de> for AngleDifferenceBounds
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for AngleDifferenceBounds
Source§impl PartialEq for AngleDifferenceBounds
impl PartialEq for AngleDifferenceBounds
Source§impl Serialize for AngleDifferenceBounds
impl Serialize for AngleDifferenceBounds
impl StructuralPartialEq for AngleDifferenceBounds
Auto Trait Implementations§
impl Freeze for AngleDifferenceBounds
impl RefUnwindSafe for AngleDifferenceBounds
impl Send for AngleDifferenceBounds
impl Sync for AngleDifferenceBounds
impl Unpin for AngleDifferenceBounds
impl UnsafeUnpin for AngleDifferenceBounds
impl UnwindSafe for AngleDifferenceBounds
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.