— FREE — Doping in Heterostructure¶
Header¶
- Files for the tutorial located in nextnano++\examples\basics
basics_1D_doping_heterostructure.in
Introduction¶
This tutorial is an example of defining a heterostructure with multiple doping regions (Figure 2.4.20). The device structure is shown in Figure 2.4.20.
Specifying the structure¶
Inside the group structure{ }
, we’ve separated the code into two blocks. In the first we defined material regions, and in the second we added doping.
42 # ---------
43 # materials
44 # ---------
45
46 region{
47 ternary_constant{ # constant alloy composition
48 name = "In(x)Ga(1-x)As" # material: InGaAs
49 alloy_x = 0.5 # alloy composition
50 }
51 contact{ name = whatever } # contact definition
52 everywhere{} # ranging over the complete device, from x=0.0 nm to x=1503.0 nm
53 }
54
55 region{
56 ternary_constant{ # constant alloy composition
57 name = "AlAs(x)Sb(1-x)" # material: AlAsSb
58 alloy_x = 0.85 # alloy composition
59 }
60 line{ x = [ 300.0, 488.0] } # overwriting InGaAs in the interval from x = 300.0 nm to x=488.0 nm
61 }
62
63 region{
64 ternary_constant{ # constant alloy composition
65 name = "Al(x)In(1-x)As" # material: AlInAs
66 alloy_x = 0.5 # alloy composition
67 }
68 line{ x = [ 488.0, 1493.0] } # overwriting InGaAs in the interval from x = 388.0 nm to x=1493.0 nm
69 }
70
71 region{
72 quaternary_constant{ # constant alloy composition
73 name = "Al(x)Ga(y)In(1-x-y)As" # material: AlGaInAs
74 alloy_x = 0.4 # alloy composition
75 alloy_y = 0.2 # alloy composition
76 }
77 line{ x = [ 593.0, 1193.0] } # overwriting AlInAs in the interval from x = 593.0 nm to x=1193.0 nm
78 }
79
80 region{
81 ternary_constant{ # constant alloy composition
82 name = "In(x)Ga(1-x)As" # material: InGaAs
83 alloy_x = 0.5 # alloy composition
84 }
85 line{ x = [ 643.0, 1143.0] } # overwriting AlInAs in the interval from x = 643.0 nm to x=1143.0 nm
86 }
There are often many ways to create a desired structure. However, utilizing the symmetry of a structure can sometimes simplify things. In the code above we for example, we try to omit defining each material layer separately. Instead, we defined the outer material layers as one region and then overwriting it inside by the next inner layers. Thus, we do not have to define the two InGaAs or InAlGaAs regions separately.
88 # ------
89 # doping
90 # ------
91
92 region{ # region for adding doping
93 line{ x = [0.0, 300.0]} # position: x=0.0 nm to 300.0 nm
94
95 doping{
96 constant{ # constant doping concentration profile
97 name = "n-type-doping" # name of impurity
98 conc = 1.0e19 # doping concentration [cm-3]
99 }
100 }
101 }
102
103 region{ # region for adding doping
104 line{ x = [300.0, 400.0]} # position: x=300.0 nm to 400.0 nm
105 doping{
106 constant{ # constant doping concentration profile
107 name = "n-type-doping" # name of impurity
108 conc = 5.0e18 # doping concentration [cm-3]
109 }
110 }
111 }
112
113 region{ # region for adding doping
114 line{ x = [440.0, 484.0]} # position: x=440.0 nm to 484.0 nm
115 doping{
116 constant{ # constant doping concentration profile
117 name = "p-type-doping" # name of impurity
118 conc = 1.0e18 # doping concentration [cm-3]
119 }
120 }
121 }
122
123 region{ # region for adding doping
124 line{ x = [534.0, 589.0]} # position: x=534.0 nm to 589.0 nm
125 doping{
126 constant{ # constant doping concentration profile
127 name = "p-type-doping" # name of impurity
128 conc = 5.0e18 # doping concentration [cm-3]
129 }
130 }
131 }
132
133 region{ # region for adding doping
134 line{ x = [1193.0, 1493.0]} # position: x=1193.0 nm to 1493.0 nm
135 doping{
136 constant{ # constant doping concentration profile
137 name = "p-type-doping" # name of impurity
138 conc = 5.0e18 # doping concentration [cm-3]
139 }
140 }
141 }
142
143 region{ # region for adding doping
144 line{ x = [1493.0, 1503.0]} # position: x=1493.0 nm to 1503.0 nm
145 doping{
146 constant{ # constant doping concentration profile
147 name = "p-type-doping" # name of impurity
148 conc = 1.0e19 # doping concentration [cm-3]
149 }
150 }
151 }
We define each doping region one at a time: first n-type regions and then p-type regions.
Specify impurity species¶
155impurities{ # required if doping exists
156 donor{ # select the species of dopants
157 name = "n-type-doping" # select doping regions with name = "n-type-doping"
158 energy = 0.045 # ionization energy of dopants
159 degeneracy = 2 # degeneracy of dopants
160 }
161 acceptor{ # select the species of dopants
162 name = "p-type-doping" # select doping regions with name = "p-type-doping"
163 energy = 0.045 # ionization energy of dopants
164 degeneracy = 4 # degeneracy of dopants
165 }
166}
Last update: 16/07/2024