/n
image/svg+xml
base = os.path.basename(sys.argv[0]).split('_')[0]print(base)loadxpl('{}.xpl'.format(base))rc.figure.figsize = 4,3V = float(sys.argv[1])ELECTRICAL.voltage_boundary[1].value = Vtask = algorithm.ThermoElectric(THERMAL, ELECTRICAL)task.run(save=False)DIFFUSION.compute_threshold()mode = OPTICAL.modes[OPTICAL.find_mode(1309.9)]def burning(P): global mode mode.power = P DIFFUSION.compute_overthreshold() m = OPTICAL.find_mode(1309.9) return OPTICAL.modes[m]P0 = brentq(burning, 0.0, 6.0, xtol=1e-6)burning(P0)Â
temperature dependenceof resistivity and junctionparameters
temperature dependenceof refractive index and gainparameters
Joule's heat, Augerrecombination
spatial hole burning
dependence of refractive indexon carrier concentration,radiative recombination
light absorption
radiative recombination,dependence of refractiveindex on carrier concentration
spatial hole burning
Dynamics
Strain
Damage
Â
Â
all typical data transfers and updatesare performed automatically
ComputeOptical Mode
Compute Gainin Active Region
Thresholdreached?
yes
no
set new voltage
All phenomena must be modeled...
All phenomena must be modeled...
In a self-consistent way...
In a self-consistent way...
Considering mutual interactions...
Considering mutual interactions...
ComputeOptical Mode
Compute Gainin Active Region
ComputeElectric Current
ComputeCarriers Diffusion
ComputeTemperature
Convergent?
yes
no
Thresholdreached?
yes
no
set new voltage
update conductivity and active region parameters
set initial parameters
yes
ComputeCarries Depletion
Stableemissionreached?
no
yes
L-I graphcreated untilrollover?
no
set new voltage
And many other possibilities...
Different algorithms for different cases
Different algorithms for different cases
ComputeOptical Mode
Compute Gainin Active Region
ComputeElectric Current
ComputeCarriers Diffusion
ComputeTemperature
Convergent?
yes
no
update conductivity and active region parameters
set initial parameters
yes
ComputeCarries Depletion
Stableemissionreached?
no
Â
Â
terr = verr = derr = BIGÂ while verr > 0.0001:Â Â Â Â Â Â Â verr = electrical.compute()Â Â Â Â Â Â Â terr = thermal.compute()Â Â Â Â Â Â Â derr = diffusion.compute()Â Â
0.20.40.60.868101214Â Â
0
P
(mW)
I
(mA)
4
I
th
(mA)
MeasurementModel0481216204681210
d
A
(
)
µm
r
A
=
LP
61
LP
61
LP
81
LP
111
LP
121
56789104567812941295129612971298129913001301
λ
(nm)
r
E
Δ
T
A,max
(K)
LP
01
LP
01
LP
01
LP
01
(µm)
10µm
How to achieve this
How to achieve this
Â
Â
Â
Â
Â
Â
Â
multiphysics simulations
σ
n
x
V
L
T
modular design
each block is one model
blocks can be rearrangedon demand
possible to reuseresults multiple timesand to convert number of dimensions
single numericalsolver for onephenomenon
flexible choiceof numerical method
fully featured programming language
scientific Matlabtm-like interface:   — rich mathematical libraries (e.g. root finding)   — easy elegant plotting functionality Â
simple control of calculation workflow
easy scripting
To find function minimum:Â from scipy import optimizex_max = optimize.fminbound(func, 0, 6)
python
power
print("effective index =", optical.modes[0].neff)
J. M. Perkel, Nature 518, 125 (2015)
we can use
Photonic Laser Simulation Kit
Photonic Laser Simulation Kit
Â
p-contacts
1.5 λ cavity
n-contacts
quantum wells
oxide layer
−8
−6
−4
−2
0
2
4
6
8
 [µm]r
6.0
6.5
7.0
7.5
8.0
8.5
9.0
9.5
10.0
 [µm]z
LP01
−8
−6
−4
−2
0
2
4
6
8
 [µm]r
6.0
6.5
7.0
7.5
8.0
8.5
9.0
9.5
10.0
 [µm]z
LP11
−8
−6
−4
−2
0
2
4
6
8
 [µm]r
6.0
6.5
7.0
7.5
8.0
8.5
9.0
9.5
10.0
 [µm]z
LP21
−8
−6
−4
−2
0
2
4
6
8
 [µm]r
6.0
6.5
7.0
7.5
8.0
8.5
9.0
9.5
10.0
 [µm]z
LP02
−8
−6
−4
−2
0
2
4
6
8
 [µm]r
6.0
6.5
7.0
7.5
8.0
8.5
9.0
9.5
10.0
 [µm]z
LP31
1240
1260
1280
1300
1320
1340
1360
Wavelength [nm]
0
500
1000
1500
2000
2500
Gain [1/cm]
300 K
310 K
320 K
330 K
340 K
350 K
ComputeOptical Mode
Compute Gainin Active Region
Thresholdreached?
yes
no
set new voltage
−20
−10
0
10
20
 [µm]r
0
2
4
6
8
10
12
 [µm]z
305
310
315
320
325
330
335
340
345
Temperature [K]
0
5
10
15
20
25
30
35
Current [mA]
0.0
0.5
1.0
1.5
2.0
2.5
3.0
Voltage [V]
300
320
340
360
380
400
420
Temperature [T]
−20
−15
−10
−5
0
5
10
15
20
 [µm]r
0
10
20
30
40
50
60
70
80
2Current Density [kA/cm]
−20
−15
−10
−5
0
5
10
15
20
 [µm]r
0
1
2
3
4
5
6
7
8
183Concentration [10/cm]
300
310
320
330
340
350
360
370
380
Junction temperature [K]
2.0
3.0
4.0
5.0
6.0
7.0
8.0
9.0
10.0
Threshold current [mA]
300
320
340
360
j [K]T
0
50
100
150
200
250
0Â [K]T
0
5
10
15
20
25
30
35
Input current [mA]
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Output power [mW]
LP01
0
5
10
15
20
25
30
35
Input current [mA]
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Output power [mW]
LP11
0
5
10
15
20
25
30
35
Input current [mA]
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Output power [mW]
LP21
0
5
10
15
20
25
30
35
Input current [mA]
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Output power [mW]
LP02
0
5
10
15
20
25
30
35
Input current [mA]
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Output power [mW]
LP31
0
5
10
15
20
25
30
35
Input current [mA]
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Output power [mW]
LP01
LP11
LP21
LP02
Total
Show us something more impressive
Show us something more impressive
Single-mode operation
Single-mode operation
p-contacts
1.0 λ cavity
n-contacts
quantum wells
tunnel junction
HIGH-CONTRASTGRATING MIRROR
Grating Mirror
Barier
Barier
−10
−5
0
5
10
 [µm]x
−10
−5
0
5
10
 [µm]y
−10
−5
0
5
10
 [µm]x
−10
−5
0
5
10
 [µm]y
−10
−5
0
5
10
 [µm]x
−10
−5
0
5
10
 [µm]y
0
5
10
15
20
25
Input current [mA]
0
50
100
150
200
Optical loss [1/cm]
HE11
HE12
HE21
How we have computed it?
Â
Lateral distribution and cold-cavity gaincomputed with 3D vectorial model
Vertical distribution computed for onegrating period
Gain contribution considered throughconfinement integral
Conclusions
Conclusions
For multi-physcis simulation of VCSELswe must consider mutual interactions
Simple analysis of one phenomenongives us some information
Much more can be learned from complexanalysis with multiple models
Â
Even very complex structures like HCGscan be handled if approached properly