Interface Hamiltonian 8-band Zinc-Blende
The Model
The interface Hamiltonian is used to model the heterostructures with atomic sharp interfaces. This is an extension of the standard 8-band \(\mathbf{k} \cdot \mathbf{p}\) model (described here). The model, originally derived in [Kilpstein2010], includes \(l=2\) perturbation terms, which have been omitted in our implementaion, consistent with the approach in [LivnehPRB2012].
The interface Hamiltonian in the block form is given by:
where \(\delta\) is the Dirac delta function, \(z_{i}\) is the position of the interface, \(D_S\), \(D_X\), \(D_Z\), \(\alpha\), and \(\beta\) are the interface Hamiltonian parameters, \(\pi\) is the parameter that can take values of \(\pm 1\). Parameter \(\pi\) is used to distinguish different ordering of materials at the interface, for example InaAs/GaSb and GaSb/InAs interfaces would have same interface paramters, but opposite \(\pi\) values.
Implementation and usage
The interface Hamiltonian is available only for 1D simulations. For the best results, ensure that there is a grid point at the interface position, for example like so:
grid{
xgrid{
...
line{ pos = $x_1 spacing = $x_interface } # material1
line{ pos = $x_interface spacing = $x_2 } # material2
...
}
}
To add the interface Hamiltonian to the simulation, use the interface
keyword in quantum{ region{ kp8_band{} } }
section of input file.
Example:
quantum{
region{
kp_8band{
...
interface{
position = $x_interface
D_S = 1.0
D_X = 2.0
D_Z = 1.5
alpha = 0.1
beta = 0.1
reverse = no
}
...
}
}
}
reverse=no
corresponds to \(\pi = 1\), and reverse=yes
corresponds to \(\pi = -1\). Other interface parameters are expressed in \(eV \cdot nm\).
One can add multiple interfaces to the simulation by adding multiple interface
blocks to the input file.
Example below has 2 interfaces with the same paramters, but different order of materials (common case for modelling of quantum well).
quantum{
region{
kp_8band{
...
interface{
position = $x_interface1
D_S = 1.0
D_X = 2.0
D_Z = 1.5
alpha = 0.1
beta = 0.1
reverse = no
}
interface{
position = $x_interface2
D_S = 1.0
D_X = 2.0
D_Z = 1.5
alpha = 0.1
beta = 0.1
reverse = yes
}
}
}
}
To set up repeating interfaces, one can use the array_x
keyword in the interface
block.
quantum{
region{
kp_8band{
...
interface{
position = 10.0
... # parameters here
array_x{
shift = 2.0
min = -2
max = 3
{
}
}
}
}
The above example will create 6 interfaces with the same parameters, at positions 6.0, 8.0, 10.0, 12.0, 14.0 and 16.0 nm.
Last update: 23/01/2025