Interpolation Schemes¶
Note
This section is under construction
Material parameters in ternary alloys¶
In ternary alloys of the form \(A_{x}B_{1-x}C\) or \(CA_{x}B_{1-x}\) the material parameters are determined by interpolating the material parameters of their binary constituents. Three options are possible for the interpolation:
- Linear inerpolation (default)
If no specification is made about bowing paramters, linear interpolation is assumed by default:
\[T_{ABC} = x B_{AC} + (1-x)B_{BC}\]- Quadratic interpolation
If linear interpolation is not sufficient, quadratic interpolation could be used instead:
\[T_{ABC} = x B_{AC} + (1-x) B_{BC} - x (1-x) C_{ABC}\]For quadratic interpolation of a certain material paramter, one has to specify a bowing paramter \(C_{ABC}\). This can be done inside the groups
ternary_zb{}
orternary_wz{}
.Example
ternary_zb { name = "In(x)Ga(1-x)As" valence = III_V binary_x = InAs # Binary B_AC binary_1_x = GaAs # Binary B_BC conduction_bands{ Gamma{ mass = 0.0091 } # Bowing parameter C_ABC } ... kp_8_bands{ S = 3.54 # S = 1 + 2F = 2 * 1.77 (Vurgaftman1) # Note: The S parameter (S = 1 + 2F) is also defined in the literature as F where F = (S - 1)/2, e.g. I. Vurgaftman et al., JAP 89, 5815 (2001). # Consequently, as one can show, the bowing parameter for S has the value 2 * F. # For In(x)Ga(1-x)As Vurgaftman lists the bowing parameter F = 1.77. } ... } : { # It is possible to define a synonym of several synonyms for this material InxGa1-xAs. name = "Ga(1-x)In(x)As" # Ga1-xInxAs valence = III_V binary_x = InAs binary_1_x = GaAs } : { name = "Ga(x)In(1-x)As" # GaxIn1-xAs valence = III_V binary_x = GaAs binary_1_x = InAs } : { name = "In(1-x)Ga(x)As" # In1-xGaxAs valence = III_V binary_x = GaAs binary_1_x = InAs }- Cubic interpolation
If the bowing paramter \(C_{ABC}\) is not constant, i.e. depends on the alloy composition x:
\[T_{ABC} = x B_{AC} + (1-x) B_{BC} - x (1-x) C_{ABC}(x)\]a linear or even a quadratic interpolation is not sufficient. If \(C_{ABC}(x)\) is assumed to be only linear in x, quadratic interpoaltion is used.
Example
The bowing paramter at the Gamma point of \(Al_xGa_{1-x}As\) is given by (Table XII., I. Vurgaftman et al., J. Appl. Phys. 89, 5815 (2001)):
\[C_{ABC}(x) = -0.127 + 1.310 \cdot x\]In order to describe the bowing parameters in the case of cubic interpolation, a new material group is intruduced: e.g.
ternary2_zb{}
. Forternary2_zb
, bowing is not symmetric in x and 1-x. The nextnano++ implementation is the following: Useternary2_zb{}
andbowing_zb{}
instead ofternary_zb{}
:### Aluminum Gallium Arsenide (AlGaAs) ### ternary2_zb{ name = "Al(x)Ga(1-x)As" # AlxGa1-xAs valence = III_V binary_x = AlAs binary_1_x = GaAs bowing_x = AlGaAs_Bowing_Ga # Bowing parameter CABC(x) for x=1 bowing_1_x = AlGaAs_Bowing_Al # Bowing parameter CABC(x) for x=0 } bowing_zb{ name = "AlGaAs_Bowing_Ga" # AlxGa1-xAs (x=1) valence = III_V conduction_bands{ Gamma{ bandgap = -0.127 + 1.310 * 1 } # Bowing parameter CABC(x=1) = -0.127 + 1.310 * x = 1.183 L { bandgap = 0 } # Bowing parameter CABC X { bandgap = 0.055 } # Bowing parameter CABC } valence_bands{ delta_SO = 0 # Bowing parameter CABC } } bowing_zb{ name = "AlGaAs_Bowing_Al" # AlxGa1-xAs (x=0) valence = III_V conduction_bands{ Gamma{ bandgap = -0.127 + 1.310 * 0 } # Bowing parameter CABC(x=0) = -0.127 + 1.310 * x = -0.127 L { bandgap = 0 } # Bowing parameter CABC X { bandgap = 0.055 } # Bowing parameter CABC } valence_bands{ delta_SO = 0 # Bowing parameter CABC } }Explanation: for describing the bandgap bowing parameter, we require to specify in the
AlGaAs_Bowing_Ga
block the value of\[\mathrm{AlGaAs\_Bowing\_GaC_{ABC}(x = 1) = -0.127 + 1.310 = 1.183}\]and in the
AlGaAs_Bowing_Al
block the value of\[\mathrm{AlGaAs\_Bowing\_AlC_{ABC}(x=0) = -0.127}\]Then, the final result for the bandgap is:
\[\mathrm{Al_{x}Ga_{1-x}As = Bandgap(AlAs)(GaAs)C_{ABC}(x)}\]\[\mathrm{= (GaAs) AlGaAs\_Bowing\_Ga AlGaAs\_Bowing\_Al}\]Alternative: An easier and much more intuitive solution would be to overwrite the respective bowing material parameter in the input file by defining a formula which uses the alloy concentration as a variable. This is meanwhile possible. (To do: Add a tutorial on this topic.)
Note
If no bowing parameters are specified inside e.g.
ternary2_zb{}
for the ternary, linear interpolation is assumed.Note
The same (i.e.
ternary2_zb
) is also used for the band gap at the Gamma point of \(\mathrm{Al_{x}Ga_{1-x}Sb}\) and to the diluted nitrid material \(\mathrm{GaAs_{1-x}N_x}\).
Material paramters in quaternary alloys¶
The calculations of the material paramters quaternary alloys are based on interpolation of binary material parameters, including the bowing parameters that are used for the ternary constituents. A brief introduction to quaternaries is shown in this Powerpoint presentation (Quaternaries.pptx , Quaternaries.pdf).
Three different quaternaries can be constructed, where 1. and 3. are basically identical from an algorithmic point of view:
\(A_xB_yC_{1-x-y}D\) (III-III-III-V quaternaries):
e.g. \(Al_xGa_yIn_{1-x-y}As\)
\(AB_xC_yD_{1-x-y}\) (III-V-V-V quaternaries):
e.g. \(AlAs_xSb_yP_{1-x-y}\)
\(A_xB_{1-x}C_yD_{1-y}\) (III-III-V-V quaternaries):
e.g. \(Ga_xIn_{1-x}As_yP_{1-y}\)
\[Q_{ABCD} = x y B_{AC} + (1-x) y B_{BC} + (1-x) (1-y) B_{BD} + x (1-y) B_{AD}\]\[- x (1-x) y C_{ABC} - (1-x) y (1-y) C_{BCD} - x (1-x) (1-y) C_{ABD} - x y (1-y) C_{ACD}\]
The second line introduces a quadratic interpolation, where \(C_{ABC}\), \(C_{ABD}\), \(C_{BCD}\) are the bowing parameters of the ternary constituents. For \(C_{ABC}\) = \(C_{ABD}\) = \(C_{ACD}\) = 0 (which is the default), linear interpolation is used.
Constituent limiting binaries and ternaries are defined by the following constraints:
binary1
: x = 1, y = 1
binary2
: x = 0, y = 1
binary3
: x = 0, y = 0
binary4
: x = 1, y = 0
ternary12
: y = 1
ternary23
: x = 0
ternary34
: y = 0
ternary14
: x = 1Example:
### Indium Aluminum Arsenide Antimonide (InAlAsSb) ### quaternary4_zb { name = "In(x)Al(1-x)As(y)Sb(1-y)" valence = III_V binary1 = InAs binary2 = AlAs binary3 = AlSb binary4 = InSb ternary12 = "In(x)Al(1-x)As" # Note: In(x)Al(1-x)As and In(1-x)Al(x)As are equivalent ternary23 = "AlAs(x)Sb(1-x)" # as can be seen in the above equation. ternary34 = "Al(x)In(1-x)Sb" # So one has to use the name that is already defined in the database. ternary14 = "InAs(x)Sb(1-x)" }
Material paramters in quinternary alloys¶
Alloys of the type \(A_xB_yC_zD_{1-x-y}\)
Example:
quinternary_zb : _alloy_zb{ TYPE=group OPT=1 binary_a{ TYPE=string } # A binary_b{ TYPE=string } # B binary_c{ TYPE=string } # C binary_d{ TYPE=string } # D ternary_ab{ TYPE=string } # A(x)B(1-x) ternary_ac{ TYPE=string } # A(x)C(1-x) ternary_ad{ TYPE=string } # A(x)D(1-x) ternary_bc{ TYPE=string } # B(x)C(1-x) ternary_bd{ TYPE=string } # B(x)D(1-x) ternary_cd{ TYPE=string } # C(x)D(1-x) quaternary_abc{ TYPE=string } # A(x)B(y)C(1-x-y) quaternary_abd{ TYPE=string } # A(x)B(y)D(1-x-y) quaternary_acd{ TYPE=string } # A(x)C(y)D(1-x-y) quaternary_bcd{ TYPE=string } # B(x)C(y)D(1-x-y) # from base group, optional quinternary bowing parameters }
Alloys of the type \(A_xB_yC_{1-x-y}D_{z}E_{1-z}\)
Example:
quinternary6_zb : _alloy_zb{ TYPE=group OPT=1 binary_a_d{ TYPE=string } # AD binary_b_d{ TYPE=string } # BD binary_c_d{ TYPE=string } # CD binary_a_e{ TYPE=string } # AE binary_b_e{ TYPE=string } # BE binary_c_e{ TYPE=string } # CE ternary_ab_d{ TYPE=string } # A(x)B(1-x)D ternary_ac_d{ TYPE=string } # A(x)C(1-x)D ternary_bc_d{ TYPE=string } # B(x)C(1-x)D ternary_ab_e{ TYPE=string } # A(x)B(1-x)E ternary_ac_e{ TYPE=string } # A(x)C(1-x)E ternary_bc_e{ TYPE=string } # B(x)C(1-x)E ternary_a_de{ TYPE=string } # AD(x)E(1-x) ternary_b_de{ TYPE=string } # BD(x)E(1-x) ternary_c_de{ TYPE=string } # CD(x)E(1-x) quaternary_abc_d{ TYPE=string } # A(x)B(y)C(1-x-y)D quaternary_abc_e{ TYPE=string } # A(x)B(y)C(1-x-y)E quaternary_ab_de{ TYPE=string } # A(x)B(1-x)D(y)E(1-y) quaternary_ac_de{ TYPE=string } # A(x)C(1-x)D(y)E(1-y) quaternary_bc_de{ TYPE=string } # B(x)C(1-x)D(y)E(1-y) # from base group, optional quinternary bowing parameters }
Two-parameter alloys of the type \(A_xB_{1-x}C_{y}D_{1-y}E_{z}F_{1-z}\)
Example:
quaternary8_zb : _alloy_zb{ TYPE=group OPT=1 binary_a_c_e{ TYPE=string } # ACE binary_b_c_e{ TYPE=string } # BCE binary_a_d_e{ TYPE=string } # ADE binary_b_d_e{ TYPE=string } # BDE binary_a_c_f{ TYPE=string } # ACF binary_b_c_f{ TYPE=string } # BCF binary_a_d_f{ TYPE=string } # ADF binary_b_d_f{ TYPE=string } # BDF ternary_ab_c_e{ TYPE=string } # A(x)B(1-x)CE ternary_ab_d_e{ TYPE=string } # A(x)B(1-x)DE ternary_ab_c_f{ TYPE=string } # A(x)B(1-x)CF ternary_ab_d_f{ TYPE=string } # A(x)B(1-x)DF ternary_a_cd_e{ TYPE=string } # AC(x)D(1-x)E ternary_b_cd_e{ TYPE=string } # BC(x)D(1-x)E ternary_a_cd_f{ TYPE=string } # AC(x)D(1-x)F ternary_b_cd_f{ TYPE=string } # BC(x)D(1-x)F ternary_a_c_ef{ TYPE=string } # ACE(x)F(1-x) ternary_b_c_ef{ TYPE=string } # BCE(x)F(1-x) ternary_a_d_ef{ TYPE=string } # ADE(x)F(1-x) ternary_b_d_ef{ TYPE=string } # BDE(x)F(1-x) quarternary_ab_cd_e{ TYPE=string } # A(x)B(1-x)C(y)D(1-y)E quarternary_ab_cd_f{ TYPE=string } # A(x)B(1-x)C(y)D(1-y)F quarternary_ab_c_ef{ TYPE=string } # A(x)B(1-x)CE(y)F(1-y) quarternary_ab_d_ef{ TYPE=string } # A(x)B(1-x)DE(y)F(1-y) quarternary_a_cd_ef{ TYPE=string } # AC(x)D(1-x)E(y)F(1-y) quarternary_b_cd_ef{ TYPE=string } # BC(x)D(1-x)E(y)F(1-y) # from base group, optional quinternary bowing parameters }