ky = 0 # # PyTMM # refl_p = [] refl_s = [] for kx in ran_kx: B = tm.TransferMatrix.boundingLayer(1, n_1, np.arcsin(kx * c / w), tm.Polarization.s) C = tm.TransferMatrix.boundingLayer(1, n_1, np.arcsin(kx * c / w), tm.Polarization.p) M = scipy.linalg.block_diag(B.matrix, C.matrix) r_ss, r_sp, r_ps, r_pp, t_ss, t_sp, t_ps, t_pp = solve_transfer_matrix(M) refl_p.append(np.abs(r_pp**2)) refl_s.append(np.abs(r_ss**2)) # # PyATMM # a_refl_p = [] a_refl_s = [] for kx in ran_kx: D = build_isotropic_bounding_layer_matrix(eps_1, w, kx, ky) r_ss, r_sp, r_ps, r_pp, t_ss, t_sp, t_ps, t_pp = solve_transfer_matrix(D) a_refl_p.append(np.abs(r_pp**2)) a_refl_s.append(np.abs(r_ss**2)) assert np.isclose(r_sp, 0)
ky = 0 # # PyTMM # refl_p = [] refl_s = [] for kx in ran_kx: B = tm.TransferMatrix.boundingLayer(n_1, n_2, np.arcsin(kx*c/w), tm.Polarization.s) C = tm.TransferMatrix.boundingLayer(n_1, n_2, np.arcsin(kx*c/w), tm.Polarization.p) #a.appendRight(b) M = scipy.linalg.block_diag(B.matrix, C.matrix) r_ss, r_sp, r_ps, r_pp, t_ss, t_sp, t_ps, t_pp = solve_transfer_matrix(M) refl_p.append(np.abs(r_pp**2)) refl_s.append(np.abs(r_ss**2)) # # PyATMM # a_refl_p = [] a_refl_s = [] for kx in ran_kx: D_0 = build_isotropic_dynamic_matrix(eps_1, w, n_1*kx, ky) D_1 = build_isotropic_dynamic_matrix(eps_2, w, n_1*kx, ky) D = np.dot(np.linalg.inv(D_0), D_1) r_ss, r_sp, r_ps, r_pp, t_ss, t_sp, t_ps, t_pp = solve_transfer_matrix(D) a_refl_p.append(np.abs(r_pp**2))
# 2 D_E7_2 = build_uniaxial_dynamic_matrix(eps_o, eps_e, w, kx, ky, opticAxis=axis_2) D_E7_2p = build_uniaxial_propagation_matrix(eps_o, eps_e, w, kx, ky, d, opticAxis=axis_2) D_2 = np.dot(np.dot(np.linalg.inv(D_E7_1), D_E7_2), D_E7_2p) # 3 D_prism_2 = np.dot(np.linalg.inv(D_E7_2), D_prism) D = np.dot(D_1, np.dot(D_2, D_prism_2)) r_ss, r_sp, r_ps, r_pp, \ t_ss, t_sp, t_ps, t_pp = solve_transfer_matrix(D) a_refl_pp_.append(np.abs(r_pp**2)) a_refl_ss_.append(np.abs(r_ss**2)) a_refl_sp_.append(np.abs(r_sp**2)) a_refl_ps_.append(np.abs(r_ps**2)) a_refl_pp.append(a_refl_pp_) a_refl_ss.append(a_refl_ss_) a_refl_sp.append(a_refl_sp_) a_refl_ps.append(a_refl_ps_) plt.figure(figsize=(9, 6)) plt.imshow(a_refl_ss, interpolation='none',
eps_e, w, kx, ky, d, opticAxis=axis_2) D_2 = np.dot(np.dot(np.linalg.inv(D_E7_1), D_E7_2), D_E7_2p) # 3 D_prism_2 = np.dot(np.linalg.inv(D_E7_2), D_prism) D = np.dot(D_1, np.dot(D_2, D_prism_2)) r_ss, r_sp, r_ps, r_pp, \ t_ss, t_sp, t_ps, t_pp = solve_transfer_matrix(D) a_refl_pp_.append(np.abs(r_pp**2)) a_refl_ss_.append(np.abs(r_ss**2)) a_refl_sp_.append(np.abs(r_sp**2)) a_refl_ps_.append(np.abs(r_ps**2)) a_refl_pp.append(a_refl_pp_) a_refl_ss.append(a_refl_ss_) a_refl_sp.append(a_refl_sp_) a_refl_ps.append(a_refl_ps_) plt.figure(figsize=(9, 6)) plt.imshow(a_refl_ss,