Interpolation of 2-component alloys

Attention

This tutorial is under construction

Introduction

In Interpolation schemes, you can see how to introduce interpolations in your simulation system. This tutorial helps you understand that more through plotting band offsets of a ternary compound In(x)Ga(1-x)As with the different interpolation schemes.

Band offsets also provides with some insights into how to define band offsets, which is related to this tutorial.

How to set up simulations and why

First, we define structure{} to build our simulation system.

35structure{
36    region{
37        ternary_linear{              # the composition x of In(x)Ga(1-x)As varies linearly
38            name    = $material
39            alloy_x = [0.0, 1.0]     # vary x from 0.0 to 1.0 in In(x)Ga(1-x)As
40            x       = [$xmin, $xmax] # x coordinate of start and end point (nm)
41        }
42        line{
43            x       = [$xmin, $xmax] # In(x)Ga(1-x)As exists from 0.0 to 1.0 along the x direction
44        }
45        contact{
46            name    = edge           # This region will be defined as a contact. In this case, the contact is called "edge"
47        }
48
49
50}

As a result, pure GaAs exists at \(x = 0~(nm)\) and pure InAs exists at \(x = 1~(nm)\). The composition varies linealy respect to x coordinate (nm).

Next, we consider what outputs to obtain from the simulation. We want to know the band offsets of In(x)Ga(1-x)As, therefore, we need the syntax classical{}.

55classical{
56    Gamma{}             # a conduction band with a minimum at Gamma point
57    HH{}                # a heavy-hole valence band with a minimum at Gamma point
58    LH{}                # a light-hole valence band with a minimum at Gamma point
59    SO{}                # a split-off valence band with a minimum at Gamma point
60    output_bandedges{}  # obtain band edges above
61    output_bandgap{}    # obtain a band gap energy (optional)
62}

The result is folded inside bias_00000\bandedges.dat.

We also have to initialize the poisson condition in poisson{}. We do not want to apply an electric field to the simulation because it affects the band offsets. Therefore, we explicitly define no electric field in the simulation.

65poisson{
66    electric_field { strength = 0 }
67}

If you use charge_neutral{} instead, it causes an electric field to require charge neutrality at all grid points. You can get more information in poisson{}

Lastly, we introduce strain effects into the system. The strain is caused by the mismatch of lattice constants between the substrate InP and In(x)Ga(1-x)As. We assume that the strain is homogeneous.

Thus, we use pseudomorphic_strain{} here.

8$STRAIN = 0 # Choose strain option: 1: include strain, 0: do not include strain  (ListOfValues: 0, 1)
69strain{
70    pseudomorphic_strain{}
71}

To ignore the strain, we use $STRAIN. If $STRAIN = 1, we take account into strain. If $STRAIN = 0, we do not.

73run{
74!IF($STRAIN)
75    strain{}
76!ENDIF
77}

This is necessary to calculate strain effects. We will see the strain effects to the band offsets of In(x)Ga(1-x)As at the end of this tutorial. Refer to strain{} for further information.

Interpolations

We have three interpolation schemes, according to Interpolation schemes. Note that material parameters \(P_{ABC}(x)\), \(P_{AC}\), and \(P_{BC}\) correspond to the ones of In(x)Ga(1-x)As, pure InAs and pure GaAs, respectively.

Linear - no bowing

In this scheme, the material parameter \(P_{ABC}(x)\) is represented as follows,

\[P_{InGaAs}(x) = x \times P_{InAs} + [1 - x] \times P_{GaAs}\]

This formula means that all material parameters of In(x)Ga(1-x)As are independent of a bowing parameter. There are three necessary material parameters (the energy gap \(E_{g}^{\Gamma}\), the average energy of three top valence bands \(E_{v,av}\), and the spin-orbit splitting energy \(\Delta_{so}\) ) to obtain band offsets of In(x)Ga(1-x)As (Band offsets).

Therefore, for example, in terms of the energy gap (\(E_{g,InGaAs}^{\Gamma}\)), the following formula holds.

\[E_{g,InGaAs}^{\Gamma}(x) = x \times E_{g,InAs}^{\Gamma} + [1 - x] \times E_{g,GaAs}^{\Gamma}\]

This is also true for the other two parameters (\(E_{v,av}\) and \(\Delta_{so}\)).

We need to define those parameters of InAs and GaAs with database{}.

 81database{
 82    binary_zb{
 83        name = InAs
 84        conduction_bands{
 85            Gamma{
 86                bandgap         = 0.417     # E_{g,InAs}^{Gamma}, Vurgaftman1 (0 K)
 87                bandgap_alpha   = 0.276e-3  # Vurgaftman1
 88                bandgap_beta    = 93        # Vurgaftman1
 89            }
 90        }
 91        valence_bands{
 92            bandoffset          = 1.390     # E_{v,av,InAs}, A. Zunger
 93            delta_SO            = 0.39      # Delta_{so,InAs}, Vurgaftman1
 94        }
 95    # All the material parameters of InAs here (equivalent to P_InAs)
 96    }
 97    binary_zb{
 98        name = GaAs
 99        conduction_bands{
100            Gamma{
101                bandgap         = 1.519     # E_{g,GaAs}^{Gamma}, Vurgaftman1 (0 K)
102                bandgap_alpha   = 0.5405e-3 # Vurgaftman1
103                bandgap_beta    = 204       # Vurgaftman1
104            }
105        }
106        valence_bands{
107            bandoffset          = 1.346     # E_{v,av,GaAs}, A. Zunger
108            delta_SO            = 0.341     # Delta_{so,GaAs}, Vurgaftman1
109        }
110    # All the material parameters of InAs here (equivalent to P_GaAs)
111    }

Then, we further define bowing parameters, which are all 0 in linear interpolation, inside database{} as well.

118    ternary_zb{
119        name        = "In(x)Ga(1-x)As"
120        valence     = III_V
121        binary_x    = InAs
122        binary_1_x  = GaAs
123
124        conduction_bands{
125            Gamma{
126                bandgap         = 0.0       # set to 0 deliberately
127            }
128        }
129        valence_bands{
130            bandoffset          = 0.0       # set to 0 deliberately
131            delta_SO            = 0.0       # set to 0 deliberately
132        }
133    # All bowing parameters are set to 0 in linear interpolation
134    }

The original database file (default: database_nnp.in) that nextnanomat refers to has data about In(x)Ga(1-x)As, thus, it is automatically adopted and overwrites your database unless you explicitly define that they are equivalent to 0. Therefore, you have to check the original database and how the bowing parameters of materials are defined before you define them by your own.

Quadratic - constant bowing

In this scheme, the material parameter \(P_{ABC}(x)\) is represented as follows,

\[P_{InGaAs}(x) = x \times P_{InAs} + [1 - x] \times P_{GaAs} - x[1-x] \times b_{InGaAs}\]

\(b_{InGaAs}\) is a constant bowing parameter and we have to define it inside database{} in this case. We also have to define parameters \(P_{InAs}\) and \(P_{GaAs}\) as well as in the linear scheme.

81database{
82    binary_zb{
83        name = InAs
84
85    # All the material parameters of InAs here (equivalent to P_InAs) as well as in the linear scheme
86    }
87    binary_zb{
88        name = GaAs
89
90    # All the material parameters of InAs here (equivalent to P_GaAs) as well as in the linear scheme
91    }

Then, we define constant bowing parameters \(b_{InGaAs}\) as follows.

141    ternary_zb{
142        name        = "In(x)Ga(1-x)As"
143        valence     = III_V
144        binary_x    = InAs
145        binary_1_x  = GaAs
146
147        conduction_bands{
148            Gamma{
149                bandgap         = 0.477       # Vurgaftman1
150            }
151        }
152        valence_bands{
153            bandoffset          = -0.43       # the band offset (=average valence band edge energy)
154            delta_SO            = 0.15        # Vurgaftman1
155        }
156    # All bowing parameters are constant in quadratic interpolation
157    }

Here, some necessary parameters to describe band offsets, for example \(E_{g,InGaAs}^{\Gamma}\), is represented as follows,

\[E_{g,InGaAs}^{\Gamma} = x \times E_{g,InAs}^{\Gamma} + [1 - x] \times E_{g,GaAs}^{\Gamma} - x[1-x] \times b_{InGaAs}\]

\(b_{InGaAs}\) is the bowing parameter for the band gap and defined in the code as Gamma{ bandgap = 0.477}.

This is true for the other two parameters (\(E_{v,av}\) and \(\Delta_{so}\)) as well.

Cubic - composition-dependent bowing

In this scheme, the material parameter \(P_{ABC}(x)\) is represented as follows,

\[P_{InGaAs}(x) = x \times P_{InAs} + [1 - x] \times P_{GaAs} - x[1-x] \times b_{InGaAs}(x)\]
\[b_{InGaAs}(x) = x \times b_{In(x)Ga(1-x)As \rightarrow InAs} + [1-x] \times b_{In(x)Ga(1-x)As \rightarrow GaAs}\]

\(b_{InGaAs}(x)\) is a composition-dependent bowing parameter. The \(b_{In(x)Ga(1-x)As \rightarrow InAs}\) is a constant bowing parameter for nearly pure InAs (\(x =1\)), while the \(b_{In(x)Ga(1-x)As \rightarrow GaAs}\) is also a constant bowing parameter for nearly pure GaAs (\(x =0\)).

To define \(b_{In(x)Ga(1-x)As \rightarrow InAs}\), and \(b_{In(x)Ga(1-x)As \rightarrow GaAs}\), we need bowing_zb{}. Moreover, ternary2_zb{} should be used to relate all the bowing parameters and the component materials (InAs and GaAs) for the alloy (In(x)Ga(1-x)As). Again, note that we also have to define parameters \(P_{InAs}\) and \(P_{GaAs}\) as well as in the linear scheme.

81database{
82    binary_zb{
83        name = InAs
84
85    # All the material parameters of InAs here (equivalent to P_InAs) as well as in the linear scheme
86    }
87    binary_zb{
88        name = GaAs
89
90    # All the material parameters of InAs here (equivalent to P_GaAs) as well as in the linear scheme
91    }

Then, we define composition-dependent bowing parameters as follows. As explained before, the original database has data about In(x)Ga(1-x)As. Therefore, we need ternary2_zb{} to have a different name from the one in ternary_zb{} to avoid duplication between them.

166    bowing_zb{
167        name        = "InGaAs_Bowing_InAs"
168        valence     = III_V
169        conduction_bands{
170            Gamma{
171                bandgap         = 0.359         # b_In(x)Ga(1-x)As ---> b_InAs (x = 1)
172            }
173        }
174        valence_bands{
175            bandoffset          = -0.43         # the band offset (=average valence band edge energy)
176            delta_SO            = 0.15          # Vurgaftman1
177        }
178    }
179    bowing_zb{
180        name        = "InGaAs_Bowing_GaAs"
181        valence     = III_V
182        conduction_bands{
183            Gamma{
184                bandgap         = 1.43          # b_In(x)Ga(1-x)As ---> b_GaAs (x = 0)
185            }
186        }
187        valence_bands{
188            bandoffset          = -0.43         # the band offset (=average valence band edge energy)
189            delta_SO            = 0.15          # Vurgaftman1
190        }
191    }
192    ternary2_zb{
193        name        = "In(x)Ga(1-x)As_cubic"    # rename to avoid duplication with data on the original database
194        valence     = III_V
195        binary_x    = InAs
196        binary_1_x  = GaAs
197        bowing_x    = InGaAs_Bowing_InAs        # b_In(x)Ga(1-x)As ---> b_InAs (x = 1)
198        bowing_1_x  = InGaAs_Bowing_GaAs        # b_In(x)Ga(1-x)As ---> b_GaAs (x = 0)
199    }

Here, some necessary parameters to describe band offsets, for example \(E_{g,InGaAs}^{\Gamma}\), is represented as follows, As explained before,

\[E_{g,InGaAs}^{\Gamma} = x \times E_{g,InAs}^{\Gamma} + [1 - x] \times E_{g,GaAs}^{\Gamma} - x[1-x] \times b_{InGaAs}(x)\]

\(b_{InGaAs}(x)\) is the bowing parameter for the bang gap and defined as the formula below on the Table 6.14 in [Adachi2009].

\[b_{InGaAs}(x) = 0.359 + 0.491\cdot (1-x) + 0.580\cdot (1-x)^2\]

Therefore,

\[b_{In(x)Ga(1-x)As \rightarrow InAs} = b_{InGaAs}(1) = 0.359 + 0.491\cdot (1-1) + 0.580\cdot (1-1)^2 = 0.359\]
\[b_{In(x)Ga(1-x)As \rightarrow GaAs} = b_{InGaAs}(0) = 0.359 + 0.491\cdot (1-0) + 0.580\cdot (1-0)^2 = 1.43\]

Because we do not have formulas for the bowing parameters for \(E_{v,av}\) and \(\Delta_{so}\), we define them as the same values between InAs and GaAs in the code above. This means that the two bowing parameters are constant and have the quadratic scheme for the valence bands.

Band offsets with the different schemes

According to the three schemes, which is explained above, we plot band offsets of In(x)Ga(1-x)As (Figure 2.5.2.4).

../../../../_images/1D_InGaAs_interpolation_schemes.svg

Figure 2.5.2.4 Band edges of In(x)Ga(1-x)As with a linear scheme in (a). (b) is with a quadratic scheme. (c) is with a cubic scheme. The band edges without strain are plotted with solid lines. The ones with strain are plotted with dotted lines.

Note that we define the bowing parameters for \(E_{v,av,InGaAs}(x)\) and \(\Delta_{so,InGaAs}(x)\) as constant in the cubic scheme, therefore valence bands in the scheme are plotted with the quadratic scheme instead. Without strain, \(E_{HH}\) and \(E_{LH}\) are degenerated in the all schemes. When strain is introduced due to the mismatch of lattice constants between the substrate InP and In(x)Ga(1-x)As, band edges are bent. This is because interpolations are executed first and then the strain is introduced to shift band energies.

Exercises

Plot band offsets of Al(x)Ga(1-x)As with the following steps:
  • check the original database and how it is defined in it

  • plot them with the linear scheme

  • plot them with the quadratic scheme

  • plot them with the cubic scheme

  • introduce strain into the simulations and check the effects

You can get some clues to solve them in Interpolation schemes and Band offsets.