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