Commit bbfdd679 authored by Lucas Laplanche's avatar Lucas Laplanche
Browse files

ajout calcul indices à 550°C

parent 09bc7e98
......@@ -98,6 +98,7 @@ def dbr_reflectivity(start_wavelength=700e-9,
def reflectivity_heatmap(bypass_dbr=True,
eam_only=False,
start_wavelength=700e-9,
stop_wavelength=1000e-9,
electric_field=0.,
......@@ -109,6 +110,7 @@ def reflectivity_heatmap(bypass_dbr=True,
v_al12=150,
r_file_name='heatmap_r'):
time, wavelength, r = epx.reflectivity_heatmap(bypass_dbr=bypass_dbr,
eam_only=eam_only,
start_wavelength=start_wavelength,
stop_wavelength=stop_wavelength,
electric_field=electric_field,
......
......@@ -7,6 +7,7 @@ from tqdm import tqdm
import optic as op
import pandas_tools as pdt
import super_lattice_structure as sls
import transfer_matrix_method as tmm
......@@ -235,6 +236,7 @@ def reflectivity_from_growth_speed_1x1(bypass_dbr=True, delta_speed=0.1, start_w
def reflectivity_heatmap(bypass_dbr=True,
eam_only=False,
start_wavelength=700e-9,
stop_wavelength=1000e-9,
electric_field=0.,
......@@ -248,11 +250,12 @@ def reflectivity_heatmap(bypass_dbr=True,
wavelength = np.linspace(start_wavelength, stop_wavelength, num=n_wavelength)
# create the super lattice
sl = sls.structure_eam(bypass_dbr=bypass_dbr,
v_ga6=v_ga6,
v_ga11=v_ga11,
v_al5=v_al5,
v_al12=v_al12)
sl = sls.structure_eam_vcsel(bypass_dbr=bypass_dbr,
eam_only=eam_only,
v_ga6=v_ga6,
v_ga11=v_ga11,
v_al5=v_al5,
v_al12=v_al12)
# add the depth column
sl = pdt.add_depth_column(sl)
......@@ -280,12 +283,12 @@ def reflectivity_heatmap(bypass_dbr=True,
# wavelength in [m]
# wavelength must be a numpy array
for j in range(len(wavelength)):
sl_j = op.algaas_super_lattice_refractive_index(sl_i, electric_field, wavelength[j], lengyel=False)
sl_j = op.algaas_super_lattice_refractive_index(sl_i, electric_field, wavelength[j], temperature=550, lengyel=False)
n = sl_j['refractive_index'].to_numpy(dtype=np.complex128)
d = sl_j['thickness'].to_numpy(dtype=np.complex128)
r[j, i] = op.reflection(n, d, wavelength[j])
r[j, i] = tmm.reflection(n, d, wavelength[j])
return time, wavelength, r
......
......@@ -7,18 +7,31 @@ import optic as op
import plot as plt
import scipy.io
import super_lattice_structure as st
import transfer_matrix_method as tmm
def eams_heatmaps():
def eam_vcsels_heatmaps():
cl.reflectivity_heatmap(bypass_dbr=False,
n_wavelength=1080,
n_time=1920,
n_wavelength=900,
n_time=1600,
r_file_name='heatmap_r_eam_vcsel_1')
cl.reflectivity_heatmap(bypass_dbr=True,
n_wavelength=900,
n_time=1600,
r_file_name='heatmap_r_eam_vcsel_2')
def eam_heatmaps():
cl.reflectivity_heatmap(bypass_dbr=False,
eam_only=True,
n_wavelength=900,
n_time=1600,
r_file_name='heatmap_r_eam_1')
cl.reflectivity_heatmap(bypass_dbr=True,
n_wavelength=1080,
n_time=1920,
eam_only=True,
n_wavelength=900,
n_time=1600,
r_file_name='heatmap_r_eam_2')
......@@ -41,7 +54,7 @@ def reflectivity_eam_vcsel_clad_heatmap():
n = sl['refractive_index'].to_numpy(dtype=np.complex128)
d = sl['thickness'].to_numpy(dtype=float)
r[j, i] = op.reflection(n, d, 850e-9)
r[j, i] = tmm.reflection(n, d, 850e-9)
plt.plot_std_heatmap(l_eam_clad, l_vcsel_clad, r)
......
......@@ -222,7 +222,7 @@ def almuneau_complex_550C_algaas_refractive_index(al, wavelength, temperature=55
# loads al_array, wavelength_array, n_array (real part) and k_array (imaginary part)
data = np.load('data/550C_AlGaAs_refractive_indices/indices_arrays')
data = np.load('data/550C_AlGaAs_refractive_indices/indices_arrays.npz')
n = barycenter(al, data['al_array'], wavelength, data['wavelength_array'], data['n_array'])
k = barycenter(al, data['al_array'], wavelength, data['wavelength_array'], data['k_array'])
......@@ -263,7 +263,7 @@ def confinement_barrier_mean_al_content(super_lattice, i):
def find_two_nearest_indices(value, array):
# array must be a numpy array
idx0 = (np.abs(array -value)).idxmin()
idx0 = (np.abs(array -value)).argmin()
if idx0 == 0 :
idx1 = 1
......@@ -287,10 +287,10 @@ def barycenter(al, al_array, wavelength, wavelength_array, value_array):
coeff_wave_i0 = np.abs(wavelength - wavelength_array[wave_i1]) / np.abs(wavelength_array[wave_i0] - wavelength_array[wave_i1])
coeff_wave_i1 = np.abs(wavelength - wavelength_array[wave_i0]) / np.abs(wavelength_array[wave_i0] - wavelength_array[wave_i1])
value = value_array[al_i0, wave_i0] * coeff_al_i0 * coeff_wave_i0
value += value_array[al_i1, wave_i0] * coeff_al_i1 * coeff_wave_i0
value += value_array[al_i0, wave_i1] * coeff_al_i0 * coeff_wave_i1
value += value_array[al_i1, wave_i1] * coeff_al_i1 * coeff_wave_i1
value = value_array[wave_i0, al_i0] * coeff_al_i0 * coeff_wave_i0
value += value_array[wave_i0, al_i1] * coeff_al_i1 * coeff_wave_i0
value += value_array[wave_i1, al_i0] * coeff_al_i0 * coeff_wave_i1
value += value_array[wave_i1, al_i1] * coeff_al_i1 * coeff_wave_i1
value /= 4
......
OBJECTIFS
Nettoyer le code de la structure python
Nettoyer le code de la structure python.
Traiter les courbes mesurées de la refléctivité temporelle.
Les comparer aux calculs théoriques.
Faire l'épitaxie.
Faire le fit du FTIR.
Refaire le FTIR.
Vérifier quelles cellules sont ouvertes lors de l'éptiaxie d'un puit, et corriger le code en conséquence.
Modifier la fiche process pour rajouter les étapes d'oxidation.
Réinstaller crystal XE et faire les recettes EAM-VCSELs.
Faire les calculs VCSEL EAM avec oxydation eam.
Déterminer quels masques doivent etre en positif ou negatif.
ACCOMPLI
Ajout indices à 550°C.
ECHOUÉ
FTIR.
......
......@@ -30,7 +30,7 @@ def structure_eam_vcsel(vcsel_only = False,
eam_mean_al = 0.22,
l_eam_qw = 8.27e-9,
l_eam_cb = 10.3e-9,
l_eam_clad = 15e-9,
l_eam_clad = 8e-9,
amount_vcsel_qw = 3,
vcsel_mean_al = 0.22,
......
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