-
Notifications
You must be signed in to change notification settings - Fork 5
Example: Antireflection coating 2 (AR)
Leandro Acquaroli edited this page Nov 27, 2019
·
3 revisions
Let's take another example defining two AR systems with two layers plus the incident and emergent media. The parameters for each layer are taken from Macleod, Thin-Film Optical Filters (2018) Fig. 4.15.
The complete code can be found here.
using Plots, LaTeXStrings
pyplot()
using ThinFilmsToolsλi = 400 # intial wavelength [nm]
λf = 700 # final wavelength [nm]
λ = LinRange(λi, λf, λf-λi+1) # wavelength range [nm]
θ = [0.]
beam = PlaneWave(λ, θ)We have two different systems of AR with active layers being tantalum oxide and yttrium oxide, respectively. Here we explicitly defined the thicknesses as quarter and half-wavelength.
layers1 = [
LayerTMMO(RIdb.air(beam.λ)),
LayerTMMO(RIdb.dummy(beam.λ, 1.38, 0.0); type=:OT, d=1.0/4.0),
LayerTMMO(RIdb.dummy(beam.λ, 2.15, 0.0); type=:OT, d=1.0/2.0),
LayerTMMO(RIdb.bk7(beam.λ)),
]
layers2 = [
LayerTMMO(RIdb.air(beam.λ)),
LayerTMMO(RIdb.dummy(beam.λ, 1.38, 0.0); type=:OT, d=1.0/4.0),
LayerTMMO(RIdb.dummy(beam.λ, 1.90, 0.0); type=:OT, d=1.0/2.0),
LayerTMMO(RIdb.bk7(beam.λ)),
]We set the reference wavelength to be 509.8 nm, so the thickness is calculated accordingly.
λ0 = 509.8We solve for the two systems:
sol1 = tmm_optics(beam, layers1; λ0=λ0)
sol2 = tmm_optics(beam, layers2; λ0=λ0)We plot the Reflectance spectra for the two systems as follow:
plot(Spectrum1D(),
sol1.beam.λ, sol1.Spectra.Rs, label=L"Ta$_2$O$_5$",
line=(:solid),
ylims=(0.0, 0.025), xlims=(sol1.beam.λ[1], sol1.beam.λ[end]))
plot!(Spectrum1D(), sol2.beam.λ, sol2.Spectra.Rs,
label=L"Y$_2$O$_3$", line=(:dashdot))
gui()
And the indices profiles as well, for tantala and yttria, respectively:
plot(RIprofile(), sol1)
gui()
plot(RIprofile(), sol2)
gui()