In this example, we simulate an AlGaInAs-InP Fabry-Perot multi-quantum well laser diode including the self-heating effects. Calculated L-I curves with power roll-off as a result of self-heating at different ambient temperatures will be compared to the results reported in the literature.
Overview
Understand the simulation workflow and key results
Laser self-heating limits the output power and efficiency of the laser during the operation. In this case, power rolls off due to reduced gain and increased leakage at higher temperatures. To model self-heating effects, various heat sources (Joule heating, nonradiative recombination heating, and absorption heating), as well as thermionic leakage mechanism, should be considered and solved for using heat equation. For this purpose, the laser model now includes various options for the temperature dependence of main laser parameters, ambient temperature and heat generation, and conduction. It is strongly recommended to use the latest version of Ansys Lumerical products.
Step 1: Optical Mode Simulation
The first step is to calculate the optical mode profile and extract the effective index and group index of the fundamental (TE) mode as well as its confinement factor with respect to the gain medium. These are all calculated in the vicinity of the nominal target lasing frequency and are expected to be locally weakly frequency-dependent. This calculation is done using the FDE solver.
Step 2: Gain Medium Simulation
Using the MQW Gain Solver, a 4x4 k•p calculation of the electronic bandstructure in the MQW gain medium is performed and the electronic bandgap, stimulated, and spontaneous emission spectra are extracted as a function of carrier density and temperature. MQW is a part of the multiphysics package (along with CHARGE, FEEM, and other products) and can be run within FE IDE environment with a graphical user interface. MQW can also be used through script commands in which case it can be run from any Ansys Lumerical product. In this case it can be run either in FDE/FEEM (needed in the previous step) or INTERCONNECT (needed for the following step). The MQW GUI is included in this example. For the MQW script commands method please check one of our other examples.
In this example, due to high barrier thickness QWs can be considered uncoupled. In this case calculations can be performed for a single QW to reduce simulation time. At the end of calculations, the results are scaled to represent the full number of QWs. The electric field is set to zero, which is a good approximation for the forward bias laser diode near and above threshold.
From the calculated gain as a function of carrier density and temperature, we find the threshold density and differential gain and represent them as a first-order polynomial in temperature. This information will be used in the TWLM model in the next step.
Step 3: 1D Traveling-Wave Laser Simulation
Using the TWLM element running in INTERCONNECT a time-domain 1D laser simulation is performed using a sweep over different drive currents, at different temperatures. This will be done considering the self-heating effects and also for the isothermal case. The optical power emitted in steady-state may then be plotted as a function of drive current to generate the L-I curve for both cases and compared to the reference. Also, different current components, temperature vs current over the threshold and spatial temperature profile are plotted.
Run and results
Instructions for running the model and discussion of key results
Step 1: Optical mode calculation
- Launch MODE and change directory to where the application files are saved.
- Run the script input.lsf . This will initialize input data and simulation configuration parameters that are required for all the three steps. This data will be saved in Piprek2002Laser.json which will be called later on by scripts in different steps when needed.
- Run the script runFDEmaterial.lsf . This will calculate the refractive index of the materials as a function of frequency and import it into the optical simulation.
- Run the script runFDE.lsf. This will calculate the effective index as a function of frequency, group index, and confinement factor. The script requires the safe-mode to be turned off.
The effective and group indices, as well as the confinement factor used in the subsequent steps are stored in wgSweep.neff, wgSweep.ng , and wgSweep.confinement_factor , respectively. These results will also be stored in the file Piprek2002Laser _opt.json . The confinement factor and refractive indices in different layers correspond to the results in ref. [1], since we use the same index model.
Step 2. Gain medium calculation
- Launch MQW solver, which will open a FE IDE with an MQW solver object in it, and change directory to where the application files are saved.
- (Optional step, if alloy composition is changed in input.lsf ) Open template project file mqw.ldev in FE IDE. Delete the well and barrier material and create new materials for new alloy composition. This can be done by opening Electrical and Thermal database, selecting AlGaInAs, selecting "create semi" in the lower left corner and setting the name and alloy composition x and y. Save the file and open runMQW.lsf . Set the names of new well and barrier materials (both global names and Ct names) in the variables at the top of runMQW.lsf file.
- Run the script runMQW.lsf .
- Run the script runMQW_postprocess.lsf .
Script runMQW.lsf will first open mqw.ldev template file that has AlGaInAs material properties for wells and barriers and MQW solver object predefined. The layer stack is defined and visualized in the MQW solver object edit window. The MQW solver object does not require a separate geometry and simulation region definition, as everything can be defined within the MQW solver object edit window. The script file will then modify certain material and solver properties as defined by the user in file input.lsf , save the project file under a new name (to avoid modifying the template file mqw.ldev ), and run the gain simulation for the given temperatures and carrier densities. At the end it will plot stimulated emission (gain), as shown below. These results are also stored in a Lumerical json file Piprek2002Laser_mqw .json .
Script runMQW_postprocess.lsf will postprocess gain data to calculate peak gain and differential gain as a function of carrier density for different temperatures, as shown below. After that the script will extract the first order polynomial models in temperature for the transparency density and differential gain to be used in the INTERCONNECT (TWLM) simulation step. These results are also stored in a Lumerical json file Piprek2002Laser_mqw_postprocess .json .
From the peak gain and differential gain plots we can extract the transparency density and differential gain as:
$$
N_{\text {tr }}(T)=N_{\text {tr }}(300)+C_{\text {N}}T
$$
$$
a(T)=a(300)+C_{\text {a}}T
$$
where \(N_{\text {tr }}\) is the transparency density, \(a\) is the differential gain (gain coefficient in TWLM model), \(C_{\text {N}}\) and \(C_{\text {a}}\) are linear coefficients, and \(N_{\text {tr }}(300)\) and \(a(300)\) are the transparency density and differential gain at room temperature. From the plots we extract the following approximate values for these quantities, which will be used to set Lorentzian gain parameters in the INTERCONNECT simulation:
$$
N_{\text {tr }}(300)= 1.35\times{10^{24}\frac{1}{m^{3}}}
$$
$$
C_{\text {N }}= 5.36\times{10^{21}\frac{1}{m^{3}K}}
$$
$$
a(300)= 1.89\times{10^{-19}m^{2}}
$$
$$
C_{\text {a }}= -6.51\times{10^{-22}\frac{m^{2}}{K}}
$$
These values are a good match with the values mentioned in ref. [1]. This extraction is done automatically by the script, but the user is advised to double check the accuracy of extracted values, because it will depend on the input carrier densities. If there are no carrier density points around the transparency condition (peak gain equal to 0), the extraction may not be accurate. In that case, the simulation may be repeated after adding more input carrier density points around zero gain condition.
Step 3. 1D Traveling-Wave Laser Simulation
- Launch INTERCONNECT and change directory to where the application files are saved.
- In the input.lsf script file, set the ambient temperature variable to 300 (common.temperature), uncomment the corresponding array of values for current (twlm.li_current), and set twlm.isothermal variable to false.
- Open and run runTWLM.lsf script file. This file will open project file twlm.icp , set the TWLM options from input.lsf and set and run the sweep over current values.
- To do the simulation at the ambient temperature of 370 K, repeat steps 2 and 3, but change the ambient temperature to 370 K and uncomment the corresponding array of current values.
- To setup the simulation for isothermal simulation, repeat steps 2 to 4, but set twlm.isothermal variable to true. These simulations will exclude the effects of self-heating and only simulate the effects of increased ambient temperature. The isothermal regime may be achieved by using a pulsed current injection where the pulse fill factor is small enough to not cause any self-heating effects.
- To plot the LI curves for 300 K and 370 K, with and without the self-heating, open and run file plot_LI.lsf, while the .icp project file is still open. plot_LI.lsf assumes that all four simulations have been run (300K, 370K, with and without self-heating).
Please note that temperature and heat related options are set in the files input.lsf and twlm.icp , according to the table given below in section Important model settings and are the same for all the steps above, except that the temperature increase due to self-heating is turned off in case of isothermal simulation.
Script plot_LI.lsf will load and plot both simulated and measured data. The difference between the isothermal and self-heating simulation is the power roll-off. The measured and simulated LI curves with self-heating have a good match with ref. [1].
10. To plot how is the total injection current split between different processes in the laser open and run script plot_current_components.lsf , while the .icp project file is still open.
Depending on the user’s choice, TWLM model can save detailed diagnostic data, such as various recombination rate profiles and thermionic leakage. Script plot_current_components.lsf will post-process these detailed results and calculate and plot the current components for the self-heating simulation at 370 K ambient temperature. This can be easily modified to plot the sweep at 300 K ambient temperature. The resulting figure shows different components of current that add up to the total injection current. This result has a good match with figure 10 in ref. [1]. Notice the increase of thermionic leakage and nonradiative recombination (primarily Auger) with increasing current and temperature.
11. To plot the average active layer temperature as a function of current above threshold, open and run script plot_temperature_vs_current.lsf .
Similarly to the previous script, this will load sweep files and extract the active layer temperature profiles for each current, saved as diagnostic data in TWLM. These profiles will be spatially averaged and plotted as a function of current. The plot below shows the result from the 370 K sweep with self-heating and it has a good agreement with the maximum measured active layer temperature in ref. [1], which is around 45 K above 370 K. This is expected since the ohmic resistance responsible for Joule heating, which is dominant at high currents, is fitted due to the lack of details in the paper.
12. To plot spatial profiles of temperature and various heat sources the user can open one of the sweep files that store results and visualize results directly from GUI.
Similarly, to visualize the nonradiative recombination heat profile, for example, visualize the correspondingly named result from the list:
The total heat power can be obtained by summation over all positions. Each position represents the center of the spatial section of the travelling wave laser model.
Important model settings
Description of important objects and settings used in this model
The list below contains important TWLM model parameters for self-heating simulation that are in addition to the usual parameters needed for an isothermal simulation.
ambient temperature – This sets the ambient temperature. Laser self-heating is on top of this temperature.
nonradiative linear recombination eta
– The temperature dependence of the nonradiative linear recombination coefficient in the form
$$
A(T)=A(300)\left(\frac{T}{300}\right)^{\eta}
$$
where A(300) is the value of the nonradiative linear recombination coefficient option at 300 K.
nonradiative cubic recombination activation energy
– The activation energy for the temperature dependence of the nonradiative cubic recombination coefficient in the form
$$
C=C(300) e^{\left[\frac{E_{a}}{k}\left(\frac{1}{300}-\frac{1}{T}\right)\right]}
$$
where C(300) is the value of the nonradiative cubic recombination coefficient option at 300 K and k is the Boltzmann constant.
gain shape
– In this example the temperature dependence of gain profile is introduced through linear parameters for “gain coefficient” and “transparency density” in the form
$$
G=G\left(T_{\text {ref }}\right)+A T
$$
where T_ref is the reference temperature parameter and A is the linear parameter. Quadratic parameters can also be defined if needed. These parameters can be derived from gain simulation, as shown in step 2 using the MQW solver, or from measurements. Note that it is also possible to directly import user-defined gain spectrum as a an arbitrary function of carrier density and temperature. In the case of the user-defined gain a digital filter is created that automatically fits and interpolates gain as a function of carrier density and temperature.
enable SCH – Used to turn on the separate confinement heterostructure model. This is important for thermionic leakage.
thermionic leakage model – This model is used for calculating the thermionic leakage from the active layer.
enable self-heating – if true, the heat equation will be solved and temperature updated, otherwise an isothermal simulation at ambient temperature will be performed.
active layer thermal resistivity – this is the thermal resistivity of the active layer in the plane of quantum wells (in the direction of optical propagation in the edge emitting laser cavity).
active-layer-to-ambient thermal resistance – this is the total thermal resistance between the active layer and ambient. It may consist of several resistances connected in parallel and in series depending on device design.
effective electrical resistance – electrical resistance for Joule heating in the form I^2 R, where I is the injection current. Depending on where the electrically resistive layer is located compared to the active layer, an effective resistance placed at the location of the active layer should be defined that will have the same effect on heating the active layer as the original resistance. Another way to define this resistance would be through fitting to measurements of temperature at high injection current, where Joule heating dominates, like done in this example.
Diagnostic – set the self-heating related outputs of interest to true in the Diagnostic section of TWLM before the simulation, in order to be able to visualize them (e,g. temperature profile, thermionic leakage, heat sources).
loss density coefficient - The linear coefficient modeling the waveguide loss as a function of the QW carrier density.
When doing self-heating simulations, the analyzers, such as the optical power meter (OPWM) and the optical spectrum analyzer (OSA), should take into account only the temperature-converged results, by setting the appropriate start time for these analyzers.
The values of parameters used in this example are given in the table below:
[[25%||25%||50%]] Name | Value | Method |
ambient temperature | 300 K or 370 K | As defined in measurement |
nonradiative linear recombination eta | -2.2 | Nonradiative linear recombination coefficient includes SRH recombination and any lateral leakage. The value was chosen from eq. 3 in [1] to account for the lateral leakage temperature dependence which depends on QW mobility. |
nonradiative cubic recombination activation energy | 0.1 eV | From eq. (2) in [1] |
gain shape reference temperature | 300 K | Our choice |
gain coefficient linear parameter | -6.51e-22 m^2/K | Gain simulation in step 2 |
transparency density linear parameter | 5.36e+21 1/m^3/K | Same as above |
mode confinement factor | 0.088 | Mode simulation in step 1 |
quantum barrier height | 0.225 eV | From fig. 1 in [1], or could use MQW solver band diagram. This is essentially a band offset that depends on the band gaps, strain, and assumed band offset ratio \(\Delta E_c/\Delta E_g\) |
SCH barrier height | 0.2 eV | From fig. 1 in [1] |
quantum well effective mass | 0.05 m0 | Approximated value based on the Ansys Lumerical electrical material database in FE IDE |
quantum barrier effective mass | 0.1 m0 | Same as above |
active layer thermal resistivity | 0.25 m*K/W | From table 1 in [1] |
active-layer-to-ambient thermal resistance | 50 K/W | Equivalent total resistance calculated from the structure and data in [1] |
effective electrical resistance | 7.26 Ohm | Fitted to produce the measured temperature increase at high injection current where Joule heating dominates |
active layer bandgap | 0.953725 eV | Assuming lasing frequency of 1300 nm in free space |
loss density coefficient | 12e-22 m^2 | Waveguide loss density coefficient is chosen to fit the LI slope, like in [1] |
Parallelizing sweep in INTERCONNECT
Set how many CPUs INTERCONNECT uses for a sweep in Simulation menu/Resource configuration (e.g. add a couple of localhosts with 1 process, or add 1 local host with capacity equal to the number of desired parallel processes, keeping in mind how many free CPUs your machine has). This will parallelize the sweep and significantly reduce the total simulation time, as every sweep point is an independent simulation. Also make sure that the “number of threads” option in the Root element is set to 1, to avoid two different types of parallelization (multiprocess and multithread) combine and occupy more resources than your machine has, which may actually slow the simulation. The Root element in INTERCONNECT can be accessed by clicking on the white background, so that none of the other elements is selected.
Updating the model with your parameters
Instructions for updating the model based on your device parameters
Changing the ambient temperature
First, change common.temperature. Then modify other temperature dependent input parameters in input.lsf according to your device behavior:
- centre_frequency
- li_current (input currents should be defined such that threshold is resolved well)
Input file input.lsf is set up for 300 K by default and it also has predefined values for 370 K (these are commented out).
Changing temperature dependence of the nonradiative linear recombination coefficient
This is changed through “nonradiative linear recombination eta” parameter in the TWLM element (parameter twlm.nonradA_eta in input.lsf ). Step 3 and 4 should be rerun after this change.
Changing activation energy for the temperature dependence of the nonradiative cubic recombination coefficient
This is changed through “nonradiative cubic recombination activation energy” parameter in the TWLM element (parameter twlm.nonradC_Ea in input.lsf ). Step 3 and 4 should be rerun after this change.
To see other parameters that you can modify in this example please see “Updating the model with your parameters” in the Multi-quantum well (MQW) edge emitting laser example.
Taking the model further
Information and tips for users that want to further customize the model
To see tips on how to take this example further please see “Taking the model further” in the Multi-quantum well (MQW) edge emitting laser example.
Additional resources
Additional documentation, examples and training material
Related publications
- J. Piprek, K. White and A. J. SpringThorpe, “What Limits the Maximum Output Power of Long-Wavelength AlGaInAs/InP Laser Diodes,” IEEE JOURNAL OF QUANTUM ELECTRONICS, vol. 38, no. 9, p. 1253, 2002.