— DEV/EDU — Interpolation of 2-component alloys

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{ x = [ $xmin, $xmax ] }        # In(x)Ga(1-x)As exists from 0.0 to 1.0 along the x direction
43        contact{ name = "fermi_contact" }   # This region will be defined as a contact. In this case, the contact is called "fermi_contact"
44    }
45}

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

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

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

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    # All the material parameters of InAs here (equivalent to P_InAs) as well as in the linear scheme
83    binary_zb{
84        name = InAs
85    }
86
87    # All the material parameters of InAs here (equivalent to P_GaAs) as well as in the linear scheme
88    binary_zb{
89        name = GaAs
90    }

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

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

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    # All the material parameters of InAs here (equivalent to P_InAs) as well as in the linear scheme
83    binary_zb{
84        name = InAs
85    }
86
87    # All the material parameters of InAs here (equivalent to P_GaAs) as well as in the linear scheme
88    binary_zb{
89        name = GaAs
90    }

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

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.4.61).

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

Figure 2.4.61 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.

Last update: 08/03/2024