Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Lucas Laplanche
EAM VCSEL
Commits
1640c206
Commit
1640c206
authored
Jun 30, 2021
by
Lucas Laplanche
Browse files
ajout calcul indices à 550°C
parent
9c101694
Changes
5
Hide whitespace changes
Inline
Side-by-side
calculation.py
View file @
1640c206
...
...
@@ -42,7 +42,7 @@ def al_doping(bypass_dbr=True):
def
reflectivity
(
bypass_dbr
=
Fals
e
,
def
reflectivity
(
bypass_dbr
=
Tru
e
,
start_wavelength
=
800e-9
,
stop_wavelength
=
900e-9
,
electric_field
=
0.
,
...
...
@@ -60,6 +60,7 @@ def reflectivity(bypass_dbr=False,
l_eam_clad
=
l_eam_clad
,
l_vcsel_clad
=
l_vcsel_clad
)
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
)
...
...
globals.py
View file @
1640c206
...
...
@@ -24,6 +24,7 @@ T = 300. # temperature [K]
N0
=
1.
# air refractive index
NGAAS
=
3.642
# GaAs refractive index
NAL
=
2.5702
# Al refractive index at 852.1nm
NALOX
=
1.6
# oxided Al refractive index
# distributed Bragg Reflectors constants @ 850nm
...
...
optic.py
View file @
1640c206
import
numpy
as
np
from
globals
import
C
,
HEV
,
N0
,
T
from
globals
import
C
,
HEV
,
NALOX
,
N0
,
T
from
sqw_lengyel_absorption
import
gaas_sqw_absorption_at_wavelength
from
time
import
time
as
tm
...
...
@@ -274,6 +274,24 @@ def ioffe_algaas_permittivity(al, high_frequency=True):
def
oxidation
(
super_lattice
,
eam_mesa
=
True
,
vcsel_mesa
=
False
):
for
i
in
range
(
len
(
super_lattice
)):
name
=
super_lattice
.
at
[
i
,
'name'
]
if
eam_mesa
:
if
'eam mesa AlOx 100% Al'
in
name
:
super_lattice
.
at
[
i
,
'refractive_index'
]
=
NALOX
if
vcsel_mesa
:
if
'vcsel mesa AlOx 100% Al'
in
name
:
super_lattice
.
at
[
i
,
'refractive_index'
]
=
NALOX
return
super_lattice
def
confinement_barrier_mean_al_content
(
super_lattice
,
i
):
name
=
super_lattice
.
at
[
i
+
1
,
'name'
]
al
=
0.
...
...
structure_macro.py
View file @
1640c206
...
...
@@ -4,4 +4,4 @@ import super_lattice_structure as sls
def
eam_alox
():
return
sls
.
structure_eam_vcsel
()
\ No newline at end of file
return
sls
.
structure_eam_vcsel
(
eam_alox
=
True
,
bypass_dbr
=
True
,
eam_only
=
True
)
\ No newline at end of file
super_lattice_structure.py
View file @
1640c206
...
...
@@ -76,7 +76,6 @@ def structure_eam_vcsel(vcsel_only = False,
air
=
True
top_contact
=
True
top_eam_dbr
=
True
eam_alox
=
False
eam_mqw
=
True
bot_eam_dbr
=
True
middle_contact
=
True
...
...
@@ -135,7 +134,8 @@ def structure_eam_vcsel(vcsel_only = False,
# aluminium oxide aperture
if
eam_alox
:
alox_layers
=
structure_alox
()
sl
.
drop
(
sl
.
tail
(
1
).
index
,
inplace
=
True
)
alox_layers
=
structure_alox
(
name
=
'eam mesa'
,
end_thickness
=
32e-9
)
sl
=
sl
.
append
(
alox_layers
,
ignore_index
=
True
)
...
...
@@ -219,7 +219,7 @@ def structure_eam_vcsel(vcsel_only = False,
# aluminium oxide aperture
if
vcsel_alox
:
alox_layers
=
structure_alox
()
alox_layers
=
structure_alox
(
name
=
'vcsel mesa'
)
sl
=
sl
.
append
(
alox_layers
,
ignore_index
=
True
)
...
...
@@ -664,7 +664,8 @@ def structure_middle_contact(bypass_dbr = False,
return
sl
,
previous_layer_is_dbr
def
structure_alox
(
period
=
10
,
def
structure_alox
(
name
=
'??? mesa'
,
period
=
10
,
alox_thickness
=
30e-9
,
end_thickness
=
28e-9
,
alox_mean_al
=
0.98
,
...
...
@@ -693,14 +694,14 @@ def structure_alox(period = 10,
# digital alloy
for
i
in
range
(
period
):
sl
=
sl
.
append
(
pd
.
DataFrame
([[
'
AlOx 90% Al'
,
true_epitaxy_thickness
(
al_90_thickness
,
v_al5
+
v_ga6
,
al5
=
True
,
ga6
=
True
),
al_90
,
2e18
,
0.
,
True
,
False
,
True
,
False
]],
sl
=
sl
.
append
(
pd
.
DataFrame
([[
name
+
'
AlOx 90% Al'
,
true_epitaxy_thickness
(
al_90_thickness
,
v_al5
+
v_ga6
,
al5
=
True
,
ga6
=
True
),
al_90
,
2e18
,
0.
,
True
,
False
,
True
,
False
]],
columns
=
[
'name'
,
'thickness'
,
'al'
,
'na'
,
'nd'
,
'ga6'
,
'ga11'
,
'al5'
,
'al12'
]),
ignore_index
=
True
)
sl
=
sl
.
append
(
pd
.
DataFrame
([[
'
AlOx 100% Al'
,
true_epitaxy_thickness
(
al_thickness
,
v_al5
,
al5
=
True
),
1.
,
2e18
,
0.
,
False
,
False
,
True
,
False
]],
sl
=
sl
.
append
(
pd
.
DataFrame
([[
name
+
'
AlOx 100% Al'
,
true_epitaxy_thickness
(
al_thickness
,
v_al5
,
al5
=
True
),
1.
,
2e18
,
0.
,
False
,
False
,
True
,
False
]],
columns
=
[
'name'
,
'thickness'
,
'al'
,
'na'
,
'nd'
,
'ga6'
,
'ga11'
,
'al5'
,
'al12'
]),
ignore_index
=
True
)
sl
=
sl
.
append
(
pd
.
DataFrame
([[
'
AlOx 90% Al'
,
true_epitaxy_thickness
(
end_thickness
,
v_al5
+
v_ga6
,
al5
=
True
,
ga6
=
True
),
al_90
,
2e18
,
0.
,
True
,
False
,
True
,
False
]],
sl
=
sl
.
append
(
pd
.
DataFrame
([[
name
+
'
AlOx 90% Al'
,
true_epitaxy_thickness
(
end_thickness
,
v_al5
+
v_ga6
,
al5
=
True
,
ga6
=
True
),
al_90
,
2e18
,
0.
,
True
,
False
,
True
,
False
]],
columns
=
[
'name'
,
'thickness'
,
'al'
,
'na'
,
'nd'
,
'ga6'
,
'ga11'
,
'al5'
,
'al12'
]),
ignore_index
=
True
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment