pub struct TransferMatrix {
pub t22: Complex<f64>,
/* private fields */
}Expand description
Struct representing the transfer matrix.
Fields§
§t22: Complex<f64>t22 element of the matrix.
Implementations§
Source§impl TransferMatrix
impl TransferMatrix
Sourcepub fn compose(self, other: TransferMatrix) -> TransferMatrix
pub fn compose(self, other: TransferMatrix) -> TransferMatrix
Sourcepub fn matrix_start() -> TransferMatrix
pub fn matrix_start() -> TransferMatrix
Creates the idendity transfer matrix. Useful to start the recursion..
§Returns:
The identity transfer matrix.
Sourcepub fn matrix_propagation(n: f64, d: f64, k0: f64, k: f64) -> TransferMatrix
pub fn matrix_propagation(n: f64, d: f64, k0: f64, k: f64) -> TransferMatrix
Sourcepub fn matrix_interface_te(n1: f64, n2: f64, k0: f64, k: f64) -> TransferMatrix
pub fn matrix_interface_te(n1: f64, n2: f64, k0: f64, k: f64) -> TransferMatrix
Creates the transfer matrix representing the interafce between two layers for TE polarization.
§Arguments:
n1- The refractive index of the first layer.n2- The refractive index of the second layer.k0- The vacuum wavevector.k- The parallel component of the wavevector.
§Returns:
The interface transfer matrix for TE polarization.
Sourcepub fn matrix_interface_tm(n1: f64, n2: f64, k0: f64, k: f64) -> TransferMatrix
pub fn matrix_interface_tm(n1: f64, n2: f64, k0: f64, k: f64) -> TransferMatrix
Creates the transfer matrix representing the interafce between two layers for TM polarization./
§Arguments:
n1- The refractive index of the first layer.n2- The refractive index of the second layer.k0- The vacuum wavevector.k- The parallel component of the wavevector.
§Returns:
The interface transfer matrix for TM polarization.
Sourcepub fn matrix_interface(
n1: f64,
n2: f64,
k0: f64,
k: f64,
polarization: Polarization,
) -> TransferMatrix
pub fn matrix_interface( n1: f64, n2: f64, k0: f64, k: f64, polarization: Polarization, ) -> TransferMatrix
Creates the transfer matrix representing the interafce between two layers..
§Arguments:
n1- The refractive index of the first layer.n2- The refractive index of the second layer.k0- The vacuum wavevector.k- The parallel component of the wavevector.polarization- The polarization of the light.
§Returns:
The interface transfer matrix.
Sourcepub fn multiply(
&self,
coefficient_vector: &LayerCoefficientVector,
) -> LayerCoefficientVector
pub fn multiply( &self, coefficient_vector: &LayerCoefficientVector, ) -> LayerCoefficientVector
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TransferMatrix
impl RefUnwindSafe for TransferMatrix
impl Send for TransferMatrix
impl Sync for TransferMatrix
impl Unpin for TransferMatrix
impl UnwindSafe for TransferMatrix
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
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>
Converts
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>
Converts
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