4.1. 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{} 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_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
}