This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
qcl:advanced_settings [2022/02/23 18:10] thomas.grange [Contributions of individual scattering processes] |
qcl:advanced_settings [2022/03/30 16:36] (current) thomas.grange [Definition of graded alloy and graded interfaces] |
||
---|---|---|---|
Line 2: | Line 2: | ||
==== 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> | ||
Line 12: | 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. |
+ | |||
+ | 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 === | === Parallelization in case of combined Temperature-Voltage sweep === | ||
Line 36: | Line 41: | ||
In this example, the total number of threads will be <Threads>* <Maximum_Number_of_Threads> = 6*2 = 12. | 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, | ||
+ | <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 ==== | ==== Scattering processes ==== |