 
3D Nano Device Simulator
Glossary
last updated:
210217
Boundary conditions
Calculation of density
Current continuity
equations for electron and holes
Current relations for
electrons and holes
Current
output
Eigenvalue problem on
inhomogeneous grid
Finite differences method
Flow scheme
Generation of the grid
Method of Brillouin zone
integration
Poisson equation
QuasiFermi level
Semiconductor equations
Separation model: quantum and continuum states

Dirichlet boundary conditions specify the potential at the
boundaries. The solution of the Poisson equation is then unique.
Neumann boundary conditions specify the normal component of the
electric field at the boundaries (i.e. the normal derivativ of
Phi is specified on the surfaces). The solution of the Poisson equation
is then unique apart from a constant.
By specifying both Dirichlet and Neumann boundary conditions,
the system would be overdetermined.
More details on boundary conditions can be found
here.

 purely classical calculation
 purely quantum mechanical calculation
 mixed classical/quantum mechanical calculation (only localised states
are considered for quantum mechanical density)
 mixed classical/quantum mechanical calculation (in quantum regions the
density is calculated purely quantum mechanically)
More details on the calculation of the density can be found
here.

The continuity equation for electrons
and holes: 

More details...

The program flow (flow scheme) is specified in the input file.
The selfconsistent solution is uniquely determined by the potential and the
quasi Fermi energies. Now it is possible to determine the quasi Fermi levels
by a classical calculation and hence to solve the SchrödingerPoisson equation
selfconsistently with these quasi Fermi levels to be held fixed. Another
option would be to solve the system of equations selfconsistently with the
1band Schrödinger equation and then to determine the kp states for this
potential.
To handle these options flexibly, you will have to specify the desired
simulation flow (variable flowscheme ) in the input file.
$simulationflowcontrol
flowscheme = 4
$end_simulationflowcontrol
flowscheme = 1
First the builtin potential is determined with the classical nonlinear
Poisson equation. Then the program is calculating a selfconsistent solution
of the classical Poisson and current equations which leads to the quasi Fermi
levels of the electrons and holes. With these levels (the levels are taken to
be fixed) and the specified densities from the input file, the nonlinear
Poisson equation will be solved.
1. calculate nonlinear Poisson classically
2. calculate current classically
3. calculate nonlinear Poisson as specified in input
flowscheme = 2
Since we want a quantum solution with current, we take
flowscheme 2 .
This means that we are first calculating the potential with the classical
nonlinear Poisson equation. With this starting value, the program is
calculating the builtin potential with the nonlinear Poisson equation (and
specified densities). After that, the program is determining the
selfconsistent solution of the Schrödinger, Poisson and current equations.
1. calculate nonlinear Poisson as specified in input
2. calculate current as specified in input
flowscheme = 3
Since we want to read in raw (binary) data and solve for eigenfunctions, we take
flowscheme 3 which means that the builtin potential, the
potential and the quasi Fermi levels, which completely determine the system,
will be read in. For this potential, the specified eigenstates will eventually
be calculated. We also need to provide the file names for the input data
including directories, e.g.
filename_pot = raw_data/raw_potentials.raw
filename_ferm = raw_data/raw_fermi_levels.raw
1. read in potentials and Fermi levels
2. calculate eigenfunctions as specified in input
flowscheme = 4
Since we only want a classical selfconsistent band structure we take
flowscheme 4 .
This means that we are first calculating the builtin potential with the
classical nonlinear Poisson equation. Then the program is
calculating a selfconsistent solution of the classical Poisson and current equation.
1. calculate nonlinear Poisson classically
2. calculate current classically
As output you can always choose under 'rawdata ' to save the
potential or the Fermi levels unformatted in order to be read in again later
with flowscheme = 3 .
More information is available in the
Tutorial.

Generation of the grid
The parser program is mapping the geometry of the device onto discrete grid
points to which a material is associated with. The points of the simulation
grid are lying in between these material grid points. This approach is
necessary because the setup of the systems of differential equations is done
via box integration. In 3D, each box consists of eight smaller boxes (octants)
and each octant can uniquely be associated with one material grid point. The
interfaces at material transitions are hence lying on the simulation grid
points and therefore in the middle between the material grid points. The grid
specifications in the input file are thus referring to the material grid
points. This has to be considered on data entry.
More information ...

1D simulation
Evaluating the density integration
The program provides three options for the calculation of the density when
performing a 1D k.p calculation. For
this, only k values up to a maximum value of k have to be considered. All
values that are larger are lying energetically very far away from the Fermi
level so that their contributions to the density can be neglected.
The option will be specified in the input file under the keywords
$quantummodelelectrons/$quantummodelholes :
Specifier methodofbrillouinzoneintegration =
...
= specialaxis
In this case the Hamiltonian must be isotropic in the (k_{x}, k_{y})
plane, i.e. E(k_{x}, k_{y}) = E(k_{}) where k_{}²
= k_{x}² + k_{y}². Then the integration of the density can be
reduced to a 1D integral. This is only allowed for wurtzite in the [0001]
growth direction. In all other cases the program switches to
simpleintegration .
= simpleintegration
The 2D Brillouin zone will be discretized and the density will be calculated
by the summation over all k points.
For zinc blende with {001} quantization
direction only the irreducible part of the Brillouin zone is being discretized
(up to maximum values of k), correspong to about ~1/8 of the total
number of k points. In all other cases the whole Brillouin zone is
being discretized (up to maximum values of k).
= gendos
The evaluation of the density is done by integration over the density of
states (DOS).
For zinc blende with {001} quantization direction only the irreducible
part of the Brillouin zone is being discretized (up to maximum values of k),
correspong to about ~1/8 of the total number of k points.
In all other cases the whole Brillouin zone is being discretized (up to
maximum values of k).
The number of discretization points has to be specified under the specifier
'numkpparallel ' and refers to the discretization of the whole
Brillouin zone up to the maximum value of k. For the special cases specialaxis
and zinc blende in {001} direction, the program is calculating the
number of actually needed points.
More details can be found
here and
here and here:
$quantummodelelectrons
$quantummodelholes
2D simulation
Here, only
= specialaxis
and
= gendos
are allowed. simpleintegration does
not make sense as the k space is only onedimensional (k_{z}
along a line) in a 2D k.p calculation and thus it would be equivalent
to specialaxis .
3D simulation
Not applicable. This does not make sense for a 3D simulation.

The Poisson equation: 

epsilon is the dielectric constant varying over space.
Phi is the electric potential.
rho is the electric charge density (consists of electrons, holes,
ionized donors and acceptors, piezo and pyroelectric polarization charges). Linear Poisson equation:
 if the charge density is constant, i.e. independent of the potential
(e.g. piezo and pyro charges)
Nonlinear Poisson equation:
 charge density depends on potential

Socalled "quasiFermi levels" which are different for electrons (E_{F,n})
and holes (E_{F,p}) are used to describe nonequilibrium carrier
concentrations.
In equilibrium the quasiFermi levels are constant and have the same value for
both electrons and holes (E_{F,n} = E_{F,p} = 0 eV).
The current is proportional to the mobility and the gradient of the
quasiFermi level E_{F}.
Here are some technical details on states in quantum regions, namely the
separation of classical and quantum mechanical states.
In quantum regions the density is determined by quantized wave functions.
The density there is calculated as follows:
 The quantized states are taken up to a certain energy (called separation
energy).
 Above the separation energy the density is calculated by using the ThomasFermi
approximation.
The separation energy can be determined by three different methods
according to the specification in the input file:
(specifier 'separationmodel = ...'
in
$quantummodelelectrons/$quantummodelelectrons ).
= eigenvalue :
For option 'eigenvalue ' (internally stored as 'eigenvalue ')
the specified number of eigenvalues (numberofeigenvaluesperband ) is calculated and the topmost eigenvalue
at the same time is the separation energy.
All eigenvalues up to numberofeigenvaluesperband are
considered for the quantum mechanical density.
Above (below) topmost eigenvalue electrons (holes) are considered to be
classical.
=> Separation energy = energy of topmost eigenvalue
= energy :
For option 'energy ' (internally stored
as 'max_energy ') a fixed energy is provided by the input file ('maximumenergyforeigenstates ')
in units of [eV] which is given relative to the band edge extremum.
It has the following meaning:
For electrons take the minimum conduction band edge energy throughout the whole quantum region and let the
separation energy be this minimum plus the fixed energy from the input file
that does not change during the calculation.
(For holes: maximum valence band edge energy minus fixed energy)
All eigenstates up to this value are considered in quantum mechanical
calculation.
Above (below) this value electrons (holes) are considered to be classical.
=> Electrons: Separation energy = lowest energy point in this quantum
cluster + maximumenergyforeigenstates
Holes: Separation energy = highest
energy point in this quantum cluster  maximumenergyforeigenstates
= edgemodel :
For option 'edgemodel ' (internally stored as 'edge_model ')
the specified number of eigenvalues (numberofeigenvaluesperband ) is calculated and the separation energy is
determined by the following model:
 For electrons take the conduction band minimum energy of all boundary points
of the quantum region.
(In 1D there are only two boundary points.)
(For holes: maximum valence band energy)
 All quantum states with energies below that level are certainly fully
quantized. (for holes: above)
 So the highest eigenvalue that is just below this level is taken to be the
separation energy.
Note that if all eigenvalues are below that level the highest it taken
as the separation energy. (for holes: lowest)
Here, the separation energy is set to consider only localized states for the
density, delocalized states are not considered.
Attention: This could lead to the
situation in which no quantized states are considered if the choice of
the quantum region is taken in an infavorable way. Thus one always has to
check the position of the band edges and the eigenstates afterwards.
SeparationEnergyEdgeV = highest eigenvalue that is below minimum of conduction
band edges on left and right boundary (1D) (for electrons)
at boundaries (2D/3D) (for electrons)
(for holes: lowest ... maximum of valence band edges)
More details for the separation model can be found
here.
