This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
qcl:advanced_settings [2020/10/20 14:36] thomas.grange [Advanced settings] |
qcl:advanced_settings [2022/03/30 16:36] (current) thomas.grange [Definition of graded alloy and graded interfaces] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Advanced settings ====== | ====== Advanced settings ====== | ||
- | {{ :negf:animation_densityofstates.gif?500|}} | ||
- | {{negf.animation_current.gif}} | ||
==== Parallelization ==== | ==== Parallelization ==== | ||
+ | |||
+ | === Number of threads === | ||
+ | |||
+ | |||
The number of threads can be controlled using the command <Maximum_Number_of_Threads> | The number of threads can be controlled using the command <Maximum_Number_of_Threads> | ||
<code> | <code> | ||
Line 13: | Line 15: | ||
</code> | </code> | ||
- | For optimal performances, we recommended that <Maximum_Number_of_Threads> does not exceed the number of **physical** cores (when hyperthreading is activated, the number of physical cores is half the one on logical processsors). | + | 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. |
- | === Parallization in case of combined Temperature-Voltage sweep === | + | 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. | 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. | ||
Line 38: | Line 42: | ||
- | ==== Contributions of individual scattering processes ==== | + | ==== 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, | ||
+ | <code> | ||
+ | <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> | ||
+ | </code> | ||
+ | |||
+ | 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. | ||
+ | <code> | ||
+ | <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> | ||
+ | </code> | ||
+ | |||
+ | |||
+ | === 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. | ||
+ | <code> | ||
+ | <Interface_Roughness> | ||
+ | <InterfaceWidth unit="nm">0.8</InterfaceWidth> | ||
+ | ... | ||
+ | </Interface_Roughness> | ||
+ | </code> | ||
+ | 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: | The following command allow to display self-energies and spectral functions for some specific mechanisms, like e.g. scattering due to optical phonons: | ||
<code> | <code> | ||
Line 49: | Line 102: | ||
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. | 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. | 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: | ||
+ | <code> | ||
+ | <Scattering> | ||
+ | ... | ||
+ | <Homogeneous_Coulomb>yes</Homogeneous_Coulomb> | ||
+ | ... | ||
+ | </Scattering> | ||
+ | </code> | ||
Line 67: | Line 130: | ||
==== Output format for 2D plots ==== | ==== Output format for 2D plots ==== | ||
- | By default, 2D plots are output in a [[http://www.vtk.org|VTK format]] (files with a .vtr extension). | + | By default, 2D plots are output in a [[http://www.vtk.org|VTK format]] (.vtr extension). |
- | [[http://www.gnuplot.info/|Gnuplot]] files are also generated (in a file explorer, double click on the file to generate the gnuplot figure). | + | [[http://www.gnuplot.info/|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 [[http://www.avs.com|AVS/Express format]] (.fld extension), the following command "<FLD_format>" can be added in the <Output> section of the input file. | In addition, to output 2D plots in a [[http://www.avs.com|AVS/Express format]] (.fld extension), the following command "<FLD_format>" can be added in the <Output> section of the input file. |