User Tools

Site Tools


qcl:advanced_settings

Advanced settings

Parallelization

Number of threads

The number of threads can be controlled using the command <Maximum_Number_of_Threads>

<Simulation_Parameter>
  ...
  <Maximum_Number_of_Threads>12</Maximum_Number_of_Threads>
  ...
</Simulation_Parameter>

For an automatic setting, use 0 or do not specify this command. In this case, the number of threads will be set to half of the number of physical cores.

In any case, we recommended that <Maximum_Number_of_Threads> does not exceed the number of physical cores (note that when hyperthreading is activated, the number of physical cores is half the one on logical processsors).

Parallelization in case of combined Temperature-Voltage sweep

In the case where a combined Temperature-Voltage sweep is used, there are two levels of parallelization. The first is at the level of the command <Threads> in the <SweepParameters> section.

<SweepParameters>   
  <SweepType>Temperature-Voltage</SweepType>
  ...
 <Threads>6</Threads> <!-- Parallelization for Temperature-Voltage sweep -->
 </SweepParameters>

The second level of parallelization occurs in the <Simulation_Parameter> section:

<Simulation_Parameter>
  ...
  <Maximum_Number_of_Threads>2</Maximum_Number_of_Threads>
  ...
</Simulation_Parameter>

In this example, the total number of threads will be <Threads>* <Maximum_Number_of_Threads> = 6*2 = 12.

Definition of graded alloy and graded interfaces

There are two possibilities to define graded alloy profile.

Linearly graded alloys

To define a linear graded alloy profile, two materials first need to be defined in the <Material> section For example,

    <Material>
      <Name>GaAs</Name>                           <!-- Binary material -->
      <Alias>mat1</Alias>
      <Effective_mass_from_kp_parameters>yes</Effective_mass_from_kp_parameters>
    </Material>

    <Material>
      <Name>Al(x)Ga(1-x)As</Name>                 <!-- Ternary material -->
      <Alloy_Composition>0.15</Alloy_Composition> <!-- alloy composition x -->
      <Alias>mat2</Alias>
      <Effective_mass_from_kp_parameters>yes</Effective_mass_from_kp_parameters>
    </Material>

Then, in the layer definition (named <Superlattice>), the following can be used to define a layer with a linear alloy profile, with composition starting from the material “mat1” and ending with the material “mat2” composition.

<Layer> <!-- all the material parameters will be linearily interpolated between <Material1> and <Material2> -->
    <Material1>mat1</Material1>
    <Material2>mat2</Material2>
    <Thickness unit="nm">5.0</Thickness>
  </Layer>

Graded interfaces

To specify a grading for all the interfaces of the structure, the following command <InterfaceWidth> has to be included in the <Interface_Roughness> section.

<Interface_Roughness>
      <InterfaceWidth unit="nm">0.8</InterfaceWidth>
      ...
   </Interface_Roughness>

In this case, the alloy profile of the all strucure is convoluted by a Gaussian. For a well defined interface, this results in an error function profile of the form: $$ c(z) = c_0 + d_0 \text{erf} \left[2 \sqrt{ln(2)}(z - z_0)/L \right] $$ where $L$ is the quantity specified in <InterfaceWidth>.

Scattering processes

Contributions of individual scattering processes

The following command allow to display self-energies and spectral functions for some specific mechanisms, like e.g. scattering due to optical phonons:

<Scattering>
  ...
  <Separate_Scattering>yes</Separate_Scattering>
  ...
</Scattering>

This command is only for analysis purpose, and has no influence on the other calculated quantities. It only involves an additionnal calculation of self-energies and Green's functions. In each basis folder, a folder with the name of the scattering process will appear, containing the retarded self-energy and the spectral function arising only from the specific scattering mechanism. Hence this spectral function gives the contribution to broadening of an individual scattering process.

Homogeneous Coulomb scattering

To speed up the calculation, it is possible to consider the assumption of homogeneously distributed Coulomb scatterers (ionized impurities and other charge carriers) using the following command:

<Scattering>
  ...
  <Homogeneous_Coulomb>yes</Homogeneous_Coulomb>
  ...
</Scattering>

Output format for 2D plots

By default, 2D plots are output in a VTK format (.vtr extension). Gnuplot files (.plt extension) are also generated (in a file explorer, double click on the file to generate the gnuplot figure).

In addition, to output 2D plots in a AVS/Express format (.fld extension), the following command “<FLD_format>” can be added in the <Output> section of the input file.

The following commands can be used to control the output formats:

<Output>
...
<VTK_format>yes</VTK_format>
<FLD_format>yes</FLD_format>
<Gnuplot_format>yes</Gnuplot_format>
...
</Output>

Scaling 1D wavefunctions

In order to scale the output of the square of the wavefunctions (1D plots), the following command can be used:

<Output>
...
<ScaleWaveFunction>0.1</ScaleWaveFunction>
...
</Output>
qcl/advanced_settings.txt · Last modified: 2022/03/30 16:36 by thomas.grange