Commit 08bc9eaa authored by Lucas Laplanche's avatar Lucas Laplanche
Browse files

ajout calcul temps de fuite

parent c50f4510
import numpy as np
from globals import EG_GAAS, HREV, M0
from globals import EG_GAAS, HJ, HREV, HRJ, KBEV, KBJ, ME_QW, MZHH_QW, M0, Q, T
......@@ -137,4 +137,53 @@ def solve_schrodinger(sl):
v_hh = sl['heavy_hole_potential_barrier'].to_numpy()
return v_e, v_hh, eig_e, psi_e, eig_hh, psi_hh
\ No newline at end of file
return v_e, v_hh, eig_e, psi_e, eig_hh, psi_hh
def escape_time(al, qw_width, qb_width, e_field):
# al : al content [1]
# qw_width : quanrum well width [m]
# qb_width : quantum well width [m]
# e_field : electrical field [kV/cm]
# parameters dependent variables
e_field = e_field * 1e3 * 1e2 # [kV/cm] -> [V/m]
eg_algaas = EG_GAAS +1.427 * al +0.041 * al **2 # Giugni et al (1992)
me_qb = (0.067 +0.083 * al) * M0 # e - effective mass in barrier
mzhh_qb = (0.48 +0.31 * al) * M0 # heavy hole mass in barrier
delta_ev = 0.83 * al # valence band discontinuity [eV] - Yu et al (1989)
delta_ec = eg_algaas -EG_GAAS -delta_ev # conduction band discontinuity[eV]
qv = delta_ev / (delta_ev +delta_ec) # valence band offset[ / 1]
qc = 1 - qv # conduction band offset[ / 1]
delta_eg = np.abs(eg_algaas -EG_GAAS)
# ground state energy
e_el = (HJ ** 2) / (8 * Q * ME_QW * qw_width ** 2)
e_hh = (HJ ** 2) / (8 * Q * MZHH_QW * qw_width ** 2)
# field dependant barrier height for qw
h_el_qw = delta_ev -e_el -e_field * qw_width / 2
h_hh_qw = delta_ec -e_hh -e_field * qw_width / 2
# field dependant barrier height for qb
h_el_qb = abs(Q) * (delta_ev -e_el -e_field * (qw_width +qb_width) / 2)
h_hh_qb = abs(Q) * (delta_ec -e_hh -e_field * (qw_width +qb_width) / 2)
# thermoionic emission
tau_th_el = 1 / (np.sqrt(KBJ * T / (2 * np.pi * ME_QW * qw_width ** 2)) * np.exp(-h_el_qw / (KBEV * T)))
tau_th_hh = 1 / (np.sqrt(KBJ * T / (2 * np.pi * MZHH_QW * qw_width ** 2)) * np.exp(-h_hh_qw / (KBEV * T)))
# tunneling
tau_tu_el = 1 / (HRJ * np.pi / (2 * ME_QW * qw_width ** 2) * np.exp(-2 * qb_width * np.sqrt(2 * me_qb * h_el_qb) / HRJ))
tau_tu_hh = 1 / (HRJ * np.pi / (2 * MZHH_QW * qw_width ** 2) * np.exp(-2 * qb_width * np.sqrt(2 * mzhh_qb * h_hh_qb) / HRJ))
# escape time
tau_el = 1 / ((1 / tau_th_el) + (1 / tau_tu_el))
tau_hh = 1 / ((1 / tau_th_hh) + (1 / tau_tu_hh))
return tau_el, tau_hh
......@@ -70,4 +70,15 @@ def vcsel_eam_structures_description(document_folder=False):
# output the file
writer.save()
def structure_to_xlsx(structure, file_name):
# calculate the refraction index
structure = op.algaas_super_lattice_refractive_index(structure, 0., 850e-9)
writer = pd.ExcelWriter(file_name +'.xlsx', engine='xlsxwriter')
structure.to_excel(writer)
writer.save()
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment