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

Merge remote-tracking branch 'origin/master'

parents 596787fc 040aa97e
......@@ -40,13 +40,11 @@ def al_doping(bypass_dbr=True):
def reflectivity(bypass_dbr=True,
start_wavelength=800e-9,
stop_wavelength=900e-9,
def reflectivity(sl,
start_wavelength=700e-9,
stop_wavelength=1000e-9,
electric_field=0.,
n_points=100,
l_eam_clad=10e-9,
l_vcsel_clad=15e-9,
n_points=300,
plot=True):
wavelength = np.linspace(start_wavelength, stop_wavelength, num=n_points)
r = np.zeros(len(wavelength))
......@@ -54,14 +52,11 @@ def reflectivity(bypass_dbr=True,
# wavelength in [m]
# wavelength must be a numpy array
for i in tqdm(range(len(wavelength))):
sl = st.structure_eam_vcsel(bypass_dbr=bypass_dbr, vcsel_only=False, eam_only=True, eam_alox=True, grading_type='linear digital', mqw_alloy_type='digital',
l_eam_clad=l_eam_clad, l_vcsel_clad=l_vcsel_clad)
sl_r = op.algaas_super_lattice_refractive_index(sl, electric_field, wavelength[i], lengyel=True)
#sl_r = op.oxidation(sl_r)
sl = op.algaas_super_lattice_refractive_index(sl, electric_field, wavelength[i], lengyel=True)
#sl = op.oxidation(sl)
n = sl['refractive_index'].to_numpy(dtype=np.complex128)
d = sl['thickness'].to_numpy(dtype=float)
n = sl_r['refractive_index'].to_numpy(dtype=np.complex128)
d = sl_r['thickness'].to_numpy(dtype=float)
r[i] = tmm.reflection(n, d, wavelength[i])
......
......@@ -12,7 +12,7 @@ import transfer_matrix_method as tmm
def reflectivity_from_growth_speed_2x2(bypass_dbr=True, delta_speed=0.1, start_wavelength=700e-9, stop_wavelength=1000e-9, electric_field=0., n_points=200):
def reflectivity_from_growth_speed_2x2(bypass_dbr=True, delta_speed=0.1, start_wavelength=700e-9, stop_wavelength=1000e-9, electric_field=0., n_points=100):
# reflectivity computation parameters
wavelength = np.linspace(start_wavelength, stop_wavelength, num=n_points)
r = np.zeros(len(wavelength))
......@@ -36,7 +36,7 @@ def reflectivity_from_growth_speed_2x2(bypass_dbr=True, delta_speed=0.1, start_w
for j in range(len(cell_list[i])):
argument = {cell_names[i]: cell_list[i][j]}
sl = sls.structure_eam(bypass_dbr=bypass_dbr,
sl = sls.structure_eam_vcsel(bypass_dbr=bypass_dbr, eam_only=True,
**argument)
for k in range(len(wavelength)):
......@@ -52,7 +52,7 @@ def reflectivity_from_growth_speed_2x2(bypass_dbr=True, delta_speed=0.1, start_w
go.Scatter(
x=wavelength,
y=r,
name=cell_names[i] +' = ' +str(cell_list[i][j]) +' um/h'),
name=cell_names[i] +' = ' +str(int(cell_list[i][j])) +' um/h'),
row=row_num(i),
col=col_num(i),
)
......@@ -77,6 +77,7 @@ def reflectivity_from_growth_speed_2x2(bypass_dbr=True, delta_speed=0.1, start_w
# update layout properties
fig.update_layout(
title_text='reflectivity as a function of wavelength',
font_size=20,
width=1600,
)
......
......@@ -29,9 +29,9 @@ NALOX = 1.6 # oxided Al refractive index
# refractive indices at 550°C
# loads al_array, wavelength_array, n_array (real part) and k_array (imaginary part)
REFRA_DATA_550 = np.load('data/550C_AlGaAs_refractive_indices/indices_arrays.npz', allow_pickle=True)
#REFRA_DATA_550 = np.load('data/550C_AlGaAs_refractive_indices/indices_arrays.npz', allow_pickle=True)
# loads n and k coefficients to use with polyval in polynomial_fit
REFRA_MODEL_550 = np.load('data/550C_AlGaAs_refractive_indices/model.npz', allow_pickle=True)
#REFRA_MODEL_550 = np.load('data/550C_AlGaAs_refractive_indices/model.npz', allow_pickle=True)
# distributed Bragg Reflectors constants @ 850nm
......
......@@ -6,6 +6,7 @@ import calculation as cl
import optic as op
import plot as plt
import scipy.io
import structure_macro as stm
import super_lattice_structure as st
import transfer_matrix_method as tmm
......@@ -61,6 +62,15 @@ def reflectivity_eam_vcsel_clad_heatmap():
plt.plot_std_heatmap(l_eam_clad, l_vcsel_clad, r)
def reflectivity_vcsel_eam_eam_vcesl():
cl.reflectivity(stm.vcsel(),
n_points=300)
cl.reflectivity(stm.eam_classic(),
n_points=300)
cl.reflectivity(stm.eam_vcsel_classic(),
n_points=500)
def structure_for_matlab(vcsel_only=False, bypass_dbr=False, wavelength=850.5e-9):
......@@ -74,3 +84,6 @@ def structure_for_matlab(vcsel_only=False, bypass_dbr=False, wavelength=850.5e-9
n = sl['refractive_index'].apply(np.real).to_numpy(dtype=float)
scipy.io.savemat('eam_vcsel_n_lz.mat', dict(n=n, lz=lz))
import numpy as np
from globals import C, HEV, NALOX, N0, REFRA_MODEL_550, T
from globals import C, HEV, NALOX, N0, T
from sqw_lengyel_absorption import gaas_sqw_absorption_at_wavelength
......
......@@ -544,6 +544,7 @@ def plot_mult_reflectivity(wavelength, r1, wavelength2, r2):
# update layout properties
fig.update_layout(
title_text='reflectivity as a function of wavelength',
font_size=20,
width=1600,
)
......
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