multilayer_coefficients#

optika.materials.multilayer_coefficients(wavelength, direction=1, n=1, layers=None, substrate=None)[source]#

Calculate the reflection and transmission coefficients of a multilayer stack using the method described in Yeh [1988].

Parameters:
  • wavelength (Quantity | AbstractScalar) – The wavelength of the incident light in vacuum.

  • direction (float | AbstractScalar) – The component of the incident light’s propagation direction in the ambient medium antiparallel to the surface normal. Default is to assume normal incidence.

  • n (float | AbstractScalar) – The complex index of refraction of the ambient medium.

  • layers (Sequence[AbstractLayer] | AbstractLayer) – A sequence of layers representing the multilayer stack. If None, then this function computes the reflectivity and transmissivity of the ambient medium and the substrate.

  • substrate (None | Layer) – A layer representing the substrate supporting the multilayer stack. The thickness of this layer is ignored. If None, then the substrate is assumed to be a vacuum.

Return type:

tuple[PolarizationVectorArray, PolarizationVectorArray]

Notes

The reflection and transmission coefficients of the multilayer stack can be calculated using the system transfer matrix method described in Yeh [1988].

The system transfer matrix is calculated using the transfer matrices of each layer, where each consists of two parts: the refractive matrix and propagation matrix.

The refractive matrix is given by Yeh [1988] Equation 5.1-12,

(1)#\[\begin{split}W_{kij} = \frac{1}{t_{kij}} \begin{pmatrix} 1 & r_{kij} \\ r_{kij} & 1 \\ \end{pmatrix},\end{split}\]

where \(k=(s, p)\) is the polarization state, \(i=j-1\) is the index of the previous material, \(j\) is the index of the current material,

(2)#\[r_{kij} = \frac{q_{ki} - q_{kj}}{q_{ki} + q_{kj}}\]

is the Fresnel reflection coefficient between materials \(i\) and \(j\),

(3)#\[t_{kij} = \frac{2 q_{ki}}{q_{ki} + q_{kj}}\]

is the Fresnel transmission coefficient between materials \(i\) and \(j\),

\[q_{si} = n_i \cos \theta_i\]

and

\[q_{pi} = \frac{\cos \theta_i}{n_i}\]

are the \(z\) components of the wave’s momentum for \(s\) and \(p\) polarization, \(n_i\) is the index of refraction inside material \(i\), and \(\theta_i\) is the angle between the wave’s propagation direction and the vector normal to the interface inside material \(i\).

The propagation matrix takes the form

(4)#\[\begin{split}U_{kj} = \begin{pmatrix} e^{-i \beta_j} & 0 \\ 0 & e^{i \beta_j} \\ \end{pmatrix}\end{split}\]

where

\[\beta_j = \frac{2 \pi}{\lambda} n_j h_j \cos \theta_j,\]

is the phase change from propagating through material \(j\), \(\lambda\) is the vacuum wavelength of the incident light, and \(h_j\) is the thickness of material \(j\).

To compute the system transfer matrix, we find the matrix product of the \(S=N+1\) refractive matrices from each interface and the \(N\) propagation matrices from each layer

(5)#\[M_k = \left( \prod_{j=1}^N W_{kij} U_{kj} \right) W_{kNS}\]

where \(i=j-1\).

Once the system transfer matrix has been calculated, we can use Yeh [1988] Equation 5.2-3 to compute the system reflection coefficient

(6)#\[r_k = \frac{M_{k21}}{M_{k11}},\]

and Equation 5.2-4 to compute the system transmission coefficient

(7)#\[t_k = \frac{1}{M_{k11}}.\]

If we define the vectors

\[\begin{split}\vec{r} = \begin{pmatrix} r_s \\ r_p \end{pmatrix}\end{split}\]

and

\[\begin{split}\vec{t} = \begin{pmatrix} t_s \\ t_p \end{pmatrix},\end{split}\]

then the tuple \((\vec{r}, \vec{t})\) is the quantity returned by this function.