

nextnano^{3}  FAQFrequently asked questionsGeneral
Materials
Simulation
GeneralProgram window closes immediately upon finishingQuestion Unfortunately, the program window that opens after I started Answer Yes, there is. In Windows go to the doesn't work at allQuestion I get a strange message in my command prompt. Something with "keyword", "optional", "required". Answer You are probably trying to run a UNIX formatted ASCII file on a PC (or vice versa). Save it in PC/DOS mode or download the PC formatted input files from the download section. "

units  Reference  GaAs  AlAs  InAs  GaP  AlP  InP  GaSb  AlSb  InSb  GaN(zb)  AlN(zb)  InN(zb)  Si  Ge  C  
E_{VBM}  (eV)  Wei/Zunger  1.46  0.95  1.52  0.99  0.45  1.10  2.03  1.61  2.02  0.72  1.52  0.46  
Delta_{SO}  (eV)  Vurgaftman  0.341  0.28  0.39  0.08  0.07  0.108  0.76  0.676  0.81  0.017  0.019  0.005  0.044  0.289  
E_{v,av}  (eV)  1.346  0.857  1.390  0.963  0.427  1.064  1.777  1.385  1.750  0.726  1.526  0.462 
If usebandgaps = no
(default), the conduction band energies for the Gamma, L and X valley are calculated as
conductionbandenergies =
E_{gap}(Gamma) + E_{v,av}+ 1/3 Delta_{SO}
E_{gap}(X) + E_{v,av }+ 1/3 Delta_{SO
}E_{gap}(L) + E_{v,av }+ 1/3 Delta_{SO}

The conduction band energies are given for 0 Kelvin in the nextnano³
database.
Varshni parameters should be used to get the temperature dependent
conduction band energies for e.g. 300 K.
With the specifier bandshift
[eV], you are able to shift the
absolute values of valence and conduction band edges simultaneously by a certain amount (default: 0.0
eV).
VBO: You can adjust valencebandenergies
and/or
bandshift
to adjust the valence band offset.
CBO: Option a) You can adjust conductionbandenergies
(if
usebandgaps = no
) and/or bandshift
to adjust the conduction band offset.
Option b) You can adjust
bandgaps
(if usebandgaps = yes
)
and/or bandshift
and/or valencebandenergies
adjust
the conduction band offset.
The situation for
ternaries is essentially the same.
Bowing parameters can be used to tune the band gaps and band offsets.
Additionally, a bandshift
can be used.
(bowconductionbandenergies
, bowvalencebandenergies
,
bowbandshift
, bandshift
)
For ternaries, the Varshni parameters are not interpolated. Instead, the
conductionbandenergies
(if usebandgaps =
no
) are interpolated (default) or the bandgaps (if
usebandgaps = yes
).
How is nonparabolicity treated?
The following parameters of the database refer to a hyperbolic dispersion, k^{2} ~ E(1+aE)
where
a =
nonparabolicity [1/eV]
.
conductionbandnonparabolicities = 0d0 0d0 0d0 !
valencebandnonparabolicities = 0d0 0d0 0d0 !
They are only used in regions where the density is calculated classically.
The do not enter the Schrödinger equation.
In order to treat nonparabolicty in quantum regions, a 6band k.p or
8band k.p model is required.
A common problem is that for the smaller band gap
semiconductors like InAs, the nonparabolicity is so large that the calculated Fermi levels
(to be precise: the calculated alignment of the band edges with respect to the
Fermi level) are quite inaccurate.
For example, when looking at a case with n~1.5x10^{18} cm^{3},
the Fermi level calculated without nonparabolicity is about 0.214 eV. It is 0.143 eV
when nonparabolicty is taken into account.
Here is an example of how one can modify the FermiDirac integral for free
carrier concentration in 3D for a single band from parabolic to nonparabolic
using the Van HalenPulfrey functions. The nonparabolicity modifies the SQRT(E)
density of states in the simple way shown.
How are effective hole masses determined in the database? By k.p
parameters (6x6/8x8kpparameters
) or by effective masses (valencebandmasses
)?
In the database when we describe material we specify
But they are not consistent: k.p parameters are used only when 6band
or 8band
k.p quantum model is selected and hole effective masses are used only
when 1band Schrödinger equation is solved.
(Exception: The k.p parameter Delta_{so} for spinorbit
splitting energy is used in any case including if no strain is considered.
The k.p parameters in the database are also used to determine band shifts
due to strain. Program computes the k.p and strain dependent Hamiltonian
for each grid point, diagonalizes it, and takes the eigenvalues for the band
edges. So, band edges for single band calculations are k.p parameter
dependent. More
information ...)
There is also the option under
$numericcontrol
to calculate the effective valence band masses from the 6band k.p
parameters (L, M, N) specified in the
database.
Question
For the quantum calculation there is a possibility to choose either Dirichlet
or Neumann
boundary conditions. Which function is a subject for such boundary
conditions? Wave function? If yes, do Dirichlet
conditions mean that wave
function is equal to zero on the boundaries?
Answer
Yes, at the boundaries of the quantum region, the wave function is zero if Dirichlet
is chosen.
Neumann
:
 Physically, it means zero current normal to the boundary surface (3D),
boundary line (2D) or boundary point (1D).
 Mathematically, it means if a Hamiltonian contains a term like
[d/dx_{i} m_{ij} d/dx_{j} +
b_{i} d/dx_{i }+ c] Psi
then the boundary condition is
[n_{i} m_{ij} d/dx_{j} + b_{i}
n_{i}] Psi = 0
where n_{i} is a normal vector to a
surface (line).
More details about boundary conditions can be found here:
Boundary
conditions
Question 1
In 1D, what is the unit of doping concentration? If I have an experimental value of 2*10^{18} cm^{3} for 3D, is it then 2^{1/3}*10^{6} cm^{1} for 1D?
Answer 1
No, it is still 2*10^{18} cm^{3 }for 1D. Please look at this
example for more details:
$dopingfunction
Error message Error linesearch: Roundoff problem.
Solution
This error occurs in the Newton routine (subroutine linesearch) when solving the 1D/2D/3D nonlinear Poisson equation with the Newton method.
Possible solutions (depending on your input file geometry):
$numericcontrol
...
nonlinearpoissonstepmax = 1.0d0
nonlinearpoissoniterations = 100
$end_numericcontrol
phiV
under the keyword
$numericcontrol
(specifier initialpotential
).
Error message (on Windows only)
forrtl: error (74): floating underflow
forrtl: error (74): floating underflow
forrtl: info (300): 9 floating underflow traps
Explanation
An underflow indicates that the absolute value of a floating point number has become smaller than about 1e150 and that it has been replaced by a zero. For many algorithms this replacement does not cause any harm, for others the effects will be disastrous. Unfortunately, in simulation codes like nextnano^{3} both cases occur depending on where in the code the underflow happened.
Question
I want to manually adjust the Fermi level. How can I do this?
Answer
There are several possibilites.
$importdataonmaterialgrid
$regioncluster
$quantumcluster
Fermi
)
or a linear Fermi level profile (Fermilinear
).
$poissonboundaryconditions
These four options can also be combined.
An example is shown here: Double quantum well heterostructure
1DAlGaAs_GaAs_DQW_read_in_Fermi_level.in
1DAlGaAs_GaAs_DQW_apply_Fermi_level_to_region_cluster.in
1DAlGaAs_GaAs_DQW_apply_Fermi_level_to_quantum_cluster.in
1DAlGaAs_GaAs_DQW_apply_Fermi_level_to_contact.in
If you are interested in examples, please contact support [at]
nextnano.com
.
Question
Is there any difference between
flowscheme = 1
and flowscheme = 2
?
Answer
Yes, there is. Flow scheme 1 is only classical whereas flow scheme 2 is
quantum mechanical (it includes the Schrödinger equation).
More details can be found in the glossary:
Flow scheme
Question
I have to simulate a quantum dot with [N 1 1]
growth direction.
But in the database I have only:
axespossible = 0 0 1 !
0 1 0 !
1 0 0 !
Is it possible to simulate [N 1 1] growth direction?
Answer
Yes, but don't confuse the axespossible
specifier with the
Miller indices. Change these to [N 1 1]
for other directions.
The specifier axespossible
is only applicable to the growth
direction which must be x, y or z as indicated. However, you can choose [3
1 1]
to be the Miller x axis and then choose x axis as growth direction
which will then be [3 1 1]
.
More details can be found under keyword
$domaincoordinates
.
Question
What should I pay attention to?
Answer
GaAs4K
in
addition to GaAs
in the database). bowconductionbandenergies = 0.305d0 0.055d0
0d0
The bowing factor for the Gamma band (according to
Vurgaftman is)0.384d0
for Al_{0.39}Ga_{0.61}As
>
Crossover for minimum (Gamma >
L) at x=0.39
(300 K) 0.305d0
for Al_{0.33}Ga_{0.67}As
>
(Gamma) 0.070d0
for Al_{0.15}Ga_{0.85}As
>
(Gamma)Question
Can I use Matlab to visualize the 3D output files (AVS format)?
Answer
Not directly, but you should be able to convert the AVS data to Matlab format if you write a script that does it for you. For an explanation of the AVS format, please consult the 2D/3D Tutorials.
Question
I want to "switchoff" piezoelectrical effects. Should I put
piezoelectricconstant e_{14} in the database_nn3.in
file to be 0, or can I specify it somewhere in the input file?
Answer
Option 1: You have to adjust e_{14} for the appropriate materials in the
database_nn3.in
file to:
piezoelectricconstants = 0d0 0d0 0d0
0d0 ! [C/m²] e14,B114,B124,B156
Option 2: You can specify it here:
$numericcontrol
piezoconstantszero = no
The pyroelectric constants can be switched on and off similarly.
Question
Are quaternaries included? If not, how can I interpolate them?
Answer
Only lattice matchedquaternaries (e.g. In_{x}Ga_{y}Al_{1xy}As with only one free parameter x or y but not quaternaries with two free parameters like A_{x}B_{1x}C_{y}D_{1y}) are included in our database. See database comments and quaternaries documentation.
You can define a new material in the
database_nn3.in
file with linearly interpolated values of the binary
constituents of the quaternary.
Question
How do you incorporate strain into the calculation? What is the meaning of the deformation potentials in the database?
Answer
In order to get the band edge shifts due to strain, we diagonalize numerically on each grid point the strain dependent k.p Hamiltonian for k=0. More information ...
Van de Walle (PRB 39, 1871 (1989)) describes the dependence on strain of the valence and conduction band edges (zinc blende). In this paper strain is described along [001] and [111] directions. In a general case, when we have [a b c] growth direction please have a look here.
Pseudomorphic (or commensurate) growth of strained layers on a substrate subjects these layers to a biaxial strain (epsilon_{}) parallel to the plane of the interface and a uniaxial strain (epsilon_{_}) perpendicular to it.
(1)
where a_{}=a_{0} (2a)
. (2b)
So we can also write
Here a_{0 }denotes the lattice constant of the substrate and a_{ }the equilibrium lattice constant of the layer material. D depends on the elastic constants c of the layer material and on the interface orientation. (Often, 1/D^{001} is called the Poisson ratio, denoted as sigma).
(3a)
(3b)
(3c)
In the database we specify:
for zinc blende  for wurtzite  units  
latticeconstants 
a a a  a_{ } a_{ }c  nm 
elasticconstants 
c_{11} c_{12 } c_{44}  c_{11} c_{12 } c_{13} c_{33 } c_{44}  GPa 
The lattice constants are temperature dependent. More information...
The effect of strain on energy levels can be decomposed into hydrostatic and shear contributions. The hydrostatic strain component leads to a shift of the average valence band energy E_{v,av}=(E_{hh}+E_{lh}+E_{so})/3, i.e. of the average of the energies of the heavy hole, light hole and spinorbit splitoff bands (see picture for details):
(4a)
and similarly for the conduction band energy
(4b),
where a_{v} and a_{c} are the hydrostatic (=absolute) deformation potentials for the valence band and conduction band, respectively.
In the database we specify:
valence bands  conduction bands  
Gamma  L  X  
absolutedeformationpotentialvb 
a_{v}  
absolutedeformationpotentialscbs 
a_{c}(Gamma)  a_{c}(L)  a_{c}(X) 
The shear contribution couples to the spinorbit interaction and leads to an additional splitting of the valence band energies. In the case of growth on a (001) or (111) substrate, the energy shifts relative to E_{hh}=E_{v,av}+Delta_{so}/3 (Delta_{so} is the spinorbit splitting in the absence of strain) are given by
(5a)
(5b)
(5c)
The strain dependent shift delta E^{sh} depends on the interface orientation:
(6a) or
(6b) or
Here,
.
The quantities b and d are the tetragonal and rhombohedral shear deformation potentials, respectively. In the absence of strain, equation (5) leads to the correct spinorbit splitting Delta_{so}. Conduction bands at Gamma are not affected by the shear contribution to the strain. However, at L and X they are affected.
In the database we specify:
valence bands  conduction bands  
Gamma  L  X  
uniaxvbdeformationpotentials 
b d  
uniaxcbdeformationpotentials 
0 (always zero)  Xi_{u}(L)  Xi_{u}(X)  
valencebandenergies 
E_{v,av }(eV)  
conductionbandenergies 
E_{v,av}+ 1/3 Delta_{SO}+ E_{gap}(Gamma) 
E_{v,av}+ 1/3 Delta_{SO}+ E_{gap}(L) 
E_{v,av}+ 1/3 Delta_{SO}+ E_{gap}(X) 

6x6kpparameters 
..... .....
..... Delta_{so} (eV) 

8x8kpparameters 
..... ..... ..... ..... .... ..... 

Once E_{v,av }are known on an absolute scale (only physically meaningful relative to E_{v,av} in related semiconductors), the valence band and conduction band edge energies E_{v }and E_{c}, respectively, are obtained on an absolute scale from
(7a)
(7b) (for Gamma)
where E_{v,av}, Delta_{so}, and E_{g}
(band gap energy) refer to unstrained bulk properties. The strain contribution
is incorporated into the other properties.
Now we can calculate the band offset at the interface directly comparing the
values of E_{v} and and E_{c} of the
semiconductors constituting the heterojunction.
Equations (4), (5) and (6) were arrived at by treating the effect of strain as a small perturbation, and are therefore only valid in the case of small lattice mismatch. The mismatch attainable in pseudomorphic heterojunctions composed of IIIV alloys is expected to fall within this range of validity.
(Most of this text was taken from M.P.C.M. Krijn, Semicond. Sci. Technol. 6, 27 (1991))
Question
Is it possible to have some of the layers of the heterostructure to be
pseudomorphic and then at some point higher up in the structure have the layers
be relaxed? Currently, I have the entire structure with
homogeneousstrain
.
Answer
Yes, it is. Have a look at this keyword:
$material
For each material one can specify its own substrate. If this substrate is
identical to the material name, then one has a "relaxed" and not a strained
material, even with option homogeneousstrain
.
Question
How can I specify the substrate or its lattice constant?
Answer
$domaincoordinates
<materialname>
...
pseudomorphicon =
...
$end_domaincoordinates
Question
I want to simulate a superlattice of quantum wells in 1D. For this I want to build a cluster consisting of a well and a barrier, i.e. this cluster would contain 2 different materials. Is this possible?
Answer
No. You can define one huge cluster that consists of the barrier
material for the whole superlattice and set regionpriority=1
. Then
you can put several wells on it with regionpriority=2
.
Alternatively, open two windows of the
1D Input
file generator (Step 1) and define in the first the barrier and in the
second the well and press the "Submit" buttons alternately.
Question
What physical properties or equations are affected if I change the
latticetemperature
in the input file?
Answer
varshniparameterson = no
.
database_nn3.in
file to get the correct band gap for the corresponding
temperature of interest (more information on
band gap). You can even specify your own materials as was already done for
GaAs4K, AlAs4K, InAs4K, Al(x)Ga(1x)As4K, In(x)Ga(1x)As4K,
Al(x)In(1x)As4K (in addition to GaAs, AlAs, ...).
$impurityparameters
specifies how far a donor/acceptor lies
below/above the conduction/valence band. If the temperature is around 4 K,
almost no donors/acceptors are ionized. In this case  if you still want all
donors/acceptors to be fully ionized  you need to specify a value of say 10
eV instead of +0.03 eV.
$numericcontrol
(latticeconstantstempcoeffon = no/yes
).
No! (Previous versions)
Question
Can I change the
latticetemperature
to 0 Kelvin in the input file?
Answer
Question
When we have 2D simulation we can specify as simulation domain [1 0 1]
or [1 1 0 ]
or [0 1 1]
. What is x
and what is y
in the simulation domain?
Answer
[x y z]  simulation system  calculation sytem = x,y system 
[1 0 1]  (x,z)plane  x=x, y=z 
[1 1 0]  (x,y)plane  x=x, y=y 
[0 1 1]  (y,z)plane  x=y, y=z 
Question 1
How to plot 2D AVS/Express output data with Origin? >
Answer
Question 1
What is the unit of the electron density (output)? What is the units of the elastic constants in the database?
Answer 1
The electron/hole density output will be given in the following units
[
10^{18}
cm^{3}
]
.
These units are the same for 1D, 2D and 3D simulations.
The elastic constants are given in GPa.
Question 2
The numbers of the electron density on my plot looks different to what I expected.
Answer 2
You could try to adjust your energylevelsrelative
in
impurityparameters
to 10d0
instead of e.g. 0.02d0
and
check if it makes a difference.
Question 3
I get three different columns for my electron density output (1D) when I run a quantum mechanical calculation. Which one is the electron density?
Answer 3
The second column in the electron density which is the sum of
classical and quantum mechanical density.
 second column: sum of quantum mechanical and classical density
 third column: quantum mechanical density
 forth column: classical density
Warning define_poisson_clusters: Boundary conditions fixed manually, not
by input.
Question
I get the following warning:
Warning define_poisson_clusters: Boundary conditions fixed manually, not
by input.
What does it mean?
Answer
It simply means that for the boundary conditions of the Poisson equation ($poissonboundaryconditions
)
by default Neumann boundary conditions with electric field = 0 V/m
are assumed when calling SUBROUTINE define_poisson_clusters
. This
is just a reminder that these boundary conditions cannot be specified in
the input file yet. However, Ohmic
and
Schottky
boundary conditions are implemeted correctly.
Question
Why does it take so long to calculate the eigenvalues of an 8band k.p calculation?
Answer
Mathematically speaking, 8band k.p requires a different eigenvalue solver (“finding eigenvalues in the interior of the spectrum”) than singleband and 6band (“finding eigenvalues at the end of the spectrum”), so it is much harder (both with respect to time and stability) to find a solution.
An 8band matrix has 8 times the size of a singleband matrix and the mathematical problem gets harder the more eigenvalues are sought.
We have implemented different eigenvalue solvers for 8band k.p, e.g. the ARPACK solver (shiftinvert mode) or the FEAST solver.
Degeneracy: For instance, if 4 eigenvalues are degenerate (e.g. due to spin and/or geometry) and you are looking for only 3, the eigenvalue solver will very likely fail. In such a case, it could be that certain eigenvalues are misisng.
Adjusting the resdiual might help you for debugging, e.g. by using a larger value for the residual (accuracy) one should get solutions more quickly althouth they might not be accurate enough.
Another interesting strategy could be to divide the input file into two, e.g.
if one needs 6 electron eigenvalues and 12 hole eigenvalues.
 One input file calculates only the electron eigenvalues. Then you have in total 6 eigenvalues instead of 18 which should be much faster.
 The other input file calculates only the hole eigenvalues. (12 instead of 18)
