— DEV/EDU — Interpolation of 2-component alloys¶
Header¶
- Files for the tutorial located in nextnano++\examples\education
Interpolation_In(x)Ga(1-x)As_1D_linear_quadratic_nnp.in
Interpolation_In(x)Ga(1-x)As_1D_cubic_nnp.in
- Scope of the tutorial:
- Main adjustable parameters in the input file:
parameter
$linear
parameter
$STRAIN
- Relevant output files:
bias_00000\bandedges.dat
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,
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.
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,
\(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,
\(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,
\(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,
\(b_{InGaAs}(x)\) is the bowing parameter for the bang gap and defined as the formula below on the Table 6.14 in [Adachi2009].
Therefore,
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).
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