User Tools

Site Tools


qcl:input_file

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
qcl:input_file [2017/10/18 08:38]
thomas.grange [Definition of the struture]
qcl:input_file [2023/01/05 10:07] (current)
thomas.grange [Scattering processes]
Line 1: Line 1:
-===== Syntax of the input file =====+====== Syntax of the input file ======
  
  
 The structure to be simulated as well as all simulation parameters have to be specified in an XML file which can be edited by the users. The structure to be simulated as well as all simulation parameters have to be specified in an XML file which can be edited by the users.
-The contents of such a file, e.g. ''​THz_QCL_GaAs_AlGaAs_Fathololoumi_OptExpress2012_10K.xml'', ​are described in the following.+The contents of such a file are described in the following
 +More advanced and optional features are also described in the [[qcl:​advanced_settings]] page.
  
 ==== General syntax ==== ==== General syntax ====
Line 12: Line 13:
 <?xml version="​1.0"​ encoding="​utf-8"?>​ <?xml version="​1.0"​ encoding="​utf-8"?>​
  
-<​nextnano.QCL Version="​1.1.5">​+<​nextnano.NEGF Version="​1.1.5">​
 </​code>​ </​code>​
 === Comment Section === === Comment Section ===
Line 22: Line 23:
  <​Header>​  <​Header>​
   <​Author>​Thomas Grange</​Author>​   <​Author>​Thomas Grange</​Author>​
-  <​Content>​This is an input file for the nextnano.QCL code of Thomas Grange.+  <​Content>​This is an input file for the nextnano.NEGF code of Thomas Grange.
    ​[YuSST2010]    ​[YuSST2010]
    ​Injector doping level-dependent continous-wave operation of InP-based QCLs    ​Injector doping level-dependent continous-wave operation of InP-based QCLs
Line 104: Line 105:
  
    <​y_axis>​    <​y_axis>​
-        <​h>​0</​u> <!-- (hkl) are the Miller indices of the plane perpendicular to the y direction. --> +        <​h>​0</​h> <!-- (hkl) are the Miller indices of the plane perpendicular to the y direction. --> 
- <​k>​1</​v+ <​k>​1</​k
- <​l>​0</​w+ <​l>​0</​l
-   <​y_axis>​+   </y_axis>
   </​Orientation>​   </​Orientation>​
  
Line 153: Line 154:
       <​Name>​Al(x)Ga(1-x)As</​Name> ​                <​!-- Ternary material -->       <​Name>​Al(x)Ga(1-x)As</​Name> ​                <​!-- Ternary material -->
       <​Alloy_Composition>​0.15</​Alloy_Composition>​ <!-- alloy composition x -->       <​Alloy_Composition>​0.15</​Alloy_Composition>​ <!-- alloy composition x -->
-      <​Alias>​barrier</​Alias>​+      <​Alias>​barrier1</​Alias>​
       <​Effective_mass_from_kp_parameters>​yes</​Effective_mass_from_kp_parameters>​       <​Effective_mass_from_kp_parameters>​yes</​Effective_mass_from_kp_parameters>​
     </​Material>​     </​Material>​
Line 159: Line 160:
     <​Material>​     <​Material>​
       <​Name>​Al(x)In(y)Ga(1-x-y)N</​Name> ​          <​!-- Quaternary material -->       <​Name>​Al(x)In(y)Ga(1-x-y)N</​Name> ​          <​!-- Quaternary material -->
-      <​Alloy_Composition>​0.16</​Alloy_Composition>​ <!-- alloy composition x --> +      <​Alloy_Composition>​0.16</​Alloy_Composition>​ <​!-- ​the first alloy composition ​represents ​x --> 
-      <​Alloy_Composition>​0.04</​Alloy_Composition>​ <!-- alloy composition y --> +      <​Alloy_Composition>​0.04</​Alloy_Composition>​ <​!-- ​the second ​alloy composition ​represents ​y --> 
-      <​Alias>​barrier</​Alias>​+      <​Alias>​barrier2</​Alias>​
       <​Effective_mass_from_kp_parameters>​yes</​Effective_mass_from_kp_parameters>​       <​Effective_mass_from_kp_parameters>​yes</​Effective_mass_from_kp_parameters>​
     </​Material>​     </​Material>​
Line 168: Line 169:
 </​code>​ </​code>​
  
-For each material (binary, ternary alloy, quaternary alloy), any parameter from the database can be overwritten in the input file by using the ''<​Overwrite>''​ command.+For each material (binary, ternary alloy, quaternary alloy), any parameter ​calculated ​from the database can be overwritten in the input file by using the ''<​Overwrite>''​ command.
 In the example below, conduction band offsets and effective electron masses are overwritten for each of the two materials: In the example below, conduction band offsets and effective electron masses are overwritten for each of the two materials:
  
Line 194: Line 195:
 </​code>​ </​code>​
  
-Note that ''<​Overwrite>''​ has higher priority than ''<​OverwriteMaterial>''​.+Note that ''<​Overwrite>''​ has higher priority than ''<​Overwrite_Material_Database>'' ​(see below).  
 +Also note that ''<​Overwrite>''​ will overwrite directly the material parameters of an alloy for the composition specified in the input file, while ''<​Overwrite_Material_Database>''​ will overwrite the bowing parameters.
  
 === Conduction or valence band offsets === === Conduction or valence band offsets ===
Line 211: Line 213:
   * a) parabolic effective mass: The effective mass $m$ is independent of energy. This simple model can be sufficient for heterostructures with small conduction band offsets with repect to their bandgaps.   * a) parabolic effective mass: The effective mass $m$ is independent of energy. This simple model can be sufficient for heterostructures with small conduction band offsets with repect to their bandgaps.
 <​code>​ <​code>​
-  <​NonParabolicity>​ no </​NonParabolicity>​+  <​NonParabolicity>​no</​NonParabolicity>​
 </​code>​ </​code>​
   * b) nonparabolic effective mass: The effective mass $m(E)$ depends on energy $E$. This is more realistic model is recommended in general.   * b) nonparabolic effective mass: The effective mass $m(E)$ depends on energy $E$. This is more realistic model is recommended in general.
 <​code>​ <​code>​
-  <​NonParabolicity>​ yes  </​NonParabolicity>​+  <​NonParabolicity>​yes</​NonParabolicity>​
 </​code>​ </​code>​
 The nonparabolic model requires iteratively solving the Schrödinger equation in contrast to the parabolic model. The nonparabolic model requires iteratively solving the Schrödinger equation in contrast to the parabolic model.
Line 323: Line 325:
  
  
-=== Definition of different regions ​for analysis (Optional) === +=== Definition of a '​Tight-Binding'​ basis for the analysis (optional) === 
-In order to analyse ​the results, ​different regions of the superlattice structure ​can be separated+In order to analyze ​the results, the user can define a '​tight-binding'​ basis by specifying modules in which the wavefunctions will be confined
-For each voltage, a new set of basis states will be displayed in a folder "Basis_For_Interpretation"​. ​In this basis, the wavefunctions will be localized in each region in between two separators.+To this purpose, the user has to define separations using the command <​Analysis_Separator>​ (see example below). Each separator has the effect of decoupling the wavefunctions from the two sides. Between ​each separator, a distinct module is defined in which the Schrödinger equation will be solved separately. In other words, the wavefunctions of the tight-binding basis are not eigenstates of the full structure, but they are instead eigenstates on each separated module. The new set of basis states will be displayed in a folder ​named "TightBinding". 
 For example, in the case of a QCL with an injector barrier and a collector barrier, one can define two separators in the following way. For example, in the case of a QCL with an injector barrier and a collector barrier, one can define two separators in the following way.
 <​code>​ <​code>​
   <​Analysis_Separator>​   <​Analysis_Separator>​
-    <​Separator_Position>​2.0</​Separator_Position>​ <!-- collector barrier -->+    <​Separator_Position>​2.0</​Separator_Position>​ <​!-- ​position of the collector barrier ​with respect to origin ​-->
   </​Analysis_Separator>​   </​Analysis_Separator>​
  
   <​Analysis_Separator>​   <​Analysis_Separator>​
-    <​Separator_Position>​22.0</​Separator_Position>​ <!-- injector barrier -->+    <​Separator_Position>​22.0</​Separator_Position>​ <​!-- ​position of the injector barrier ​with respect to origin ​-->
   </​Analysis_Separator>​   </​Analysis_Separator>​
 </​code>​ </​code>​
-Hence they will be two defined regions per period. The laser states will be defined in between these two separators, while other states will be defined outside. +In this case there will be two defined regions per period. The laser states will be defined in between these two separators, while other states will be defined outside. 
-An arbritary ​number of analysis separators can be defined (the minimum is one). +An arbitrary ​number of analysis separators can be defined (the minimum is one). 
-In general, it is recommended to define a separator for each barrier at which a resonant tunneling process is expected.+In general, it is recommended to define a separator for each thick barrier at which a resonant tunneling process is expected
 +This kind of "​tight-binding basis" has been discussed by Sushil Kumar and Qing Hu in [[https://​journals.aps.org/​prb/​abstract/​10.1103/​PhysRevB.80.245316|Phys. Rev. B 80, 245316]] (see Fig. 1b).
 <​code>​ <​code>​
  </​Superlattice>​  </​Superlattice>​
Line 367: Line 371:
    <​InterfaceAutoCorrelationType>​ 0 </​InterfaceAutoCorrelationType>​    <​InterfaceAutoCorrelationType>​ 0 </​InterfaceAutoCorrelationType>​
    <​Correlation_Length_in_XY unit="​nm">​ 8 </​Correlation_Length_in_XY>​    <​Correlation_Length_in_XY unit="​nm">​ 8 </​Correlation_Length_in_XY>​
- 
-   <​Asymmetric_Interfaces>​ no </​Asymmetric_Interfaces>​ 
-   <​Amplitude_in_Z_Left> ​ 0.1 </​Amplitude_in_Z_Left>​ 
-   <​Amplitude_in_Z_Right>​ 0.2 </​Amplitude_in_Z_Right>​ 
  
   </​Interface_Roughness>​   </​Interface_Roughness>​
Line 388: Line 388:
  <​Amplitude_in_Z unit="​nm">​ 0 </​Amplitude_in_Z>​  <​Amplitude_in_Z unit="​nm">​ 0 </​Amplitude_in_Z>​
 </​code>​ </​code>​
 +
 +=== Diffuse interfaces ===
 +
 +The interfacial width, as defined in our paper [[https://​doi.org/​10.1103/​PhysRevApplied.13.044062|Phys. Rev. Applied 13, 044062 (2020)]], can be specified in the following way:
 +
 +<​code>​
 +   <​Interface_Roughness>​
 +      <​InterfaceWidth unit="​nm">​0.8</​InterfaceWidth>​
 +      <​Amplitude_in_Z unit="​nm">​0.12</​Amplitude_in_Z>​
 +      <​InterfaceAutoCorrelationType>​1</​InterfaceAutoCorrelationType>​ <!-- Correlation type: 0=Exponential,​ 1=Gaussian, 2 = Generalized expression with Hurst parameter -->
 +      <​Correlation_Length_in_XY unit="​nm">​8.0</​Correlation_Length_in_XY>​
 +      <​AxialCorrelationLength>​0.4</​AxialCorrelationLength>​
 +   </​Interface_Roughness>​
 +</​code>​
 +
 +Note that in this case, the axial correlation length is needed to fully specified the interface rouhgness. Otherwise, if not specified or set to zero, the standard approach for calculating interface roughness scattering is used.
 +
 +=== Threading dislocations ===
 +To be documented
  
 === Acoustic phonons === === Acoustic phonons ===
Line 398: Line 417:
  
 === Optical phonons === === Optical phonons ===
-(optional) Sometimes it might be useful to investigate the influence of the longitudinal-optical (LO) phonon interaction ​in more detail+(optional) Sometimes it might be useful to investigate the influence of the longitudinal-optical (LO) phonon interaction ​on the full NEGF simulation
-Then one can artificially tune the coupling ​strength due to LO phonons. +Then one can artificially tune the LO-phonon scattering rates (self-energies in practice, or equivalently the square of  ​the coupling to LO-phonons)
-The microscopic value of the LO phonon ​coupling strength ​is then multiplied by the scaling factor ''<​LO_Phonon_Coupling_Strength>''​.+The microscopic value of the square ​of the LO phonon ​matrix element ​is then multiplied by the scaling factor ''<​LO_Phonon_Coupling_Strength>''​.
 <​code>​ <​code>​
    <​Tune_LO_Phonon_Scattering>​yes</​Tune_LO_Phonon_Scattering>​    <​Tune_LO_Phonon_Scattering>​yes</​Tune_LO_Phonon_Scattering>​
Line 409: Line 428:
                            <​!-- 1.0 is the value of the normal calculation -->                            <​!-- 1.0 is the value of the normal calculation -->
 </​code>​ </​code>​
 +A value of 1.0 will have no effect, while larger (smaller) values will increase (decrease) the LO-phonon self-energy proportionally respectively.
  
 === Charged impurities === === Charged impurities ===
Line 437: Line 457:
   <!-- (model #3 only) -->   <!-- (model #3 only) -->
  
-  <​Phenomenological_Electron_Temperature>​ no </​Phenomenological_Electron_Temperature>​ 
- 
-  <​Self_consistent_Electron_Temperature>​ no </​Self_consistent_Electron_Temperature>​ 
 </​code>​ </​code>​
 <​code>​ <​code>​
Line 449: Line 466:
  
 === Alloy scattering === === Alloy scattering ===
 +Alloy scattering can be considered using the following command.
 +<​code>​
 +  <​Alloy_scattering>​yes</​Alloy_scattering>​
 +</​code>​
 +Note that alloy scattering is only considered for the material specified by <​Material_for_scattering_parameters>​.  ​
  
 +By default the following alloy squared matrix element for a zinc-blende ternary $A_{x}B_{1-x}C$ is considered:
 +$$ 
 +\vert \langle \alpha,k_0 \vert H_{\text{alloy}} \vert \beta,k_0+k \rangle\vert^2 = \int dz \frac{x(1-x) a^3 (\Delta E_c)^2}{4} \vert \phi_{\alpha}(z) \phi_{\beta}(z) \vert^2
 +$$ 
 +where $\Delta E_c$ is the conduction band offset between the binary compounds $AC$ and $BC$: $\Delta E_c = E_c(AB) - E_c(BC)$.
 +
 +This squared matrix element can be tuned with respect to the above formula by using the following command (tuning the squared matrix element is equivalent of tuning the scattering rate):
 <​code>​ <​code>​
-  <​Alloy_scattering>​ yes </​Alloy_scattering>​ +  <​Alloy_scattering>​yes</​Alloy_scattering
-</​code> ​ +  <​Tune_Alloy_scattering>​0.5</​Tune_Alloy_scattering
 +</​code>​ 
 + 
 +=== Electron-electron scattering === 
 +Electron-electron scattering processes are considered in the elastic approximation.
  
 <​code>​ <​code>​
- </Scattering>+<​Electron_Electron_Scattering>​yes</Electron_Electron_Scattering>
 </​code>​ </​code>​
  
 +
 +Optionally, one can  tune the strength of the electron-electron scattering mechanism using the additional commands
 +
 +<​code>​
 +<​Tune_Elect_Elect_Scattering_Strength>​yes</​Tune_Elect_Elect_Scattering_Strength>​
 +<​Elect_Elect_Scattering_Strength>​1.5</​Elect_Elect_Scattering_Strength>​
 +</​code>​
 +A value of 1.0 gives the normal calculation.
 +
 +<​code>​
 + </​Scattering>​
 +</​code>​
 ==== Poisson equation ==== ==== Poisson equation ====
 The electrostatic mean-field interactions (electron-electron and electron-impurities interactions) can be switched on/off by using ''​yes''​ or ''​no''​ in the ''<​Poisson>''​ command. The electrostatic mean-field interactions (electron-electron and electron-impurities interactions) can be switched on/off by using ''​yes''​ or ''​no''​ in the ''<​Poisson>''​ command.
Line 467: Line 512:
  
  
-The parameters from the lateral motion (i.e. the two-dimensional ​free motion in the directions perpendicular to the growth axis) are assumed to be homogeneous along the structure. Hence the parameters for the lateral motion have to be taken from a fixed material. This material is indicated by ''​ <​Material_for_lateral_motion>''​.+The parameters from the lateral motion (i.e. the two-dimensional ​in-plane ​motion in the directions perpendicular to the growth axis) are assumed to be homogeneous along the structure. Hence the parameters for the lateral motion have to be taken from a fixed material. This material is indicated by ''​ <​Material_for_lateral_motion>''​.
  
 Then the discretization energy for this lateral motion has to be specified with ''<​Value unit="​meV">''​. Then the discretization energy for this lateral motion has to be specified with ''<​Value unit="​meV">''​.
  
 <​code>​ <​code>​
- <​Material_for_lateral_motion>​well</​Material_for_lateral_motion>​ 
  <​Lateral_motion>​  <​Lateral_motion>​
-  <Value unit="​meV"​20 </Value(e.g. for mid-IR QCL) +  <Material_for_lateral_motion>well</Material_for_lateral_motion
-<Value unit="​meV"> ​ ​4 ​</​Value> ​(e.g. for THz QCL) )+  <Value unit="​meV">​5</​Value>​
  </​Lateral_motion>​  </​Lateral_motion>​
 </​code>​ </​code>​
- +This former command sets the energy spacing between the ground and first excited state for the in-plane motion. 
 +Note there is a further parameter for the in-plane motion ''<​Energy_Range_Lateral>'',​ in the ''<​Simulation_Parameter>''​ section described below, which sets the cut-off energy (i.e. the energy range) for the subband dispersion.
 ==== Simulation parameters ==== ==== Simulation parameters ====
  
Line 487: Line 531:
 </​code>​ </​code>​
 ''<​Coherence_length_in_Periods>''​ corresponds to the accounted coherence length of electrons in numbers of period. 1 should be enough for typical QCLs. ''<​Coherence_length_in_Periods>''​ corresponds to the accounted coherence length of electrons in numbers of period. 1 should be enough for typical QCLs.
-  * ''​1'' ​==> coherent transport from one period to the next +  * ''​1''​ => coherent transport from one period to the next 
-  * ''​N'' ​==> coherent transport between N+1 periods+  * ''​N''​ => coherent transport between N+1 periods
 In almost all existing QCL designs, 1 is enough. The user should not change this value. (Larger number are needed for superlattices. In almost all existing QCL designs, 1 is enough. The user should not change this value. (Larger number are needed for superlattices.
 +
 +The coherence length for which self-energies are considered can be further limit by using the following command:
 +<​code>​
 + <​Simulation_Parameter>​
 +<​Coherence_length_in_nm>​50.0</​Coherence_length_in_nm>​
 +...
 +</​Simulation_Parameter>​
 +</​code>​
 +Such limitation will speed up the calculation of the self-energies. On the other hand, this can reduce the accuracy of the scattering processes if this length is below the actual coherence length in the simulated device. It is recommended to asses the accuracy of such approximation by comparing to the results for different values of this coherence length to the full calculation.
  
  
Line 512: Line 565:
  
 === Energy grid === === Energy grid ===
-The energy grid is critical for the calculation time. +The energy grid spacing (which ​is always ​a homogeneously spaced grid) is set using the following command:
-It is a homogeneously spaced grid+
-It holds for higher temperaturesMore broadening, i.e. less energy grid points are sufficient.+
 <​code>​ <​code>​
-  <​Energy_grid_spacing unit="​meV"> ​10 </​Energy_grid_spacing>​+  <​Energy_grid_spacing unit="​meV"> ​</​Energy_grid_spacing>​
 </​code>​ </​code>​
 +Note that this choice is critical for the NEGF calculation time: the energy grid needs to be fine enough to resolve the peaks of the Green'​s functions. However, a finer energy grid will increase the computation time.
  
-=== Adjusting the energy range of the Green'​s functions ​===+=== Cut-off energies ​=== 
 +Two different cut-off energies need to be defined in the input file. 
  
-(''<​Emin_shift>''​''<​Emax_shift>''​)+The axial cut-off energy is related to the motion along the heterostructure axis (i.e. $z$ directiongrowth direction). The command ​
 <​code>​ <​code>​
-  <Emin_shift ​unit="​meV"> ​</Emin_shift>​ +  <Energy_Range_Axial ​  unit="​meV"> ​500 </​Energy_Range_Axial>​
-</​code>​ +
-''​0''​ is the default value - a negative value increases the energy range of the Green'​s functions towards low energies. +
-This energy shift is with respect to $E_{\rm min}$ = Energy(lower Wannier-Stark state) - ''​Energy_Range_Axial''​. +
-<​code>​ +
-  <​Emax_shift unit="​meV">​ 0 </​Emax_shift>+
 </​code>​ </​code>​
-''​0''​ is the default value a positive ​ value increases the energy ​range of the Green'​s functions towards high energies. +sets a cut-off energy ​which determines how many states/​subbands are accounted. This cut-off ​energy is measured from the lowest energy ​state (i.e. the lowest miniband for periodic structures).
-This energy ​shift is with respect to $E_{\rm max}$ = Energy(higher Wannier-Stark ​state) + Energy(higher lateral state).+
  
-The [[qcl:​faq|FAQ]] contains an example ​of different choices ​of ''<​Emin_shift>''​ and ''<​Emax_shift>''​.+The lateral (i.e. in-plane) energy cut-off is related to the description ​of the in-plane dispersion ​of the subbands (i.e. ($x$,$y$) directions)The command
 <​code>​ <​code>​
   <​Energy_Range_Lateral unit="​meV">​ 300 </​Energy_Range_Lateral>​   <​Energy_Range_Lateral unit="​meV">​ 300 </​Energy_Range_Lateral>​
 </​code>​ </​code>​
-$xy$ directionevaluated ​from lowest ​of one state+sets the range of the subband dispersion which are accountedmeasured ​from the bottom ​of each subband. This range has to be large enough to describe the elastic scattering processes. In a QCL, it has to be larger than the lasing transition energy. 
 + 
 +The two cut-off energies are critical in both the accuracy of the results and in the computation time. 
 + 
 +=== Adjusting the energy range of the Green'​s functions === 
 +The energy range of the Green'​s functions are set automatically using the following default values: 
 +$$ 
 +E_{\text{min}} = E_{\text{(lowest electronic ​state)}} - E_{\text{cut-off}} 
 +$$ 
 +$$ 
 +E_{\text{max}} = E_{\text{(highest electronic state)}} + E_{\text{cut-off}} 
 +$$ 
 +where $E_{\text{cut-off}}$ is the maximum of axial and lateral energy cut-offs. 
 + 
 +However, if needed, this default energy range can be modified by using the commands ''<​Emin_shift>''​ and/or ''<​Emax_shift>''​. 
 +To modify the miminum energy, the following command can be used
 <​code>​ <​code>​
-  <Energy_Range_Axial ​  unit="​meV"> ​500 </Energy_Range_Axial>+  <Emin_shift ​unit="​meV"> ​</Emin_shift>
 </​code>​ </​code>​
-$z$ direction, evaluated from lowest state/​miniband ​of one period.+where ''​0''​ is the default value - a negative value increases the energy range of the Green'​s functions towards lower energies. 
 +This energy shift is made with respect to the value $E_{\text{min}}$ =>  $E_{\text{min}}$ ​ + ''<​Emin_shift unit="​meV">''​
  
-The self-consistent loop ends successfully if the following ​2 convergence factors are reached for the lesser Green'​s function (GF) and the current (relative difference between two consecutive iterations).+For shifting the maximum energy limit, ​the following ​command can be used
 <​code>​ <​code>​
-  <Convergence_Value_GF     0.0005 </Convergence_Value_GF>​ +  <Emax_shift unit="​meV"​> 0 </Emax_shift>
-  <​Convergence_Value_Current>​ 0.0005 </​Convergence_Value_Current>+
 </​code>​ </​code>​
 +where ''​0''​ is the default value - a positive ​ value increases the energy range of the Green'​s functions towards higher energies.
 +This energy shift is made with respect to the value $E_{\text{max}}$ =>  $E_{\text{max}}$ ​ + ''<​Emax_shift unit="​meV">''​
 +
 +To know whether changing the default setting of the energy range of the Green'​s functions can be done or is needed, one has to look at the output of the spectral functions (see the example in the [[qcl:​faq#​i_don_t_understand_the_meaning_of_emin_shift_and_e_max_shift_of_the_energy_grid_can_you_give_an_example|FAQ]]) ​
 +
 +=== Convergence factors for the Green'​s functions ===
 +
 +The NEGF self-consistent loop ends successfully if the following 2 convergence factors are reached for the lesser Green'​s function (GF) and the current (relative difference between two consecutive iterations).
 <​code>​ <​code>​
-  <N_max_iterations400 </N_max_iterations>+  <Convergence_Value_GF     ​1e-4 ​</Convergence_Value_GF>​ 
 +  <​Convergence_Value_Current>​ 1e-4 </​Convergence_Value_Current>
 </​code>​ </​code>​
-Number ​of maximum iterations ​if the above convergence values are not reached+ 
-Higher values give more accurate results.+A number ​of maximum iterations ​is specified in case the above convergence values are not reached.
 <​code>​ <​code>​
-  <Convergence_Minimum0.01 </Convergence_Minimum>+  <N_max_iterations300 </N_max_iterations>
 </​code>​ </​code>​
-Minimum convergence factor for the Green'​s function to be considered as a valid result (if ''​N_max_iterations''​ is reached without satisfying ''​Convergence_Value_GF''​). 
-Above the output for the current will be -1. 
  
 +Small values for the convergence values, together with sufficiently large value for the maximum number of iteration, will give the more accurate results.
  
-The number of threads used during the simulation can be limited by the following input. 
-For an automatic setting, use 0. 
-<​code>​ 
-  <​Maximum_Number_of_Threads>​7</​Maximum_Number_of_Threads>​ 
-</​code>​ 
  
 <​code>​ <​code>​
Line 591: Line 656:
 <​code>​ <​code>​
  <​Gain>​  <​Gain>​
-  <​GainMethod> ​</​GainMethod>​+  <​GainMethod> ​</​GainMethod>​
 </​code>​ </​code>​
 Once the calculation for a particular bias point has converged, the gain is calculated. Once the calculation for a particular bias point has converged, the gain is calculated.
-The calculation of the gain does not influence the actual self-consistent calculation. 
 The difference between self-consistent and nonself-consistent calculations is discussed in the papers of A. Wacker et al., Phys. Rev. B 66, 085326 (2002), and APL 86, 04110 (2005). The difference between self-consistent and nonself-consistent calculations is discussed in the papers of A. Wacker et al., Phys. Rev. B 66, 085326 (2002), and APL 86, 04110 (2005).
-No matter how many periods one simulates, the gain should remain the same+The self-consistent gain calculation is needed when intrasubband scattering processes are importantwhich is the case in THz QCLs
-Concerning the gain values, for mid-infrared QCLs, it should be very sensitive to the parameters for the interface roughness.+In mid-infrared QCLs, the gain calculation without self-consistency is found to be sufficient, and is much less time consuming.
  
 The energy spacing between two photon energies is given by ''​dE_Phot''​ and ''​dE_Phot_Self_Consistent''​. The energy spacing between two photon energies is given by ''​dE_Phot''​ and ''​dE_Phot_Self_Consistent''​.
-Usually an energy spacing of 2 meV is sufficient in terms of accuracy. 
-1 meV would be nicer but is more time consuming. 
-A spacing below 1 meV is not necessary. 
  
 without self-consistency:​ without self-consistency:​
Line 627: Line 688:
 </​code>​ </​code>​
  
-=== Output folder ​===+=== Threshold ​=== 
 +Within this gain section, a threshold option is possible in the following way:
  
-This is not needed if the program is executed within nextnanomat. 
-The output folders are generated automatically. 
-If one runs nextnano.QCL from the command line without specifying a folder name, the output folder specified here is generated. 
 <​code>​ <​code>​
- <Folders+ <Gain
-  <Output folder> \Results\Mid-IR_QCL_YuSlivkenRazeghi_SST2010 ​</Output folder+... 
-  <!-- <​Name_StructureMid-IR_QCL_YuSlivkenRazeghi_SST2010 ​</Name_Structure--><​!-- The folder with the results will have this name--> +<Cavity_Losses unit="​cm^{-1}">​5</Cavity_Losses
- </Folders>+<Threshold>yes</Threshold 
 +..
 + </Gain>
 </​code>​ </​code>​
 +The cavity losses need to be specified by the ''<​Cavity_Losses>''​ command (unit cm$^{-1}$).
 +In this case, if the''<​Threshold>​yes</​Threshold>''​ option is activated, the voltage sweep is performed until the threshold condition is fulfilled (i.e. the maximum gain matches the cavity losses).
 +The threshold bias and threshold current are then interpolated based on the calculated bias points.
 +
 +In the case of a combined temperature-voltage sweep, 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.
 +
  
-<​code>​ 
-</​nextnano.QCL>​ 
-</​code>​ 
  
  
  
qcl/input_file.1508315884.txt.gz · Last modified: 2017/10/18 08:38 by thomas.grange