The PyATMM module is separated into three submodules: * transferMatrix * isotropicTransferMatrix * uniaxialTransferMatrix

transferMatrix

transferMatrix contains general functions related to the generalized transfer matrix method. Most of them are currently either non-functional or unused. The main function in this submodule is

solve_transfer_matrix(M)

Which takes a transfer matrix M and returns 8 reflectivity/transmittance coefficients -

r_ss, r_sp, r_ps, r_pp, t_ss, t_sp, t_ps, t_pp

Where r or t represent either reflectivity or transmittance and s / p signify the polarization of the initial (first) and transmitted/reflected (second) mode. E.g.

r_sp

Is the reflectivity coefficient where the incident wave was s polarized and the reflected wave is p polarized.

The s and p polarization designations are somewhat arbitrary in the current implementation - depending on how the incident wave is specified, they are not necessarily the TM and TE polarizations (for isotropic materials).

isotropicTransferMatrix

isotropicTransferMatrix contains functions related to building transfer matrices for isotropic materials:

  • build_isotropic_dynamic_matrix(eps, w, kx, ky)
  • build_isotropic_propagation_matrix(eps, w, kx, ky, d)

uniaxialTransferMatrix

uniaxialTransferMatrix contains functions related to building transfer matrices for uniaxial materials:

  • build_uniaxial_dynamic_matrix(e_o, e_e, w, kx, ky, opticAxis=([0., 1., 0.]))
  • build_uniaxial_propagation_matrix(e_o, e_e, w, kx, ky, d, opticAxis=([0., 1., 0.]))