Skip to content

PlaneWave structure

Leandro Acquaroli edited this page Oct 21, 2019 · 13 revisions

The Planewave is a LightSource subtype exported by ThinFilmsTools.jl in order to structure the input data of the beam or incident light in the calculations.

To call this subtype we can write

beam = PlaneWave(λ, θ; p=0.5)

where all the parameters required are described below.

Wavelength range

λ defines the wavelength range in nanometers, over which the calculations are performed. The recommended input are 1-d arrays, linear or step ranges (although not explicitly defined). For instance:

λ = LinRange(200, 1000, 801)
λ = 200:1000
λ = [245. 300. 450. 868.]
λ = [632.]

Angle of incidence

θ defines the angle of incidence (in degrees) of the wave into the first (incident) medium. It takes the same type of input as λ. For instance:

θ = LinRange(0, 90, 901)
θ = [0.] # normal incidence
θ = [45.] # 45. degrees
θ = 0:1:60

By setting θ and λ as arrays with more than one element each, the quantities that depends on them will be output as 2d-array or 3d-array.

Linear polarisation

TMMOptics.jl performs the calculations by default for both types of polarisation, p/TM and s/TE, at every run. However, for the fitting procedure used by FitTMMOptics.jl, only one polarisation is used.

The optional parameter p::Float is used when the angle of incidence is other than zero, indicating whether the wave to be considered is p/TM type or s/TE type (see here).

When p = 1.0 means that the type considered is p/TM, while when p = 0.0 sets the wave to s/TE. Particular cases when are when you have unpolarised light, in which case you can omit this parameter, taken to be 0.5 by default. When you choose p in between 0 and 1, the spectrum will be polarisation averaged. For instance, if you have a mix of polarisation in the light, say 0.4, the spectrum will be more p/TM polarised.

Explicitly, the spectrum of reflectance (R) or transmittance (T), when using FitTMMOptics.jl, will be calculated as p*Xp + (1.0 - p)*Xs, where X is either R or T. Notice that in the case when you use TMMOptics, both types are calculated and you have to do this by yourself, for instance, using the exported Utils.averagePolarisation(p, Xp, Xs) function.

Clone this wiki locally