Gain{ }¶
- Calling sequence
Gain{ }
- Functionality
Specifies optical gain calculation.
Nested keywords
Gain method¶
GainMethod¶
- Calling sequence
Gain{ GainMethod }
- Functionality
- Choose a method how the gain should be calculated:
none
or-1
= no gain calculationnoself
or0
= gain without self-consistencyself
or1
= gain with self-consistencynoselfself
or2
= gain with and without self-consistency
Once the NEGF calculation for a particular bias point has converged, the gain is calculated. The difference between self-consistent and non-self-consistent calculations is discussed in [WackerPRB2002] and [WackerAPL2005]. The self-consistent gain calculation is needed when intrasubband scattering processes are important, which is the case in THz QCLs. In mid-infrared QCLs, the gain calculation without self-consistency is found to be sufficient, and is much less time consuming.
- Example
Gain{ GainMethod = self }
Gain{ GainMethod = noself }
Non-self-consistent calculation¶
- Example
Gain{ dEPhot = 2.0 EphotonMin = 140 EphotonMax = 170 }
dEPhoto¶
- Calling sequence
Gain{ dEPhot }
- Properties
type: \(\mathrm{real\;number}\)
unit: \(\mathrm{meV}\)
- Functionality
Sets the energy spacing between two photon energies.
EphotonMin¶
- Calling sequence
Gain{ EphotonMin }
- Properties
type: \(\mathrm{real\;number}\)
unit: \(\mathrm{meV}\)
- Functionality
Sets the minimum photon energy.
EphotonMax¶
- Calling sequence
Gain{ EphotonMax }
- Properties
type: \(\mathrm{real\;number}\)
unit: \(\mathrm{meV}\)
- Functionality
Sets the maximum photon energy.
Self-consistent calculation¶
- Example
Gain{ dEPhotSelfConsistent = 2.0 EphotonMinSelfConsistent = 140 EphotonMaxSelfConsistent = 170 NMaxSelfConsistentIterations = 50 ConvergenceFactorGainSelfConsistent = 0.001 }
dEPhotoSelfConsistent¶
- Calling sequence
Gain{ dEPhotSelfConsistent }
- Properties
type: \(\mathrm{real\;number}\)
unit: \(\mathrm{meV}\)
- Functionality
Sets the energy spacing between two photon energies.
EphotonMinSelfConsistent¶
- Calling sequence
Gain{ EphotonMinSelfConsistent }
- Properties
type: \(\mathrm{real\;number}\)
unit: \(\mathrm{meV}\)
- Functionality
Sets the minimum photon energy.
EphotonMaxSelfConsistent¶
- Calling sequence
Gain{ EphotonMaxSelfConsistent }
- Properties
type: \(\mathrm{real\;number}\)
unit: \(\mathrm{meV}\)
- Functionality
Sets the maximum photon energy.
NMaxSelfConsistentIterations¶
- Calling sequence
Gain{ NMaxSelfConsistentIterations }
- Properties
type: \(\mathrm{integer}\)
- Functionality
Sets the maximum number of iterations for the gain self-consistent loop.
ConvergenceFactorGainSelfConsistent¶
- Calling sequence
Gain{ ConvergenceFactorGainSelfConsistent }
- Properties
type: \(\mathrm{real\;number}\)
- Functionality
…
Voltage range¶
- Example
Gain{ Vmin = 160 Vmax = 400 }
Vmin¶
- Calling sequence
Gain{ Vmin }
- Properties
type: \(\mathrm{real\;number}\)
unit: \(\mathrm{mV}\)
- Functionality
Sets the minimum of the potential drop per period range to save calculation time.
Vmax¶
- Calling sequence
Gain{ Vmax }
- Properties
type: \(\mathrm{real\;number}\)
unit: \(\mathrm{mV}\)
- Functionality
Sets the maximum of the potential drop per period range to save calculation time.
Choice of gauge¶
Gauge¶
- Calling sequence
Gain{ Gauge }
- Properties
type: \(\mathrm{choice}\)
- Functionality
- Specifies the gauge for the Hamiltonian. This is relevant for light-carrier interaction. Calculation is faster in the Coulomb gauge.
0
orLorenz
will use the Lorentz gauge.1
orCoulomb
will use the Coulomb gauge.
- Example
Gain{ Gauge = "Lorenz" }
Self-consistent boundary¶
SelfConsistentBoundary¶
- Calling sequence
Gain{ SelfConsistentBoundary }
- Properties
type: \(\mathrm{choice}\)
choices:
yes
;no
- Functionality
…
- Example
Gain{ SelfConsistentBoundary = }
Gain clamping¶
Gain clamping is relevant to the simulation of quantum lasers. When the modal gain \(g_c\) reaches the cavity losses, lasing starts and the gain is clamped to the cavity losses, that is
The modal gain (or cross-section gain) is defined as
where \(g\) is the material gain in the active region and \(\Gamma\) the overlap factor between the cavity mode and the active region.
- Example
Gain{ GainClamping = yes OverlapFactor = 0.9 }
GainClamping¶
- Calling sequence
Gain{ GainClamping }
- Properties
choices:
yes
;no
default:
no
- Functionality
If
GainClamping = yes
, gain clamping condition is considered above lasing threshold.
Note
In the case of gain clamping, the electric field value of the light (EMmode{ ElectricField }) should be either not specified or set to zero. Indeed, for gain clamping, the electric field in the cavity is adjusted self-consistently so that the modal gain \(g_c\) for this photon energy matches the specified cavity losses \(\alpha\).
OverlapFactor¶
- Calling sequence
Gain{ OverlapFactor }
- Functionality
Sets the overlap factor between the cavity mode and the active region. If not specified, the default value is assumed to be 1.0 (i.e. perfect overlap between the active region and cavity mode).
Wall plug efficiency¶
The internal wall plug efficiency (WPE) is calculated when gain clamping occurs. It is defined as
where \(U\) is … and \(I\) is the current. If the front mirror losses are specified, the external WPE is output as
where \(\alpha_\mathrm{fm}\) is the front mirror losses.
Note
The cavity losses is related to the front mirror losses via
where \(\alpha_\mathrm{bm}\) and \(\alpha_\mathrm{waveguide}\) are the losses due to the back mirror and waveguide, respectively.
- Example
Gain{ CavityLosses = 2.76 FrontMirrorLosses = 2.26 }
CavityLosses¶
- Calling sequence
Gain{ CavityLosses }
- Properties
type: \(\mathrm{real\;number}\)
unit: \(\mathrm{cm^{-1}}\)
- Functionality
Specifies cavity loss.
FrontMirrorLosses¶
- Calling sequence
Gain{ FrontMirrorLosses }
- Properties
type: \(\mathrm{real\;number}\)
unit: \(\mathrm{cm^{-1}}\)
- Functionality
Sets the front mirror loss \(\alpha_\mathrm{fm}\).
Note
Please check out an example of mid-infrared QCL results in Overview.
Threshold¶
- Example
Gain{ Threshold = yes RefineThreshold = }
Note
Temperature-voltage sweep is available in the C# version and will be implemented in the C++ version as well. Here, the value of the last calculated bias value below threshold bias is used as a starting point of the following bias sweep at the next temperature.
Threshold¶
- Calling sequence
Gain{ Threshold }
- Properties
type: \(\mathrm{choice}\)
choices:
yes
;no
- Functionality
If
Threshold = yes
, the voltage sweep is performed until the threshold condition is fulfilled (i.e. the maximum gain matchesCavityLosses
). The threshold bias and current are then interpolated based on the calculated bias points.
RefineThreshold¶
- Calling sequence
Gain{ RefineThreshold }
- Properties
type: \(\mathrm{choice}\)
choices:
yes
;no
- Functionality
…