Si_epsilon_r_value = 1
Si_mu_r_value = 1
################################################################################
################################################################################
### Air ###
Air_thickness = Air_thickness_value
Air_mu_r = Air_mu_r_value
Air_complex_index = 1 - 1j * 0
Air_incident_angle = incident_angle

### hBN ###
hBN_thickness = hBN_thickness_value
hBN_epsilon_r = hBN_epsilon_r_value
hBN_mu_r = hBN_mu_r_value
hBN_complex_index = hBN_index_real_value - 1j * 0
hBN_incident_angle = RAT.snell(Air_complex_index, hBN_complex_index, Air_incident_angle)

### Black Phosphorous, BP ###
BP_thickness = BP_thickness_value
BP_epsilon_r = BP_epsilon_r_value
BP_mu_r = BP_mu_r_value

################################################################################
# Journal Name::    Physical Review Letters
# Paper Title::     Anisotropic Particle-Hole Excitations in Black Phosphorus
# Authors::         R. Schuster, J. Trinckauf, C. Habenicht, M. Knupfer, and B. Büchner
# DOI::             https://doi.org/10.1103/PhysRevLett.115.026404
# Year::            2015
BP_epsilon1_ac_fileName = '../Data/import_data/BP_ac_epsilon1_NIR_VIS_Schuter.txt'
BP_wavelength_epsilon1_ac_nm, BP_epsilon1_ac_real_interpolate = RAT.load_epsilons_data(BP_epsilon1_ac_fileName, delimiter=', ', unit='eV', columnNumber='2')
BP_epsilon1_zz_fileName = '../Data/import_data/BP_zz_epsilon1_NIR_VIS_Schuter.txt'
def CalculateRAT_A(BP_thickness, hBN_thickness):
    #   Air #
    Air_eta_s, Air_eta_p, Air_M_s, Air_M_p = RAT.LayerMatrix(Air_thickness, Air_mu_r, Air_complex_index, Air_incident_angle, wavelength, position='0')
    #   hBN #
    hBN_eta_s, hBN_eta_p, hBN_M_s, hBN_M_p = RAT.LayerMatrix(hBN_thickness, hBN_mu_r, hBN_complex_index, hBN_incident_angle, wavelength, position='1')
    #   BP #
    BP_eta_ac_s, BP_eta_ac_p, BP_M_ac_s, BP_M_ac_p = RAT.LayerMatrix(BP_thickness, BP_mu_r, BP_complex_index_ac, BP_incident_angle_ac, wavelength, position='2')
    BP_eta_zz_s, BP_eta_zz_p, BP_M_zz_s, BP_M_zz_p = RAT.LayerMatrix(BP_thickness, BP_mu_r, BP_complex_index_zz, BP_incident_angle_zz, wavelength, position='2')
    #   Au #
    Au_eta_ac_s, Au_eta_ac_p, Au_M_ac_s, Au_M_ac_p = RAT.LayerMatrix(Au_thickness, Au_mu_r, Au_complex_index, Au_incident_angle_ac, wavelength, position='3')
    Au_eta_zz_s, Au_eta_zz_p, Au_M_zz_s, Au_M_zz_p = RAT.LayerMatrix(Au_thickness, Au_mu_r, Au_complex_index, Au_incident_angle_zz, wavelength, position='3')
    Au_eta_s, Au_eta_p, Au_M_s, Au_M_p = RAT.LayerMatrix(Au_thickness, Au_mu_r, Au_complex_index, Au_incident_angle, wavelength, position='3')
    #   SiO2  #
    SiO2_eta_ac_s, SiO2_eta_ac_p, SiO2_M_ac_s, SiO2_M_ac_p = RAT.LayerMatrix(SiO2_thickness, SiO2_mu_r, SiO2_complex_index, SiO2_incident_angle_ac, wavelength, position='4')
    SiO2_eta_zz_s, SiO2_eta_zz_p, SiO2_M_zz_s, SiO2_M_zz_p = RAT.LayerMatrix(SiO2_thickness, SiO2_mu_r, SiO2_complex_index, SiO2_incident_angle_zz, wavelength, position='4')
    SiO2_eta_s, SiO2_eta_p, SiO2_M_s, SiO2_M_p = RAT.LayerMatrix(SiO2_thickness, SiO2_mu_r, SiO2_complex_index, SiO2_incident_angle, wavelength, position='4')
    #   Si  #
    Si_eta_ac_s, Si_eta_ac_p, Si_M_ac_s, Si_M_ac_p = RAT.LayerMatrix(Si_thickness, Si_mu_r, Si_complex_index, Si_incident_angle_ac, wavelength, position='last')
    Si_eta_zz_s, Si_eta_zz_p, Si_M_zz_s, Si_M_zz_p = RAT.LayerMatrix(Si_thickness, Si_mu_r, Si_complex_index, Si_incident_angle_zz, wavelength, position='last')
    Si_eta_s, Si_eta_p, Si_M_s, Si_M_p = RAT.LayerMatrix(Si_thickness, Si_mu_r, Si_complex_index, Si_incident_angle, wavelength, position='last')
    ################################################################################
    ################################################################################
    # s-polarized Light ::
    #   Air/hBN/BP_ac/Au/SiO2/Si
    totalMatrix_ac_s = RAT.TransferMatrix(Air_M_s, hBN_M_s, BP_M_ac_s, Au_M_ac_s, SiO2_M_ac_s, Si_M_ac_s)
    Rs_ac = real(RAT.Reflectance(Air_eta_s, totalMatrix_ac_s))
    As_ac = real(RAT.Absorbance(Air_eta_s, Si_eta_ac_s, totalMatrix_ac_s))
    Ts_ac = real(RAT.Transmittance(Air_eta_s, Si_eta_ac_s, totalMatrix_ac_s))
    #   Air/hBN/BP_zz/Au/SiO2/Si
    totalMatrix_zz_s = RAT.TransferMatrix(Air_M_s, hBN_M_s, BP_M_zz_s, Au_M_ac_s, SiO2_M_zz_s, Si_M_zz_s)
    Rs_zz = real(RAT.Reflectance(Air_eta_s, totalMatrix_zz_s))
    As_zz = real(RAT.Absorbance(Air_eta_s, Si_eta_zz_s, totalMatrix_zz_s))
    Ts_zz = real(RAT.Transmittance(Air_eta_s, Si_eta_zz_s, totalMatrix_zz_s))
    #   Air/hBN/BP_ac/Au/SiO2/Si
    totalMatrix_ac_p = RAT.TransferMatrix(Air_M_p, hBN_M_p, BP_M_ac_p, Au_M_ac_p, SiO2_M_ac_p, Si_M_ac_p)
    Rp_ac = real(RAT.Reflectance(Air_eta_p, totalMatrix_ac_p))
    Ap_ac = real(RAT.Absorbance(Air_eta_p, Si_eta_ac_p, totalMatrix_ac_p))
    Tp_ac = real(RAT.Transmittance(Air_eta_p, Si_eta_ac_p, totalMatrix_ac_p))
    #   Air/hBN/BP_zz/Au/SiO2/Si
    totalMatrix_zz_p = RAT.TransferMatrix(Air_M_p, hBN_M_p, BP_M_zz_p, Au_M_zz_p, SiO2_M_zz_s, Si_M_zz_p)
    Rp_zz = real(RAT.Reflectance(Air_eta_p, totalMatrix_zz_p))
    Ap_zz = real(RAT.Absorbance(Air_eta_p, Si_eta_zz_p, totalMatrix_zz_p))
    Tp_zz = real(RAT.Transmittance(Air_eta_p, Si_eta_zz_p, totalMatrix_zz_p))
    ################################################################################
    ################################################################################
    Rs = ((Rs_ac + Rs_zz) / 2)
    As = ((As_ac + As_zz) / 2)
    Ts = ((Ts_ac + Ts_zz) / 2)
    ################################################################################
    ################################################################################
    Rp = ((Rp_ac + Rp_zz) / 2)
    Ap = ((Ap_ac + Ap_zz) / 2)
    Tp = ((Tp_ac + Tp_zz) / 2)
    ################################################################################
    ################################################################################
    R_ac = ((Rs_ac + Rp_ac) / 2)
    A_ac = ((As_ac + Ap_ac) / 2)
    T_ac = ((Ts_ac + Tp_ac) / 2)
    ################################################################################
    ################################################################################
    R_zz = ((Rs_zz + Rp_zz) / 2)
    A_zz = ((As_zz + Ap_zz) / 2)
    T_zz = ((Ts_zz + Tp_zz) / 2)
    ################################################################################
    ################################################################################
    R = ((R_ac + R_zz) / 2)
    A = ((A_ac + A_zz) / 2)
    T = ((T_ac + T_zz) / 2)

    return A
Пример #3
0
Si_epsilon_r_value = 1
Si_mu_r_value = 1
################################################################################
################################################################################
### Air ###
Air_thickness = Air_thickness_value
Air_mu_r = Air_mu_r_value
Air_complex_index = 1 - 1j * 0
Air_incident_angle = incident_angle

### hBN ###
hBN_thickness = hBN_thickness_value
hBN_epsilon_r = hBN_epsilon_r_value
hBN_mu_r = hBN_mu_r_value
hBN_complex_index = hBN_index_real_value - 1j * 0
hBN_incident_angle = RAT.snell(Air_complex_index, hBN_complex_index,
                               Air_incident_angle)

### Black Phosphorous, BP ###
BP_thickness = BP_thickness_value
BP_epsilon_r = BP_epsilon_r_value
BP_mu_r = BP_mu_r_value

################################################################################
# Journal Name::    Physical Review Letters
# Paper Title::     Anisotropic Particle-Hole Excitations in Black Phosphorus
# Authors::         R. Schuster, J. Trinckauf, C. Habenicht, M. Knupfer, and B. Büchner
# DOI::             https://doi.org/10.1103/PhysRevLett.115.026404
# Year::            2015
BP_epsilon1_ac_fileName = '../Data/import_data/BP_ac_epsilon1_NIR_VIS_Schuster.txt'
BP_wavelength_epsilon1_ac_nm, BP_epsilon1_ac_real_interpolate = RAT.load_epsilons_data(
    BP_epsilon1_ac_fileName, delimiter=', ', unit='eV', columnNumber='2')