nextnano.com
 GUI: nextnanomat
 Tool: nextnano++
 Tool: nextnano³
 Tool: nextnano.QCL

 Download | SearchCopyright | News | Publications
 * password protected

 

nextnano³ software

 

  quantum-model-electrons

 

 

 
Up
 

Quantum model electrons

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

!------------------------------------------------------------------!
$quantum-model-electrons                                 optional  !
 model-number                            integer         required  !
 model-name                              character       required  !
 cluster-numbers                         integer_array   required  !
 conduction-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-electrons                             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
             =
effective-mass
8x8kp
(for conduction-band-number 1 only) or effective-mass

 

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

 

conduction-band-numbers = 1
to select bands (minima) handled in Schrödinger equation
- 8x8kp:
  can be 1 (only Gamma band, this is the only option for 8x8kp)
- effective mass:
  can be  1     (only Gamma band)
       2    
(only L band)
       3    
(only X band)
       1 2
       1 3
       2 3
       1 2 3
(Gamma, L and X band for effective-mass)

 

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 Gamma, L and X bands are specified, then calculate 3 eigenvalues for each.
Here one has to specify how many eigenstates have to be calculated in each conduction band minimum. 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 conduction band is specified.
                              
= 0.5d0 0.5d0       ! [eV]  If two conduction bands are specified.
                              
= 0.5d0 0.5d0 0.5d0 ! [eV]  If three conduction bands are specified.
Upper 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 a fixed number of eigenstates for each band

 occupy-exactly-min-eigenvalues-per-band = 0d0 0d0 0d0 ! Note: double_array and not integer_array to allow for partial occupation.
 occupy-exactly-max-eigenvalues-per-band = 1d0 1d0 1d0 !
Note: double_array and not integer_array to allow for partial occupation.

A negative number indicates that the default should be used for this particular band.

Sometimes one does not want to take into account the (automatically calculated) temperature dependent occupation of the eigenstates (energy levels) via the Fermi-Dirac distribution function.

If any of the entries in occupy-exactly-max-eigenvalues-per-band is nonzero (and positive), then the number of occupied and empty eigenstates is set by the user,
e.g. if one wants to have exactly 2 electrons in a quantum dot.

It is not necessary to specify:
 occupy-exactly-min-eigenvalues-per-band = ...
By default occupy-exactly-min-eigenvalues-per-band is assumed to be zero.

Examples (Note: Usually each eigenstate is assumed to be two-fold spin degenerate.)

 occupy-exactly-max-eigenvalues-per-band = 0.5d0 ! Occupy the ground state with 1 electron   (occupancy of two-fold spin degenerate ground state = 0.5).

 occupy-exactly-max-eigenvalues-per-band = 1.0d0 ! Occupy the ground state with 2 electrons  (occupancy of two-fold spin degenerate ground state = 1.0).

 occupy-exactly-max-eigenvalues-per-band = 1.5d0 ! Occupy the ground state with 2 electrons   (occupancy of two-fold spin degenerate ground state = 1.0).
                                                 ! Occupy the 2nd eigenstate with 1 electron  (occupancy of two-fold spin degenerate 2nd state = 0.5).

 occupy-exactly-max-eigenvalues-per-band = 0.7d0 ! Occupy the ground state with 0.7 electrons (occupancy of two-fold spin degenerate ground state = 0.7).

 

One can also specify a range, e.g. leave the ground state empty and occupy only the second eigenstate with 1 electron.

 occupy-exactly-min-eigenvalues-per-band = 1.0d0 ! Occupy the ground state with 0.0 electrons (occupancy of two-fold spin degenerate ground state = 0.0).
 occupy-exactly-max-eigenvalues-per-band = 1.5d0 ! Occupy the 2nd eigenstate with 1 electron   (occupancy of two-fold spin degenerate 2nd state = 0.5).

 

Results

One can also specify a partial occupation, e.g. having 1.4 electrons in the ground state and occupy the second, third and fourth eigenstate with two electrons each.

 occupy-exactly-min-eigenvalues-per-band = 0.3d0 ! Occupy the ground state with 0.6 electrons (occupancy of two-fold spin degenerate ground state = 0.3).
 occupy-exactly-max-eigenvalues-per-band = 4.0d0 ! Occupy the 2nd , 3rd and 4th eigenstate with 2 electrons each  (occupancy of each of these two-fold spin degenerate excited states = 1.0).

densities\subband3D_el_qc001_sg001_deg001_integrated.dat

  num_ev   IntegratedSublevelDensity[electrons] ! (including spin)
    1       1.4000000E+00   ! 
1.4 electrons in 1st eigenstate  [ = (1 - 0.3d0) * 2 = 0.7 * 2 = 1.4 ]
    2       2.0000000E+00   !
2.0 electrons in 2nd eigenstate
    3       2.0000000E+00   !
2.0 electrons in 3rd eigenstate
    4       2.0000000E+00   !
2.0 electrons in 4th eigenstate
    5       0.0000000E+00   !
0.0 electrons in 5th eigenstate
   ...

 

Note: This feature is very artificial.
So the user should use it with care and should check if it makes sense from a physics points of view for the user's particular application in mind.
Convergence of the self-consistent Schrödinger-Poisson equation might be difficult if the specified number of electrons does not fit to the symmetry of the device.

This feature currently works only for the single-band case (effective-mass).

 

 

k.p only

method-of-brillouin-zone-integration = special-axis         ! 1D/2D
                                     = simple-integration   ! 1D
                                   
 = gen-dos              ! 1D
  'special-axis'       
Only for [0001] quantization direction in wurtzite or
                        for isotropic energy dispersion E(k||) which is in general not the case or
                        for 2D simulations.
  '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 above conduction band edge or
  • energy range above conduction 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-electrons.