In this tutorial, we will see how to perform 3D calculations of strain and quantum properties of a wurtzite GaN conic quantum dot embedded in an AlGaN nanocolumn heterostructure.
In order to execute correctly this example you should have the following files in the same working directory:
quantum_dot.tib : input file for TiberCAD
quantum_dot.msh : mesh file produced by the GMSH script quantum_dot.geo
The structure of the nanocolumn is shown here, together with the 3D mesh obtained with GMSH.
![]() |
|
|
![]() |
| Fig.1. Nanocolumn structure | Fig.2. 3D mesh (quantum dot region) |
The conical wutzite GaN quantum dot (blue in Fig. 1 and 2) is modelled by the Physical Volume qdot in quantum_dot.geo and associated to Region qdot in TiberCAD.
Region qdot
{
material = GaN
x = 0.0
structure = wz
y-growth-direction = (-1,0,1,0)
x-growth-direction = (-1,2,-1,0)
z-growth-direction = (0,0,0,1)
doping = 1e15
doping_type = acceptor
doping_level = 0.025
}Then, an AlGaN buffer region surrounding the quantum dot is created (Physical Volume("barrier"))
Region barrier
{
material = AlGaN
x = 0.3
structure = wz
y-growth-direction = (-1,0,1,0)
x-growth-direction = (-1,2,-1,0)
z-growth-direction = (0,0,0,1)
doping = 1e15
doping_type = acceptor
doping_level = 0.025
}
Finally, the two AlGaN side regions of the nanocolumn ( Physical Volume buffer1 and buffer2) :
Region buffer1
{
material = AlGaN
x = 0.3
structure = wz
y-growth-direction = (-1,0,1,0)
x-growth-direction = (-1,2,-1,0)
z-growth-direction = (0,0,0,1)
doping = 1e15
doping_type = acceptor
doping_level = 0.025
}
Region buffer2
{
material = AlGaN
x = 0.3
structure = wz
y-growth-direction = (-1,0,1,0)
x-growth-direction = (-1,2,-1,0)
z-growth-direction = (0,0,0,1)
doping = 1e15
doping_type = acceptor
doping_level = 0.025
} The Cluster Quantum_dot is defined to comprises the mesh regions qdot and barrier (see fig.1) in the quantum calculations:
Cluster Quantum_dot
{
mesh_regions = (qdot ,barrier )
}
To calculate strain in the nanocolumn, we define a macrostrain simulation (str) with a substrate b.c. referring to AlGaN material layer.
From the file str_elemental.plt, we plot the strain tensor component
and the sum of diagonal components, which shows the relative volume deformation in the nanocolumn.
![]() |
![]() |
Fig.3. component of the strain tensor |
Fig.4. Relative volume change |
We want to solve Poisson to find band profiles; to do this, as usual, we create a driftdiffusion simulation (dd), with no explicit boundary conditions to the two side surfaces of the nanocolumn. This means that flat band b.c. are implemented for top and bottom surfaces.
This time, however, we include a new feature, that is we apply to the lateral surface a surface charge b.c. (type = interface).
BC_Region surface_states1
{
type = interface
Ns = -1e10
}
BC_Region surface_states2
{
type = interface
Ns = -1e10
}
This option has two effects:
N.B. Usually, by default, piezo and pyro polarization at the boundaries are NOT included in the model, since it is assumed that either they are screened by free carriers and electric field, or the boundaries are very far from the active region of the device, so that polarization at boundaries are negligible.
Only in the case a b.c. with type = interface is defined, polarization at boundaries are taken into account; if Ns =0, only charge due to polarization is present, otherwise the surface charge is the sum of polarization charge and of Ns.
In Solver section, we specify Poisson calculation in this way:
driftdiffusion
{
coupling = poisson
.........
}
In Fig. 5 the total polarization is shown , together with the electric potential (from the output file dd_nodal.plt). One can see how the potential distribution is related to polarization, which generates a polarization charge.
|
| Fig.5. a) z component of total (piezoelectric and pyroelectric) polarization; b) electric potential |
For the quantum calculations, we define two efaschroedinger simulations: quantum_el for electrons and quantum_hl for holes
model efaschroedinger
{
options
{
simulation_name = quantum_el
physical_regions = Quantum_dotÂ
}
}
model efaschroedinger
{
options
{
simulation_name = quantum_hl
physical_regions = Quantum_dotÂ
}
}
In Physics section, we associate quantum_el simulation to a single-band calculation of conduction band states
quantum_el
{
model = conduction_band
particle = el
} and quantum_hl simulation to a k.p 6x6 calculation of valence states
quantum_hl
{
particle = hl
model = kp # k.p for valence band
kp_model = 6x6
} In Solver we select the krylovshur solver, the poisson model (dd) and the strain model (macrostrain)
quantum_el
{
Dirichlet_bc_everywhere = true
particle = el
number_of_eigenstates = 5
poisson_model_name = dd
strain_model_name = macrostrain
convergent_density = true
log_output = true
solver = krylovshur
monitor = true
ksp_type = bcgsl
pc_type = jacobi
}In Simulation section :
solve = (str, dd, quantum_el, quantum_hl )
defines the following flow of simulations:
Eigenvalues and wavefunctions can be found in the output files quantum_el_nodal.plt and quantum_hl_nodal.plt.
Here are the first four quantum states in the conduction band, which are confined inside the conical quantum dot.
![]() |
![]() |
![]() |
![]() |
And here is the first quantum state in the valence band.
| Attachment | Size |
|---|---|
| quantum_dot.tib | 4.7 KB |
| quantum_dot.geo | 6.83 KB |
| quantum_dot.msh | 2.37 MB |