nextnano.com
 nextnano³
 Download | SearchCopyright | Publications
 * password protected

 

nextnano³ software

 

  quantum-model-holes

 

 

 
Up
 

Quantum model holes

!------------------------------------------------------------------!
$quantum-model-holes                                     optional  !
 model-number                            integer         required  !
 model-name                              character       required  !
 cluster-numbers                         integer_array   required  !
 valence-band-numbers                    integer_array   required  !
 separation-model                        character       optional  !
 number-of-eigenvalues-per-band          integer_array   required  !
 occupy-exactly-min-eigenvalues-per-band double_array    optional  !
Note: double_array and not integer_array to allow for partial occupation.
 occupy-exactly-max-eigenvalues-per-band double_array    optional  !
Note: double_array and not integer_array to allow for partial occupation.
 maximum-energy-for-eigenstates          double_array    optional  !
 quantization-along-axes                 integer_array   optional  !
 boundary-condition-100                  character       optional  !
 boundary-condition-010                  character       optional  !
 boundary-condition-001                  character       optional  !
 method-of-brillouin-zone-integration    character       optional  ! 1D/2D (k.p only)
 k-range-determination-method            character       optional  ! 1D/2D (k.p only)
 k-range                                 double          optional  ! 1D/2D (k.p only)
 num-kp-parallel                         integer         optional  ! 1D/2D (k.p only)
 num-ks-100                              integer         optional  ! superlattice only
 num-ks-010                              integer         optional  ! superlattice only
 num-ks-001                              integer         optional  ! superlattice only
$end_quantum-model-holes                                 optional  !
!------------------------------------------------------------------!

 

  quantum-model-
holes
valence-band-
numbers
  quantum-model-
electrons
conduction-band-
numbers
  classical
(=not specified)
any combination   classical
(=not specified)
any combination
effective-mass effective-mass any combination   effective-mass any combination
6x6kp 6x6kp 1 2 3   doesn't make sense -
8x8kp 8x8kp 1 2 3   8x8kp
(hole mustn't be 6x6kp in this case)
1

If electrons are 8x8kp, holes cannot be 6x6kp. (Can they be effective-mass in this case? Probably this is allowed.)

 

Syntax

model-number = 1

 

model-name   = 8x8kp           ! coupling between heavy, light and split-off holes and conduction band
             =
6x6kp           !
coupling between heavy, light and split-off holes
             = effective-mass
8x8kp
or 6x6kp or effective-mass

 

 

cluster-numbers = 1
cluster numbers to which this model applies

 

valence-band-numbers = 1 2 3
To select bands (minima) handled in Schrödinger equation: 1 = heavy hole, 2 = light hole, 3 = split-off hole
  Options possible:
  effective-mass:  1
              2
              3
              1 2
              2 3
              1 3
              1 2 3

  6-band k.p:         1 2 3
  8-band k.p:         1 2 3

 

separation-model = eigenvalue   !  -> specify number-of-eigenvalues-per-band
               
 = energy       !  ->
specify maximum-energy-for-eigenstates
                 = edge-model   !  ->
Only localized states are considered for the quantum mechanical density.
To determine separation between classical and quantum mechanical density ('eigenvalue','energy','edge-model').
More information ...
(It should be checked whether edge-model works for k.p.)

 

number-of-eigenvalues-per-band = 3     ! If only one band is specified, then calculate 3 eigenvalues for this band.
                             
 = 6 3   ! If two bands are specified, then calculate 6 eigenvalues for the first band
                                       ! and 3 eigenvalues for the second band.
                               = 3 3 3 ! If heavy, light and split-off hole bands are specified, then calculate 3 eigenvalues for each.
Here one has to specify how many eigenstates have to be calculated in each valence band maximum. This is also relevant for the quantum mechanical density unless maximum-energy-for-eigenstates is specified in combination with separation-model = energy. However, in this case also number-of-eigenvalues-per-band has to be present in order to determine the maximum number of eigenstates to be calculated (although not all contribute to the density).

 

maximum-energy-for-eigenstates = 0.5d0             ! [eV]  If one valence band is specified.
                              
= 0.5d0 0.5d0       ! [eV]  If two valence bands are specified.
                              
= 0.5d0 0.5d0 0.5d0 ! [eV]  If three valence bands are specified.
Lower limit for energy of bound states.
Calculate eigenvalues up to this energy (relative to bulk band edge).
Use continuum model above this energy (relative to bulk band edge).
Relevant for specifier separation-model = energy.
For separation-model = eigenvalue this specifier is ignored.

 

quantization-along-axes        = 1 1 1  ! 3D
                      
        = 1 1 0  ! 2D
                      
        = 1 0 1  ! 2D
                      
        = 0 1 1  ! 2D
                      
        = 0 0 1  ! 1D
                      
        = 0 1 0  ! 1D
                      
        = 1 0 0  ! 1D
Zeros and ones: to select quantization direction (1D) / plane (2D) / volume (3D).
At present the entries must be identical to specifier orientation in keyword $simulation-dimension.
If not present, the values of specifier orientation in keyword $simulation-dimension are used.
In 3D input like '0 1 1'  is not possible so far.
Currently no features are attributed to this specifier. A possible extension for the future would be to use a 2D simulation where only a 1D quantization is used or a 3D simulation with a 1D quantization direction or a 2D quantized plane.

 

boundary-condition-100  =  Neumann          !
                      
 =  Dirichlet        !
                        =  periodic         !
(for superlattice)
boundary-condition-010  =  [ as above ]
boundary-condition-001  = 
[ as above ]

"Boundary conditions for [100]" means boundary conditions for Schrödinger equation in x-direction of simulation system and similar for [010 and [001].
Default is
Neumann.

For the wavefunction at the boundary it holds:

  • Neumann: d psi(zb) / d z = 0 where zb means z coordinate at the boundary of the quantum cluster
  • Dirichlet: psi(zb) = 0
  • periodic: psi(zb,right) = psi(zb,left)

Remarks:
It is possible to specify something like this:
   boundary-condition-100  =  periodic
   boundary-condition-010  =  periodic
   boundary-condition-001  =  Dirichlet
This makes sense if one has a quantum well extending over the whole (x,y) plane and which is perpendicular to the z direction.

Restrictions:
If one specifies
periodic boundary conditions, the quantum cluster must extend over the whole device in that direction.

 

 occupy-exactly-min-eigenvalues-per-band = ...
 occupy-exactly-max-eigenvalues-per-band = ...
See $quantum-model-electrons.

 

 

k.p only

method-of-brillouin-zone-integration = special-axis
                                   
 = simple-integration
                                   
 = gen-dos
  'special-axis'       
Only for [0001] quantization direction in wurtzite or
                        for isotropic energy dispersion E(k||) which is in general not the case.
  'simple-integration
Discretization of 2D Brillouin zone (only applicable to a 1D simulation).
  'gen-dos'            
Evaluation of the density by integration over the density of states (DOS).
                       
Not implemented yet for 2D simulations.
Only necessary for 1D and 2D k.p simulations.
More information ...

 

k-range-determination-method = bulk-dispersion-analysis  ! 1D/2D
                             = k-max-input               ! 1D/2D

k-range                      = 1.0d0                     ! 1D/2D
(Units: [1/Angstrom])
k-range
is required if k-range-determination-method = k-max-input.
This also works for 2D (kz) but does not make sense for 3D.
1D:
k-range specifies the extenstion of the k|| = (kx,ky) space, i.e. here a rectangle in the interval [-k-range , k-range] is specified along the kx and ky directions.
2D:
k-range specifies the extenstion of the k|| = (kz) space, i.e. here a line in the interval [-k-range , k-range] is specified along the k|| direction.
More information ...

 

num-kp-parallel = 100
              
 = 1    !
For kx=ky=0 only; if no k|| should be considered.
Total number of k|| points for Brillouin zone discretization.
Only necessary for 1D (kx,ky) and 2D (kz) k.p simulations and optical absorption.
This also works for 2D (kz) but does not make sense for 3D.
1D:
It always refers to the total number of k|| points in the whole 2D Brillouin zone: num-kp-parallel = (2 * Nkx + 1) * (2 * Nky + 1)
2D: It always refers to the total number of kz points in the whole 1D Brillouin zone.
More information ...

 

Superlattice only

num-ks-100 =
Number of k points in superlattice direction x.

num-ks-010 =
Number of k points in superlattice direction y.

num-ks-001 =
Number of k points in superlattice direction z.

 

To do

Implement feature where the user specifies either

  • number of eigenvalues below valence band edge or
  • energy range below valence band edge where to look for the relevant eigenvalues.

Such a feature might depend on the eigenvalue solver used.

 

Please also refer to the database section of $quantum-model-holes.