[ Home ] [ News ] [ Contact ] [ Search ] output-kp-data

 About us
 Useful Links
 Publications
 Copyright notice
 nextnano³ documentation

 -> Download Software
 * password protected

 

 
Up
 

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 !
 scale                                 double        optional !
was called kp-vec-scale
 kp-vec-scale                          double        optional !
now called scale
                                                              !
 bulk-kp-dispersion                    character     optional !
 bulk-kp-dispersion-3D                 character     optional !
 grid-position                         double_array  optional !
was called x-pos
 x-pos                                 double        optional !
now called grid-position
 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-z-min                            integer       optional !
for superlattice (redundant in new version)
 cb-k-SL-min                           integer       optional !
for superlattice (replaces cb-k-z-min)
 cb-k-z-max                            integer       optional !
for superlattice (redundant in new version)
 cb-k-SL-max                           integer       optional !
for superlattice (replaces cb-k-z-max)
                                                              !
 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-z-min                            integer       optional !
for superlattice (redundant in new version)
 vb-k-SL-min                           integer       optional !
for superlattice (replaces vb-k-z-min)
 vb-k-z-max                            integer       optional !
for superlattice (redundant in new version)
 vb-k-SL-max                           integer       optional !
for superlattice (replaces vb-k-z-max)
                                                              !
 interband-matrix-elements             character     optional !
 intraband-matrix-elements             character     optional !
 intraband-lifetime                    character     optional !
                                                              !
 optical-matrix-element-output         character     optional ! 'no', 'squared-modulus', 'complex'
 dipole-transition-type                character     optional ! 'hl-hl', 'el-hl', 'hl-el', 'el-el'
 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)

 

scale        = 0.1d0 ! was called kp-vec-scale
kp-vec-scale = 0.1d0 !
now called scale

The scale parameter can be used to scale the size of the wavefunctions in the output file.

1D: So far, it scales the wavefunction 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.

 

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.
- kp_bulk_dispersion3D_cb1.fld  / *.dat / *.coord    / *_ijk.dat
- kp_bulk_dispersion3D_cb2.fld  / *.dat / *.coord    / *_ijk.dat
- kp_bulk_dispersion3D_hh1.fld  / *.dat / *.coord    / *_ijk.dat
- kp_bulk_dispersion3D_hh2.fld  / *.dat / *.coord    / *_ijk.dat
- kp_bulk_dispersion3D_lh1.fld  / *.dat / *.coord    / *_ijk.dat
- kp_bulk_dispersion3D_lh2.fld  / *.dat / *.coord    / *_ijk.dat
- kp_bulk_dispersion3D_soh1.fld / *.dat / *.coord    / *_ijk.dat
- kp_bulk_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! Noote 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]: was called x-pos
x-pos         = 100d0 !
in units of [nm]: now called grid-position

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).
Note:
x-pos also works for 1D simulations along the y and z direction, so there is no specifier like y-pos or z-pos.

k-direction = 1d0 0.5d0 0.5d0   ! [2pi/a]

Determines k-direction and range for dispersion plot [1/Angstrom].

number-of-k-points = 50

Number of k points to be calculated (resolution)

shift-holes-to-zero = yes / no

This is to shift the bulk dispersion curve. Most of the time it is better to start with E(k=0) = 0 for the heavy and light holes dispersion.
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.

 

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

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' and '01-00-11' 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

Note: If you use k-par-dispersion = 01-00 or = 01-00-11, 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.

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.

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:

  1. - 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.
  2. 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            = 1001       ! number of points between DOS-Emin and DOS-Emax, including boundary points (default: 1001.
                                    ! This number determines the grid resolution of the energy grid
                                    ! used for the density of states (DOS).
           ==>  Energy_grid = (DOS_Emax - DOS_Emin) / (DOS_Points - 1) = 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
To plot matrix elements vs. electric field.
-> spatial overlap <psi* | psi>
-> 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 )

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

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 > and
                                            energy of transition in [eV]
 heavy hole <-> Gamma conduction band
------------------------------------------------------------------------
  <psi_vb001|psi_cb001>  0.987507995852382         1.654103
  <psi_vb001|psi_cb002>  1.336279027563441E-014
  <psi_vb001|psi_cb003> -0.145559411422541         2.538366
  <psi_vb002|psi_cb001>  1.133344425625580E-014
  <psi_vb002|psi_cb002> -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'.

 

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      
(depends on choice of origin!)
<psi002*|z|psi001>  249.0000       (depends on choice of origin!)
<psi001*|p|psi001 1.8126842E-18 
(independent of origin)
<psi002*|p|psi0011.8126842E-18 
(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, 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_8x8wavefunctions_qc001_el1D_dir.dat
    contains the square of all electron wavefunctions (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 wavefunctions 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:

Filename

kp_8x8_el1D_ev_qc001_ev001_kpar001_Kz001_dir.dat
8x8               Kind of k.p solved (8x8 or 6x6)
  _el1D_ev             Electron/hole (_el/_hl) eigenvalues (_ev
    _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:                          

distance: eig_val:
Position in space [l0] Eigenvalue [eV]

 


 

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:        

x-pos: 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 [l0] 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

x-pos: grid-position


 

k.p complex eigenfunctions:

Filename

kp_comp_8x8_el1D_wv_qc001_ev002_kpar001_Kz001_dir.dat
_comp               Complex wavefunctions
  _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:        

x-pos: PSI_real001: PSI_imag001: ...
Position [l0] Real part of 1st component Imaginary part of 1st component ...

x-pos: grid-position

  • 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 dispersion

Filename:

kp_bulk_dispersion.dat (k.p dispersion)
sg_bulk_dispersion.dat
(effective-mass dispersion)

Structure:

k_pos: E_val 1 - 8 (6)
Position in k space in direction of k-direction [2pi/a] 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 "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 [2pi/a] ky position [2pi/a] 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 [2pi/a] ky position [2pi/a] Number of k|| point

To plot the data file, only the first (abscissa) and the second column (eigenvalue) are important.

Example: See Tutorial "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 [2pi/a] ky position [2pi/a] 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, including boundary points:
DOS-points    = 1001
==>  Energy_grid = (DOS_Emax - DOS_Emin) / (DOS_Points - 1) = 2.5 eV / 1000 = 0.0025 eV

 

 


Optics

For the option to calculate and output the optical matrix elements we need the following specifiers.

 optical-matrix-element-output = no
                               = squared-modulus
                               = complex         !
Note: Complex AVS output not implemented yet.
 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 optical matrix element: P(kx, ky)
The matrix element is in atomic units. Note that the matrix element is a three-dimensional vector with components Px , Py , Pz and kx, ky is in units of [1/Angstrom].
The optical matrix element will be calculated between ev_min and ev_max band.
The k points are the same that are chosen for the dispersion output.

Output units:
a) Real value of Px², Py², Pz²: [eV/m0]
b) Complex value of the momentum matrix element Px , Py , Pz : [SQRT(eV/m0)]
m0 - free electron mass
e
is the light polarization vector
P is the momentum operator (vector)
Px(k) = <psi_1(k)| P*e |psi_2(k)>, where |e|=1, e || x

The file 'opt_matr_el_...txt' contains the following data:

  • optical-matrix-element-output = squared-modulus
      kx    ky    kz       Px²           Py²            Pz²
  • optical-matrix-element-output = complex
      kx    ky    kz    Re(Px) Im(Px)  Re(Py) Im(Py)  Re(Pz) Im(Pz)

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.)

 

   
Last modified: 03-Jun-2010   -   optimised for Microsoft Internet Explorer 7®