"'Spectroscopic Ellipsometry',\nby H. Fujiwara.\n") print("*** Air / anisotropic sample ***") print("We reproduce figure 6.16, p. 238...") # Orientations of the anisotropic substrate Phi_E = pi/2 # 1st Euler angle Theta_E_list = [0, pi/4, pi/2] # 2nd Eulet angle # Incidence angles Phi_i_list = numpy.linspace(0, 0.999*pi/2, 37) # array of Phi_i values Phi_i_deg = Phi_i_list*180/pi Kx_list = front.get_Kx_from_Phi(Phi_i_list) # array of Kx values data = [] for Theta_E in Theta_E_list: R = Berreman4x4.rotation_Euler((Phi_E, Theta_E, 0)) back.setMaterial(uniaxialMaterialRef.rotated(R)) l = [] for Kx in Kx_list: Jr = s.getJones(Kx)[0] l.append(Berreman4x4.extractEllipsoParam(Jr)) data.append(l) data = numpy.array(data) fig = pyplot.figure() ax = fig.add_subplot(111) ax.plot(Phi_i_deg, data[:,:,0,0].T) ax.set_xlabel(r"$\theta_i$") ax.set_ylabel(r"$\Psi_{pp}$") pyplot.tight_layout()
"'Spectroscopic Ellipsometry',\nby H. Fujiwara.\n") print("*** Air / anisotropic sample ***") print("We reproduce figure 6.16, p. 238...") # Orientations of the anisotropic substrate Φ_E = pi/2 # 1st Euler angle θ_E_list = [0, pi/4, pi/2] # 2nd Eulet angle # Incidence angles Φ_i_list = numpy.linspace(0, 0.999*pi/2, 300) # array of Φ_i values Φ_i_deg = Φ_i_list*180/pi Kx_list = front.get_Kx_from_Phi(Φ_i_list) # array of Kx values data = Berreman4x4.DataList() for θ_E in θ_E_list: R = Berreman4x4.rotation_Euler((Φ_E, θ_E, 0)) back.setMaterial(uniaxialMaterialRef.rotated(R)) data.append([s.evaluate(Kx) for Kx in Kx_list]) Psi = data.get('Ψ') fig = pyplot.figure() ax = fig.add_subplot(111) ax.plot(Φ_i_deg, Psi.T) ax.set_xlabel(r"$\theta_i$") ax.set_ylabel(r"$\Psi_{pp}$") pyplot.tight_layout() ############################################################################## # We reproduce figure 6.17
"'Spectroscopic Ellipsometry',\nby H. Fujiwara.\n") print("*** Air / anisotropic sample ***") print("We reproduce figure 6.16, p. 238...") # Orientations of the anisotropic substrate Φ_E = pi / 2 # 1st Euler angle θ_E_list = [0, pi / 4, pi / 2] # 2nd Eulet angle # Incidence angles Φ_i_list = numpy.linspace(0, 0.999 * pi / 2, 300) # array of Φ_i values Φ_i_deg = Φ_i_list * 180 / pi Kx_list = front.get_Kx_from_Phi(Φ_i_list) # array of Kx values data = Berreman4x4.DataList() for θ_E in θ_E_list: R = Berreman4x4.rotation_Euler((Φ_E, θ_E, 0)) back.setMaterial(uniaxialMaterialRef.rotated(R)) data.append([s.evaluate(Kx) for Kx in Kx_list]) Psi = data.get('Ψ') fig = pyplot.figure() ax = fig.add_subplot(111) ax.plot(Φ_i_deg, Psi.T) ax.set_xlabel(r"$\theta_i$") ax.set_ylabel(r"$\Psi_{pp}$") pyplot.tight_layout() ############################################################################## # We reproduce figure 6.17
numpy.set_printoptions(suppress=True, precision=4) n_i = 1.0 # incident medium is air n_o = 2.0 # ordinary index of thin layer n_e = 2.5 # extraordinary index of thin layer w = 3.04e15 # pulsation (rad/s) Phi_i = 70 * pi / 180 # 70° indicence angle (rad) d = 0.1e-6 # thin layer thickness (m) # Orientation of the anisotropy of the thin layer Phi_E = pi / 4 # 1st Euler angle Theta_E = pi / 4 # 2nd Eulet angle print("\n*** Air / anisotropic film / silicon substrate ***") filmMaterialRef = Berreman4x4.UniaxialNonDispersiveMaterial(n_o, n_e) R = Berreman4x4.rotation_Euler((Phi_E, Theta_E, 0)) filmMaterial = filmMaterialRef.rotated(R) print("\nPermittivity tensor of the anisotropic film (eq 6.63, p. 241):") print(filmMaterial.getTensor()) """ matrix([[ 4.5625, -0.5625, 0.7955], [-0.5625, 4.5625, -0.7955], [ 0.7955, -0.7955, 5.125 ]]) """ air = Berreman4x4.IsotropicNonDispersiveMaterial(n_i) front = Berreman4x4.IsotropicHalfSpace(air) # Front half-space Kx = front.get_Kx_from_Phi(Phi_i) print("\nValue of Kx: {:.4f}".format(Kx)) """ Kx = 0.9397