pub struct Birefringence<'a> {
pub section_km: f64,
pub rotations: &'a [[C64; 4]],
pub dgd_s_per_km: &'a [f64],
}Expand description
The birefringence of a span cut into sections of equal length (the PMD of
comnum_channel::optical::pmd::PmdLink): section $k$ starts with the frequency-independent
rotation rotations[k] (a row-major 2 × 2 matrix applied to $(A_{x}, A_{y})$) and
then delays the two polarisations of its frame by $\mp \tau’{k} z / 2$, its DGD per
kilometre dgd_s_per_km[k] distributed along it. Without nonlinearity a span is the
lumped response $\prod{k} D_{k}(\omega) R_{k}$, $D_{k}$ the DGD of the whole section.
Fields§
§section_km: f64The length of a section (km).
rotations: &'a [[C64; 4]]The rotation at the start of every section.
dgd_s_per_km: &'a [f64]The DGD of every section per kilometre (s/km).
Trait Implementations§
Source§impl<'a> Clone for Birefringence<'a>
impl<'a> Clone for Birefringence<'a>
impl<'a> Copy for Birefringence<'a>
Auto Trait Implementations§
impl<'a> Forget for Birefringence<'a>
impl<'a> Freeze for Birefringence<'a>
impl<'a> RefUnwindSafe for Birefringence<'a>
impl<'a> Send for Birefringence<'a>
impl<'a> Sync for Birefringence<'a>
impl<'a> Unpin for Birefringence<'a>
impl<'a> UnsafeUnpin for Birefringence<'a>
impl<'a> UnwindSafe for Birefringence<'a>
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
Mutably borrows from an owned value. Read more