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}$

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{} or ternary_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{}. For ternary2_zb, bowing is not symmetric in x and 1-x. The nextnano++ implementation is the following: Use ternary2_zb{} and bowing_zb{} instead of ternary_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:

1. $$A_xB_yC_{1-x-y}D$$ (III-III-III-V quaternaries):

e.g. $$Al_xGa_yIn_{1-x-y}As$$

2. $$AB_xC_yD_{1-x-y}$$ (III-V-V-V quaternaries):

e.g. $$AlAs_xSb_yP_{1-x-y}$$

3. $$A_xB_{1-x}C_yD_{1-y}$$ (III-III-V-V quaternaries):

e.g. $$Ga_xIn_{1-x}As_yP_{1-y}$$

Three options (as described above) are possible for the interpolation of binary material parameters ( $$A_xB_{1-x}C$$ or $$CA_xB_{1-x}$$) in quaternary alloys:
$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 = 1

Example:

### 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_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_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_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_b_d_e{ TYPE=string }          #  BDE
binary_a_c_f{ TYPE=string }          #  ACF
binary_b_c_f{ TYPE=string }          #  BCF
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)