Output-kp-data
The output of the k.p eigenvalues and
eigenfunctions is controlled by this keyword. All eigenfunctions and eigenvalues
between vb-min-ev and vb-max-ev (for conduction band:
cb-min-ev and cb-max-ev) are put out in one
file for each band.
k.p dispersion without density integration
The program chooses the maximum k vector up to which the states are
calculated automatically (see above). However, if one wants to know the
dispersion up to a given k vector, one has to specify the value in the
input file under the keyword $output-kp-data
and its specifier 'k-par-disp-range' [1/Angstrom]. Then the k.p
states will be calculated again in the end and put out.
!-------------------------------------------------------------!
$output-kp-data
optional !
destination-directory
character
required !
complex-wave-functions
character
optional !
kp-spinors
character
optional !
detailed-output
character
optional !
scale
double
optional !
shift-wavefunction-by-eigenvalue
character
optional !
!
bulk-kp-dispersion
character
optional !
bulk-kp-dispersion-3D
character
optional
!
grid-position
double_array
optional !
k-direction
double_array optional !
number-of-k-points
integer
optional !
shift-holes-to-zero
character
optional ! 'yes' / 'no'
!
k-par-dispersion
character
optional !
k-par-disp-ev-min
integer
optional !
k-par-disp-ev-max
integer
optional !
k-par-disp-k-range
double
optional !
k-par-disp-num-k-par
integer
optional !
DOS-density-of-states
character
optional !
DOS-Emin-Emax
double_array
optional ! [eV]
DOS-points
integer
optional !
!
!-------- range for eigenvalues and eigenfunctions
----------!
!
cb-num-ev-min
integer
optional !
cb-num-ev-max
integer
optional !
cb-k-par-min
integer
optional ! 1D/2D
cb-k-par-max
integer
optional ! 1D/2D
cb-k-SL-min
integer
optional ! for superlattice
cb-k-SL-max
integer
optional ! for superlattice
!
vb-num-ev-min
integer
optional !
vb-num-ev-max
integer
optional !
vb-k-par-min
integer
optional ! 1D/2D
vb-k-par-max
integer
optional ! 1D/2D
vb-k-SL-min
integer
optional ! for superlattice
vb-k-SL-max
integer
optional ! for superlattice
!
interband-matrix-elements
character
optional !
intraband-matrix-elements
character
optional !
intraband-lifetime
character
optional !
!
optical-matrix-element-output
character
optional
!
dipole-transition-type
character
optional
!
initial-band-min
integer
optional
!
initial-band-max
integer
optional
!
final-band-min
integer
optional
!
final-band-max
integer
optional
!
!
$end_output-kp-data
!
!-------------------------------------------------------------!
Syntax:
destination-directory = kp_data/
Name of directory to which the files should be written. Must exist and
directory name has to include the slash (\ for DOS and / for UNIX).
complex-wave-functions = yes /
no
Flag whether to print out the wave functions psi including real and
imaginary parts in addition to the output of Psi².
kp-spinors = yes /
no
Flag whether to print out the n = 6 (6x6 k.p) or n = 8 (8x8 k.p)
k.p spinors Psii2 in
addition to the output of Psi² which is the sum of all six or eight spinors:
Psi² = SUMi=1n Psii2
Filename: 3Dkp8x8_spinori_el_qc001_kpar001_ev001.fld
/ *.coord / *.dat
3Dkp8x8_spinori_complx_el_qc001_kpar001_ev001.fld
/ *.coord / *.dat
(if complex-wave-functions = yes)
detailed-output = yes /
no
Flag whether to print out additional output for k.p.
In particular more information about the eigenvalues for each k||
vector.
scale =
0.1d0
The scale parameter can be used to scale the size of the wave functions in
the output file.
1D: So far, it scales the wave function psi and psi²
(i.e. the probability amplitude or charge density) in the same way:
psi²' = scale * psi²
psi' = scale * psi
2D/3D: No scaling via input file implemented so far.
However, internally in 3D psi²
is scaled in any case by 1 * 1010.
??? In 3D, if specified in input file: scale
* 0.001 / MAXVAL(spinorV) * 1 * 1010 = 1 *
1017 / MAXVAL(spinorV)
1D: The units of psi² are [1/nm], the units
of psi are SQRT([1/nm]).
This way the integrated psi² over the
whole device (which is in units of [nm]) equals 1.
2D: The units of psi² are [1/nm²], the units of psi
are SQRT([1/nm²]).
This way the integrated psi² over the
whole device (which is in units of [nm²]) equals 1.
3D: The units of psi² are [1/nm³], the units of psi
are SQRT([1/nm³]).
This way the integrated psi² over the
whole device (which is in units of [nm³]) equals 1.
A good check to see if psi² is scaled correctly is to apply
Neumann boundary conditions at all boundaries of the quantum cluster. The
ground state probability density then is constant over the whole device. This
value in units of [1/nm] (1D), [1/nm²] (2D) or [1/nm³] (3D) multiplied by the
length (1D), area (2D) or volume (3D) of the quantum cluster must equal 1.
shift-wavefunction-by-eigenvalue = yes
! (1D: yes
= default)
=
no ! (2D/3D:
no = default)
If yes, in addition to default output, the wave function psi and the
probability density psi2 are shifted with respect to their
eigenvalue.
This is sometimes useful when plotting the wave functions together with the
band edge profile.
The relevant output files have the label _shift in their file
names.
Bulk dispersion:
See tutorial: k.p dispersion in bulk GaAs (strained / unstrained)
bulk-kp-dispersion = yes /
no
Flag that signals if you want to put out the pure bulk k.p dispersion
E(k) = E(kx,ky,kz) along a line from
k = 0 to k = (kx,ky,kz).
This can be of interest in strained
regions where the bands are shifted due to strain. The dispersion is taken at one point in
space grid-position which has to be located inside a quantum region.
It is also possible to output the parabolic, isotropic
dispersion of the effective-mass approximation.
bulk-kp-dispersion-3D = yes /
no
=
graphene ! (special option for
bulk graphene tight-binding band structure)
Flag that signals if you want to put out the pure bulk k.p dispersion
E(k) = E(kx,ky,kz) over the
three-dimensional k space in the AVS/Express format.
This can be of interest in strained
regions where the bands are shifted due to strain. The dispersion is taken at one point in
space grid-position which has to be located inside a quantum region.
- bulk_8x8kp_dispersion3D_cb1.fld
/ *.dat / *.coord / *_ijk.dat
- bulk_8x8kp_dispersion3D_cb2.fld / *.dat /
*.coord / *_ijk.dat
- bulk_8x8kp_dispersion3D_hh1.fld / *.dat /
*.coord / *_ijk.dat
- bulk_8x8kp_dispersion3D_hh2.fld / *.dat /
*.coord / *_ijk.dat
- bulk_8x8kp_dispersion3D_lh1.fld / *.dat /
*.coord / *_ijk.dat
- bulk_8x8kp_dispersion3D_lh2.fld / *.dat /
*.coord / *_ijk.dat
- bulk_8x8kp_dispersion3D_soh1.fld / *.dat / *.coord
/ *_ijk.dat
- bulk_8x8kp_dispersion3D_soh2.fld / *.dat / *.coord
/ *_ijk.dat
Note: The individual components are called
cb1 = electron 1
cb2
= electron 2
hh1
= heavy hole 1
hh2
= heavy hole 2
lh1
= light hole 1
lh2
= light hole 2
soh1 = split-off hole 1
soh2 = split-off hole 2
which is correct ONLY for the unstrained case. In the
strained case the character is no longer "purely" heavy, light and
split-off hole-like if strain is present because all the states are mixed!
Note that the '1' and '2' states might be
degenerate.
To see an example, please refer to the Tutorial "Strained
Silicon".
grid-position = 100d0 ! in units of
[nm]
grid-position = 10d0
! x = 10 [nm]
(1D)
=
10d0 20d0
! x = 10 [nm], y = 20 [nm]
(2D)
=
10d0 20d0 20d0
! x = 10 [nm], y = 10 [nm], z = 20 [nm] (3D)
Determines position of point in structure for bulk dispersion
(must be within a k.p quantum cluster).
k-direction = 0d0 1.0d0 1.0d0
! [1/Angstrom] along [011] direction with respect to
simulation coordinate system
=
0d0 0d0 1.0d0
! [1/Angstrom] along [001] direction with respect to
simulation coordinate system
Determines k-direction and range for dispersion plot
[1/Angstrom].
number-of-k-points = 50
Number of k points to be calculated (resolution)
in addition to the Gamma point at (kx,kykz)
= (0,0,0) for the bulk k.p dispersion along a particular direction.
shift-holes-to-zero = yes
= no
This is to shift the bulk dispersion curve, i.e. to set the zero point of
the energy axis to the topmost hole energy:
E(k=0) = 0 eV for the heavy and light holes
dispersion (unstrained case) or to the topmost hole energy (strained case or
wurtzite).
The conduction band dispersion then starts at the band gap energy and the
split-off energy dispersion at delta_split-off.
The strain can lift the degeneracy of heavy and light holes. Thus we define
for the zero of energy the topmost valence band energy if
shift-holes-to-zero = yes.
Output files
-
bulk_sg_dispersion000_kxkykz.dat isotropic and parabolic
dispersion of single-band effective masses from [000] to [kx ky kz]
bulk_8x8kp_dispersion000_kxkykz.dat dispersion of bulk
k.p Hamiltonian
from [000] to [kx ky kz]
-
bulk_sg_dispersion100_000_001.dat isotropic and parabolic
dispersion of single-band effective masses from [100] to [000] to [001]
bulk_8x8kp_dispersion100_000_001.dat dispersion of bulk k.p
Hamiltonian
from [100] to [000] to [001]
bulk_8x8kp_dispersion110_000_001.dat dispersion of bulk
k.p Hamiltonian
from [110] to [000] to [001]
bulk_8x8kp_dispersion111_000_001.dat dispersion of bulk
k.p Hamiltonian
from [111] to [000] to [001]
These directions might not be general enough for wurtzite or strained structures
but one can rotate the crystal coordinate system with respect to the simulations
coordinate system accordingly in the input file.
k|| dispersion:
k-par-dispersion = no
# no E(k||) dispersion
= yes #
E(k||) = E(kx,ky) dispersion for all
values of kx, ky
=
01-00 # E(k||)
= E(0,ky) dispersion for ky = [ky,max,...0]
= 01-00-11 # E(k||)
= E(0,ky) dispersion for ky = [ky,max,...,0]
(where kx=0) and for
E(k||) = E(kx,ky) dispersion for kx
= ky
= 01-00-10 # E(k||)
= E(0,ky) dispersion for ky = [ky,max,...,0]
(where kx=0) and for
E(k||)
= E(kx,0) dispersion for kx = [kx,max,...,0]
(where ky=0)
Flag that signals if you want to have the E(k||) = E(kx,ky) dispersion
to be put out. This is for the quantum mechanically calculated eigenvalues.
This also works for 2D, i.e. E(kz) but does not make sense
for 3D.
'01-00', '01-00-11'
and '01-00-10'
are special options for slices along special
directions through the two-dimensional E(k||) = E(kx,ky)
dispersion.
- 01-00:
A plot of E(kx,ky) along the line from E(0,ky,max)
to E(0,0) .
- 01-00-11: A plot
of E(kx,ky) along the line from E(0,ky,max)
to E(0,0) (where kx=0) and along
the line from E(0,0) to E(kx,max,ky,max=kx,max)
for kx = ky
- 01-00-10: A plot
of E(kx,ky) along the line from E(0,ky,max)
to E(0,0) (where kx=0) and along the line from E(0,0)
to E(kx,max,0) (where ky=0)
Note: If you use k-par-dispersion = 01-00,
01-00-11
or 01-00-10, then the calculation is much
faster because only at the k|| points at these symmetry lines the
eigenvalues are calculated.
Obviously in this case you cannot do a
self-consistent calculation. Also plotting the 2D dispersion of E(kx,ky)
(i.e. the 2D plot) or the density of states is not correct in this case.
k-par-disp-ev-min = 1
Lower boundary for range of eigenvalues for which the k||
dispersion should be written out.
This also works for 2D, i.e. E(kz) but does not make sense
for 3D.
This specifier affects the energy dispersion plots E(k||).
k-par-disp-ev-max = 10
Upper boundary for range of eigenvalues for which the k||
dispersion should be written out.
This also works for 2D, i.e. E(kz) but does not make sense
for 3D.
This specifier affects the energy dispersion plots E(k||).
k-par-disp-k-range = 0.1d0 ! [1/Angstrom]
Radius of k|| points [1/Angstrom]. Absolute value of
k radius [1/Angstrom],
if not present or zero, an internally used value is taken.
This also works for 2D, i.e. E(kz) but does not make sense for 3D.
k-par-disp-num-k-par = 20
Number of k|| points to be calculated. At present this
specifier is basically ignored as the number of k|| vectors is
specified in
$quantum-model-electrons and
$quantum-model-holes.
Therefore you can and should omit it.
If no values for range and number are given, default values are used in
self-consistent calculation.
However, it is useful to make use of this specifier if the self-consistent
calculation is on a coarse k space grid, and you want for the output a fine
k space resolution, then you should use this specifier with a higher number
of k|| points.
This also works for 2D, i.e. E(kz) but does not make sense
for 3D.
The conception of the k.p output is the following:
We define the k|| grid within the keywords:
- $quantum-model-electrons
- $quantum-model-holes
It cannot be a very fine grid because of a big amount of time necessary for the
self-consistent calculation.
But the user may wish to have a k.p output on a finer grid after the
self-consistent potential has been found.
There are two possibilities:
- k-par-disp-k-range
- k-par-disp-num-k-par
If none of these entries is present within the keyword $output-kp-data
(or not different to the default ones as specified in $quantum-model-electrons/$quantum-model-holes) then the k.p eigenfunctions/eigenenergies that were used for the
self-consistent calculations will be written out.
- If any of these entries is present then another set of k|| points
will be considered, a new set of eigenfunctions will be calculated and then
written out.
At present, k-par-disp-k-range must be present unless specified
within $quantum-model-electrons/$quantum-model-holes:
k-range-determination-method = k-max-input !
1D/2D
k-range
= 1.0d0
Density of states (DOS) for k|| dispersion
DOS-density-of-states = yes ! 'yes' / 'no'
flag to output the density of states (DOS) (default: 'no')
! only implemented for 1D so far, i.e. E(kx,ky)
DOS-Emin-Emax =
0d0 2.5d0 ! minimum
and maximum energy for density of states (DOS) [eV]
! used for DOS calculation
! for Monte Carlo part: used for DOS calculation and scattering tables
DOS-points =
1000 !
number of points between DOS-Emin and DOS-Emax (default: 1000).
! This number determines the grid resolution of the energy grid used for the density of states (DOS)
output.
==>
Energy_grid = (DOS_Emax - DOS_Emin) / DOS_Points = 2.5 eV / 1000 = 0.0025
eV
For more information on the output (e.g. units), see below.
For more information on the density of states, have a look at the tutorial:
Density of states (DOS) in a GaAs quantum well with infinite barriers
Conduction bands:
cb-num-ev-min = 1
Lower boundary for range of conduction band eigenvalues for which those and
the eigenfunctions are put out.
cb-num-ev-max = 1
Upper boundary for range of conduction band eigenvalues for which those and
the eigenfunctions are put out.
cb-k-par-min = 1
Lower boundary for range of conduction band k|| points in
1D for which
eigenvalues and eigenfunctions are put out.
Lower boundary for range of conduction band kz points in 2D for which
eigenvalues and eigenfunctions are put out.
(Does not make sense in 3D.)
cb-k-par-max = 1
Upper boundary for range of conduction band k|| points for which
eigenvalues and eigenfunctions are put out.
Upper boundary for range of conduction band kz points in 2D for which
eigenvalues and eigenfunctions are put out.
(Does not make sense in 3D.)
cb-k-z-min = 1
cb-k-SL-min = 1
Only for superlattices (should be greater than or equal to 1).
Lower bound for range of superlattice vectors Kz (1D),
Kx,Ky (2D), Kx,Ky,Kz
(3D).
cb-k-z-max = 1
cb-k-SL-max = 1
Only for superlattices (should be greater than or equal to 1).
Upper bound for range of superlattice vectors Kz
(1D), Kx,Ky (2D), Kx,Ky,Kz
(3D).
Valence bands:
vb-num-ev-min = 1
Lower boundary for range of valence band eigenvalues for which those and
the eigenfunctions are put out.
vb-num-ev-max = 1
Upper boundary for range of valence band eigenvalues for which those and
the eigenfunctions are put out.
vb-k-par-min = 1
Lower boundary for range of valence band k|| points in 1D for which eigenvalues and eigenfunctions are put out.
Lower boundary for range of valence band kz points in 2D for which
eigenvalues and eigenfunctions are put out.
(Does not make sense in 3D.)
vb-k-par-max = 1
Upper boundary for range of valence band k|| points in 1D for
which eigenvalues and eigenfunctions are put out.
Upper boundary for range of valence band kz points in 2D for which
eigenvalues and eigenfunctions are put out.
(Does not make sense in 3D.)
vb-k-z-min = 1
vb-k-SL-min = 1
Only for superlattices (should be greater than or equal to 1).
Lower bound for range of superlattice vectors Kz (1D),
Kx,Ky (2D), Kx,Ky,Kz
(3D).
vb-k-z-max = 1
vb-k-SL-max = 1
Only for superlattices (should be greater than or equal to 1).
Upper bound for range of superlattice vectors Kz (1D),
Kx,Ky (2D), Kx,Ky,Kz
(3D).
interband-matrix-elements = yes !
calculates interband matrix elements
=
no
==> square of spatial overlap matrix element | <psi_i* | psi_j>
|^2
The output files
interband1D_vb001_cb001_qc001_hlsg001_deg001_dir.dat
(heavy hole <-> Gamma conduction band)
interband1D_vb002_cb001_qc001_hlsg002_deg001_dir.dat
(light hole <-> Gamma conduction
band)
interband1D_vb003_cb001_qc001_hlsg003_deg001_dir.dat
(split-off hole <-> Gamma conduction band)
contain data like
Spatial overlap matrix elements | < psi_hl_i | psi_el_j > |^2 and
energy of transition in [eV]
heavy hole <-> Gamma conduction band
------------------------------------------------------------------------
|<psi_vb001|psi_cb001>|^2 0.987507995852382
1.654103
|<psi_vb001|psi_cb002>|^2 1.336279027563441E-030
|<psi_vb001|psi_cb003>|^2 -0.145559411422541
2.538366
|<psi_vb002|psi_cb001>|^2 1.133344425625580E-030
|<psi_vb002|psi_cb002>|^2 -0.964789984970279
2.065139
which are the spatial overlap matrix elements between all calculated
states in bands 'cband' and 'vband' from eigenvalues 'min-ev' to 'max-ev'.
To plot matrix elements vs. electric field.
The electric field is calculated by ('voltage-offset' + vbias) /
distance
with v_bias = sweep_index * sweep_voltage.
The E_field is scaled to [kV/cm].
The 'voltage-offset' is the built-in potential in [V].
distance: The length of the region with constant field [in scaled units:
nm] is specified via 'lever-arm-length'.
This only works for intrinsic regions with quasi constant electric field,
but imitates the way experimental physicists approximate the electric field.
In order to use only bound states the MODULE bound_states_1D
must be initialized.
=> $quantum-bound-states
-> momentum matrix <psi*|p|psi> (not implemented yet)
-> Coulomb element <psi*|V|psi> (not implemented yet)
with V = Int( 1/4pi (r1-r2) * |psi(r2)|‹dr2 )
intraband-matrix-elements = p
! < psij* | p
| psii >
=
z ! < psij* |
z | psii >
=
o ! < psij* | psii
> (spatial overlap)
=
yes ! (prints out all matrix elements, i.e. 'p',
'z' and 'o')
=
no !
Calculates intersubband dipole moment and oscillator strength.
The output files
intraband_p1D_cb001_qc001_6x6kp_dir.dat
z
!
kind of matrix element ('p' / 'z'
/ 'o')
o
!
kind of matrix element ('p' / 'z'
/ 'o')
2D
!
'1D', '2D', '3D'
3D
! '1D', '2D', '3D'
vb001
! kind of band (Gamma conduction band 'cb001' /
heavy, light and split-off hole bands 'vb001')
8x8 !
kind of k.p ('4x4' / '6x6' / '8x8')
neu !
kind of boundary condition (Dirichlet 'dir' / Neumann 'neu')
contain data like
Note that the two-fold spin-degeneracy in the single-band approximation
('effective-mass') is counted
explicitely in k.p.
(Note: < psij* |
p | psii >
matrix element given in green color.)
-------------------------------------------------------------------------------
Intersubband transitions
=> Gamma conduction band
-------------------------------------------------------------------------------
Electric field in z-direction [kV/cm]: 0.0000000E+00
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Intersubband dipole moment < psi_j* |
z | psi_i > [Angstrom]
Intersubband dipole moment <
psi_j* | p | psi_i > [- i h_bar / Angstrom]
------------------|------------------------------------------------------------
Oscillator strength []
------------------|--------------|---------------------------------------------
Energy of transition [eV]
------------------|--------------|--------------|------------------------------
m* [m_0]
------------------|--------------|--------------|-----------|------------------
<psi001*|z|psi001> 249.0000
(matrix element <1|1> depends on choice of origin!)
<psi002*|z|psi001>
249.0000
(matrix element <2|1> depends on choice of origin!)
<psi001*|p|psi001>
1.8126842E-18 (matrix element
<1|1> independent of
origin)
<psi002*|p|psi001> 1.8126842E-18
(matrix element <2|1> independent of origin)
<psi003*|z|psi001> 18.01673
0.9602799 0.1694912 6.6500001E-02
<psi004*|z|psi001> 18.01673
0.9602799 0.1694912 6.6500001E-02
<psi003*|p|psi001> 2.6649671E-02 0.9602798
0.1694912 6.6500001E-02
<psi004*|p|psi001> 2.6649671E-02 0.9602798
0.1694912 6.6500001E-02
<psi005*|z|psi001> 3.5382732E-13
<psi006*|z|psi001> 3.5382732E-13
<psi005*|p|psi001>
2.1414240E-15
<psi006*|p|psi001> 2.1414240E-15
<psi007*|z|psi001> 1.441336
3.0698583E-02 0.8466209 6.6500001E-02
<psi008*|z|psi001> 1.441336
3.0698583E-02 0.8466209 6.6500001E-02
<psi007*|p|psi001> 1.0649348E-02 3.0698583E-02
0.8466209 6.6500001E-02
<psi008*|p|psi001> 1.0649348E-02 3.0698583E-02
0.8466209 6.6500001E-02
<psi009*|z|psi001>
7.2598817E-13
<psi010*|z|psi001> 7.2598817E-13
<psi009*|p|psi001>
1.0445775E-14
<psi010*|p|psi001> 1.0445775E-14
<psi011*|z|psi001> 0.3971008
5.4281550E-03 1.972205 6.6500001E-02
<psi012*|z|psi001> 0.3971008
5.4281550E-03 1.972205 6.6500001E-02
<psi011*|p|psi001> 6.8347319E-03 5.4281550E-03
1.972205 6.6500001E-02
<psi012*|p|psi001> 6.8347319E-03 5.4281550E-03
1.972205 6.6500001E-02
...
<psi039*|z|psi001> 1.0178294E-02
3.9452352E-05 21.81846 6.6500001E-02
<psi040*|z|psi001> 1.0178294E-02 3.9452352E-05
21.81846 6.6500001E-02
<psi039*|p|psi001> 1.9380630E-03 3.9452349E-05
21.81846 6.6500001E-02
<psi040*|p|psi001> 1.9380630E-03 3.9452349E-05
21.81846 6.6500001E-02
Sum rule of oscillator strength: f_j,001 = 0.9994023
Sum rule of oscillator strength: f_j,001 = 0.9994023
...
which are the intersubband dipole moments
| Mji | = | integral (psij* (z) z psii
(z) dz) |
and the oscillator strengths
fji = 2m* / hbar² (Ej
- Ei) | Mji |²
between all calculated
states in each band from eigenvalues 'min-ev' to 'max-ev'.
Unfortunately, the commonly used
Intersubband dipole moment < psi_j* | z | psi_i >
[Angstrom]
depends on the choice of origin for the matrix elements where j = i
(also j+1 = i in some cases because of spin degeneracy, see above), thus the user might prefer to output the
Intersubband dipole moment < psi_j* | p | psi_i > [- i
h_bar / Angstrom]
which are the intersubband dipole moments
| Nji | = | integral (psij* (z) pz psii
(z) dz) | = | - i hbar integral (psij* (z) d/dz psii
(z) dz) |
and the oscillator strengths
fji = 2m* / hbar² (Ej
- Ei) | Mji |² = 2
/ ( m* (Ej
- Ei) ) | Nji |²
between all calculated
states in each band from eigenvalues 'min-ev' to 'max-ev'.
For more details, have a look at the tutorial:
Optical
intersubband transitions in a quantum well - Intraband matrix elements and selection rules
intraband-lifetime = yes !
calculates the lifetime of intersubband transitions
= no ! does nothing
(default)
This feature is useful for e.g. quantum cascade lasers.
Note: intraband-matrix-elements must not be set to no
in order to print out the lifetimes (scattering rates).
See tutorial "Scattering times for electrons in unbiased and biased single and multiple
quantum wells" for more details.
Output:
Simple files
kp_8x8eigenvalues_qc001_el1D_dir.dat
contains all electron eigenvalues for k = 0 and quantum cluster 1
(for each grid point), so that they can be plotted into the
conduction/valence band edge diagram.
Similar for holes and 6x6 k.p.
kp_8x8psi_squared_qc001_el1D_dir.dat
contains the square of all electron wave functions (psi2) for
k = 0 and quantum cluster 1 (for each grid point). Note that psi2
is shifted by the corresponding eigenvalues so that the square of the
wave functions can be plotted into the conduction/valence band edge diagram.
Similar for holes and 6x6 k.p.
dir = Dirichlet
boundary conditions
neu = Neumann boundary conditions
per = periodic
boundary conditions
k.p eigenvalues
e.g. kp_8x8eigenvalues_pos_qc001_el_kpar0001_1D_dir.dat
This file contains all eigenvalues. It can be plotted into a conduction or
valence band profile diagram.
k.p eigenfunctions
Filename:
kp_8x8_el1D_wv_qc001_ev003_kpar001_Kz001_dir.dat |
8x8 |
|
|
|
|
|
|
Kind of kp solved (8x8 or
6x6) |
| |
_el1D_wv |
|
|
|
|
|
Electron/hole (_el/_hl)
eigenvectors (_wv) |
| |
|
_qc001 |
|
|
|
|
Number of quantum cluster |
| |
|
|
_ev001 |
|
|
|
Number of eigenvalue |
| |
|
|
|
kpar001 |
|
|
Number of k|| point |
| |
|
|
|
|
Kz001 |
|
Number of Kz point
(superlattice vector) |
| |
|
|
|
|
|
_dir |
Boundary condition: Neumann/Dirichlet (_neu/_dir) |
Structure:
| position[nm] |
PSI^2_SUM |
PSI^2(1) |
PSI^2(2) |
PSI^2(3) |
PSI^2(4) |
PSI^2(5) |
PSI^2(6) |
PSI^2(7) |
PSI^2(8) |
| Position |
Sum of components^2 |
Squares of components of k.p-vector.
Eight in case of 8x8 k.p / six for 6x6 k.p / four for 4x4 k.p. |
k.p complex eigenfunctions:
Filename:
kp_comp_8x8_el1D_wv_qc001_ev002_kpar001_Kz001_dir.dat |
_comp |
|
|
|
|
|
|
|
Complex wave functions |
| |
_8x8 |
|
|
|
|
|
|
Kind of k.p solved (8x8 or
6x6) |
| |
|
_el1D_wv |
|
|
|
|
|
Electron/hole (_el/_hl)
wavevectors (_wv) |
| |
|
|
_qc001 |
|
|
|
|
Number of quantum cluster |
| |
|
|
|
_ev001 |
|
|
|
Number of eigenvalue |
| |
|
|
|
|
kpar001 |
|
|
Number of k|| point |
| |
|
|
|
|
|
Kz001 |
|
Number of Kz point
(superlattice vector) |
| |
|
|
|
|
|
|
_dir |
Boundary condition:
Neumann/Dirichlet (_neu/_dir) |
Structure:
| position[nm] |
PSI_real001 |
PSI_imag001 |
... |
| position |
Real part of 1st component |
Imaginary part of 1st component |
... |
schroedinger-kp-discretization =
finite-differences
The components are: | x+ >, | y+ >, | z+ >, | x- >, | y- >, | z- >
| x >, | y >, | z > correspond to x, y, z of the calculation
system.
+ and - correspond to the spin projection along the z
axis of the crystal system.
In nextnano3 k.p subroutine we introduced an
unnecessary rotation. When we get rid of it in the future, we will have |
x >, | y >, | z > in crystal system.
kx, ky are in calculation system.
schroedinger-kp-discretization = box-integration
The components are: | hh1 >, | lh1 >, | lh2 >, | hh2 >, | so1 >,
| so2 >
hh = heavy hole
lh = light hole
so = split-off hole
| J , m >
| 3/2, 3/2 > = | hh1 >
| 3/2, 1/2 > = | lh1 >
| 3/2, -1/2 > = | lh2 >
| 3/2, -3/2 > = | hh2 >
| 1/2, 1/2 > = | so1 >
| 1/2, -1/2 > = | so2 >
k.p bulk dispersion:
Bulk k.p dispersion E(k).
Filename:
bulk_8x8kp_dispersion000_kxkykz.dat (k.p dispersion)
bulk_sg_dispersion000_kxkykz.dat
(effective-mass dispersion)
Structure:
| k |
hi ( i = 1-8, or 1-6) |
Position in k space in direction of k-direction [1/Angstrom] |
Eigenvalues of bulk k.p Hamiltonian |
See tutorial: k.p dispersion in bulk GaAs (strained / unstrained)
k|| dispersion:
Remark:
1D: The output is two-dimensional because the dispersion in the whole plane
perpendicular to the quantization direction is calculated. The output therefore
consists of three files (AVS/Express format):
AVS/Express
Field file: kpar1D_disp_hl_6x6kp_qc001_ev001_2Dplot.fld
AVS/Express field file
Coordinates: kpar1D_disp_hl_6x6kp_qc001_ev001_2Dplot.coord
AVS/Express coordinate files, x/y coordinates
Data file:
kpar1D_disp_hl_6x6kp_qc001_ev001_2Dplot.dat
AVS/Express data file, dispersion in nonquantized
directions
Filename:
kpar1D_disp_hl_6x6kp_qc001_ev001_2Dplot.dat |
_hl/_el |
|
|
File containing data for conduction band
(_el) or valence band (_hl) eigenstates |
| |
_6x6kp/_8x8kp |
|
kind of k.p (6x6 or 8x8) |
| |
_qc001
|
|
Number of quantum cluster |
| |
|
_ev001 |
Number of eigenvalue of subband |
Structure:
| E_val_k_par: |
| Eigenvalues of k|| points |
Example: See Tutorial "Energy dispersion of holes in quantum wells".

k||
dispersion from [00] to [10]:
1D: This file contains data of a cut along the line from zero (i.e. [kx,ky]
= [0,0] = [00]) to [10] (i.e. [kx,ky] = [kx,0]
where kx > 0) of the 2D plot of the E(k||)=E(kx,ky)
dispersion.
Filename:
kpar1D_disp_00_10_hl_6x6kp_ev001.dat
kpar1D_disp_00_10_el_8x8kp_ev001.dat
kpar1D_disp_00_10_hl_6x6kp_ev001.dat |
_hl/_el |
|
|
File containing data for conduction band
(_el) or valence band (_hl) eigenstates |
| |
_6x6kp/_8x8kp |
|
kind of k.p (6x6 or 8x8) |
| |
|
_ev001 |
Number of eigenvalue of subband |
Structure:
abscissa |
eigenvalue |
kx |
ky |
num_kpar |
kx |
Eigenvalue of k|| point |
kx position [1/Angstrom] |
ky position [1/Angstrom] |
Number of k|| point |
The file kpar1D_disp_00_10hl_8x8kp_ev_min001kp_ev_max010.dat
contains essentially the same data but here all subband dispersions from
eigenvalue min001 to eigenvalue max011 are contained
in one single file.
k||
dispersion from [01] to [00] and from [00] to [11]:
1D: This file contains data of cuts along the line from [01] to zero
and from zero to [11] of the 2D plot of the E(k||)=E(kx,ky)
dispersion.
Filename:
kpar1D_disp_01_00_11_hl_6x6kp_ev001.dat
kpar1D_disp_01_00_11_el_8x8kp_ev001.dat
kpar1D_disp_01_00_11_hl_6x6kp_ev001.dat |
_hl/_el |
|
|
File containing data for conduction band
(_el) or valence band (_hl) eigenstates |
| |
_6x6kp/_8x8kp |
|
kind of k.p (6x6 or 8x8) |
| |
|
_ev001 |
Number of eigenvalue of subband |
Structure:
abscissa |
eigenvalue |
kx |
ky |
num_kpar |
-ky
-- for [01] to [00]
SQRT(kx²+ky²) -- for [00] to [11] |
Eigenvalue of k|| point |
kx position [1/Angstrom] |
ky position [1/Angstrom] |
Number of k|| point |
To plot the data file, only the first (abscissa) and the second column
(eigenvalue) are important.
Example: See Tutorial "Energy dispersion of holes in quantum wells".

The file kpar1D_disp_01_00_11hl_8x8kp_ev_min001kp_ev_max010.dat
contains essentially the same data but here all subband dispersions from
eigenvalue min001 to eigenvalue max011 are contained
in one single file.
Simple
k||
dispersion data:
Filename:
kpar1D_disp_simple_hl_6x6kp_ev001.dat
kpar1D_disp_simple_el_8x8kp_ev001.dat
kpar1D_disp_simple_hl_ev001.dat |
_hl/_el |
|
|
File containing data for conduction band
(_el) or valence band (_hl) eigenstates |
| |
_6x6kp/_8x8kp |
|
kind of k.p (6x6 or 8x8) |
| |
|
_ev001 |
Number of eigenvalue of subband |
Structure:
num_kpar |
kx |
ky |
eigenvalue |
| Number of k|| point |
kx position [1/Angstrom] |
ky position [1/Angstrom] |
Eigenvalue of k|| point |
This file cannot be plotted. It just contains for each k||
point the corresponding kx and ky values as well as its
corresponding eigenvalue.
Density of states (DOS)
The two-dimensional density of states (DOS) is written to the files 'DOS_hl_6x6kp.dat'
and 'DOS_hl_6x6kp_sum.dat' (and similar for electrons).
The DOS has been calculated from the energy dispersion E(k) = E(kx,ky).
'DOS_hl_6x6kp_norm.dat'
=======================
This file contains the density of states (DOS) for each eigenvalue (i.e.
subband).
The first column contains the energy in units of [eV], the other columns the
DOS of each individual subband in units of [eV-1 m-2].
'DOS_hl_6x6kp_sum_norm.dat'
===========================
This file contains the density of states (DOS) , summed over each
eigenvalue (i.e. subband). The first column contains the energy in units
of [eV], the second column the DOS (sum over all subbands) in units of [eV-1
m-2].
For the above two files, the x axis is in units of [eV] and its boundaries can be
adjusted by the following specifier:
DOS-Emin-Emax = 0d0 2.5d0 ! [eV]
The energy grid of the x axis (energy grid resolution) can be adjusted by the
following specifier which determines the
number of points between DOS-Emin and DOS-Emax:
DOS-points = 1000
==> Energy_grid = (DOS_Emax - DOS_Emin) / DOS_Points = 2.5 eV / 1000
= 0.0025 eV
Density n(kx,ky)
kpar1D_density_el_8x8kp_qc001_2Dplot.fld
- contains density as a function of kx and ky: n(kx,ky)
kpar1D_density_el_8x8kp_qc001_ev001_2Dplot.fld - contains
density as a function of kx and ky: ni(kx,ky)
for each eigenvalue i
The units are dimensionless, i.e. if one integrates over kx and ky
(which are in units of [1/m]), one gets a sheet charge density in
units of [m-2].
Optics
For the option to calculate and output the optical
matrix elements we need the following specifiers.
optical-matrix-element-output = no
= yes !
output of intensity, oscillator strength and transition energies
= complex ! output of intensity,
oscillator strength and transition energies, as well as complex matrix element
dipole-transition-type =
el-el
= el-hl
= hl-el
= hl-hl
initial-band-min
= 1
initial-band-max
= 2
final-band-min
= 8
final-band-max
= 9
Note: For 'el-hl' initial means 'el',
final means 'hl'.
For 'hl-el'
initial means 'hl', final means 'el'.
Example: In this example, the following transitions are considered:
1 ->
8
1 ->
9
2 ->
8
2 ->
9
1D:
This generates a 2D plot (in the AVS/Express format) for the intensity I(kx, ky)
in units of [eV].
In addition, a 2D plot for the optical matrix
element: P(kx, ky) in units of SQRT([2eV/m0])
is generated if optical-matrix-element-output =
complex.
Note that the intensity and the matrix element are
three-dimensional vectors with components Ix, Iy, Iz
or Px, Py, Pz, respectively, and kx, ky
is in units of [1/Angstrom].
The optical matrix element will be calculated between band-min and
band-max eigenvalues.
The k|| points are the same that are chosen for the energy
dispersion output.
Output units:
a) Intensity: I = 2/m0 * <
e.P >: Ix, Iy, Iz, Ixy,
Ixz, Iyz:
[eV]
b) complex value of the momentum matrix element Px, Py, Pz, Pxy, Pxz, Pyz:
SQRT([2eV/m0])
e is the light polarization vector
P is the momentum operator (vector)
Px(k) = <psi_1(k)| e.P |psi_2(k)>, where |e|=1,
e || x (i.e. e || [1,0,0])
Pxy(k) = <psi_1(k)| e.P |psi_2(k)>, where |e|=1,
e || xy (i.e. e || [1,1,0])
The file 'opt_Intensity_info...txt' contains the
following data:
optical-matrix-element-output = yes
! Units: [eV]
kx ky kz
Ix
Iy
Iz
Ixy
Ixz
Iyz
The file 'opt_MatrixElement_info...txt' contains the
following data:
optical-matrix-element-output = complex
! Units: SQRT([2eV/m0])
kx ky kz Re(Px)
Im(Px) Re(Py) Im(Py) Re(Pz)
Im(Pz) Re(Pxy)
Im(Pxy) Re(Pxz) Im(Pxz) Re(Pyz)
Im(Pyz)
Optical oscillator strength
|
 |
|
Example: Optical
oscillator strength of the fundamental transition in a 2D quantum wire
calculated by 8x8 k.p theory. The optical matrix elements (complex)
were calculated. In the picture one can see the dependence on the
polarization.
Note that the
oscillator strength is a dimensionless quantity. It is useful in order to
compare the probabilities of different dipole transitions.
(The calculations were
performed by Michael Povolotskyi, University of Rome "Tor Vergata".) |
Most attention is paid to
the matrix element. It is not taken from the database (or input file), instead
it is calculated from the k.p Hamiltonian. Due to this approach all kinds
of dipole transitions are calculated in the same manner. All the symmetry is
taken into account automatically.
Example: Optical intraband TE mode (transverse electric) transitions are treated
correctly within k.p. (Note that they are not zero within k.p but
they are zero for electrons in a single band approach.)
k.p material parameters
The k.p material parameters can be found
in the folder material_parameters/.
The file 6x6kp_parameters1D_used.dat
contains the following columns:
material_grid
position in [nm] on material grid
L M N+ N- N
6x6 k.p Dresselhaus parameters L,M,N. Note: N = N+
+ N-
This file
6x6kp_Luttinger_parameters1D_used.dat contains the following columns:
material_grid
position in [nm] on material grid
gamma1 gamma2 gamma3 (kappa)
6x6 k.p Luttinger parameters (if
kappa is not used, it is in brackets)
(A) (B) (C^2)
A,B,C k.p parameters of Dresselhaus, Kip, Kittel (DKK
Hamiltonian) in units of [hbar2/2m0],
Phys. Rev. 98, 368 (1955)
The warping (anisotropy) is caused by C. If C is zero, than the
energy dispersion is isotropic (spherical).
The dispersion is nonparabolic if both B and C are nonzero.
(m_hh_iso) (m_lh_iso) (m_so_iso)
spherically averaged heavy and light hole masses according
to Yu, Cardona, Fundamentals of semiconductors, p. 201 (Problem 4.4),
A. Baldereschi, N.O. Lipari, PRB 8, 2697 (1973)
The split-off mass is currently 1/gamma1 for 6x6 k.p,
but for 8x8 k.p according to I. Vurgaftman et al.,
JAP 89, 5815, eq. (2.18).
(m_hh_100) (m_lh_100)
heavy and light hole masses along [100] according to I.
Vurgaftman et al., JAP 89, 5815, eq. (2.16) and eq. (2.17)
(m_hh_110) (m_lh_110)
heavy and light hole masses along [110] according to I.
Vurgaftman et al., JAP 89, 5815, eq. (2.16) and eq. (2.17)
(m_hh_111) (m_lh_111)
heavy and light hole masses along [111] according to I.
Vurgaftman et al., JAP 89, 5815, eq. (2.16) and eq. (2.17)
The A, B, C parameters and the masses are
currently not used inside the code. These values are just calculated and printed
out to make the k.p parameters "more transparent".
If it holds
gamma2 = gamma3 (spherical approximation) then the valence
band energy dispersion is isotropic. (This is equivalent to: L - M = N.)
|