Esempio n. 1
0
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',
Esempio n. 4
0
                                                    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,