pub enum PortSemantic {
LinearPassive,
Reactive,
Nonlinear,
ControlledConductance,
VoltageConstraint,
}Expand description
Electrical behavior classification for a component port (pin pair).
Used by the compiler’s optimization legality checks to determine whether a subgraph can be safely lowered to IIR/BlackFeedback, or must remain as full MNA/WDF. Nonlinear and ControlledConductance ports create coupling barriers that prevent unsafe optimization.
Variants§
LinearPassive
Fixed impedance — R, voltage source. Safe to lower/optimize.
Reactive
Stores energy between samples — C, L. Creates time-domain coupling.
Nonlinear
I(V) is nonlinear — diode junction, BJT Vbe/Vce, tube plate. Must be solved by NR or explicit solver. Optimization barrier.
ControlledConductance
Impedance varies with external control — JFET Rds, photocoupler LDR, pot. Optimization barrier when coupled to reactive/feedback nodes.
VoltageConstraint
Voltage constraint (virtual ground, VCVS output). Defines topology.
Trait Implementations§
Source§impl Clone for PortSemantic
impl Clone for PortSemantic
Source§fn clone(&self) -> PortSemantic
fn clone(&self) -> PortSemantic
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 PortSemantic
Source§impl Debug for PortSemantic
impl Debug for PortSemantic
impl Eq for PortSemantic
Source§impl PartialEq for PortSemantic
impl PartialEq for PortSemantic
Source§fn eq(&self, other: &PortSemantic) -> bool
fn eq(&self, other: &PortSemantic) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for PortSemantic
Auto Trait Implementations§
impl Freeze for PortSemantic
impl RefUnwindSafe for PortSemantic
impl Send for PortSemantic
impl Sync for PortSemantic
impl Unpin for PortSemantic
impl UnsafeUnpin for PortSemantic
impl UnwindSafe for PortSemantic
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<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.