pub struct AntiReflectionCoating {
pub n_substrate: f64,
pub n_coating: f64,
pub thickness_nm: f64,
pub wavelength_nm: f64,
}Expand description
Single-layer quarter-wave anti-reflection coating.
Fields§
§n_substrate: f64Refractive index of the substrate.
n_coating: f64Refractive index of the coating layer.
thickness_nm: f64Physical coating thickness [nm].
wavelength_nm: f64Design wavelength (for quarter-wave condition) [nm].
Implementations§
Source§impl AntiReflectionCoating
impl AntiReflectionCoating
Sourcepub fn new(
n_substrate: f64,
n_coating: f64,
thickness_nm: f64,
wavelength_nm: f64,
) -> Self
pub fn new( n_substrate: f64, n_coating: f64, thickness_nm: f64, wavelength_nm: f64, ) -> Self
Create a new AntiReflectionCoating.
Sourcepub fn optimal_n(&self) -> f64
pub fn optimal_n(&self) -> f64
Optimal coating refractive index for zero reflection: n_c = sqrt(n_s).
Sourcepub fn reflectance(&self, wl_nm: f64) -> f64
pub fn reflectance(&self, wl_nm: f64) -> f64
Approximate reflectance of the coated surface at wavelength wl_nm [nm].
Uses the thin-film two-beam interference formula:
R = (r₁² + r₂² + 2·r₁·r₂·cos δ) / (1 + r₁²·r₂² + 2·r₁·r₂·cos δ)
where r₁ = (1 − n_c)/(1 + n_c), r₂ = (n_c − n_s)/(n_c + n_s), and δ = 4π·n_c·d / λ.
Trait Implementations§
Source§impl Clone for AntiReflectionCoating
impl Clone for AntiReflectionCoating
Source§fn clone(&self) -> AntiReflectionCoating
fn clone(&self) -> AntiReflectionCoating
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AntiReflectionCoating
impl Debug for AntiReflectionCoating
impl Copy for AntiReflectionCoating
Auto Trait Implementations§
impl Freeze for AntiReflectionCoating
impl RefUnwindSafe for AntiReflectionCoating
impl Send for AntiReflectionCoating
impl Sync for AntiReflectionCoating
impl Unpin for AntiReflectionCoating
impl UnsafeUnpin for AntiReflectionCoating
impl UnwindSafe for AntiReflectionCoating
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