Simulation flow control
Controls the simulation flow and tells the program how
to calculate things. More details can be found in the
glossary. Also
controls the read in of raw-data. This is data from former calculations which is
stored unformatted with the keyword :$output-raw-data.
Since the names of the files are fixed, you have to provide the directory name
only.
!---------------------------------------------------------!
$simulation-flow-control
required !
flow-scheme
integer
required !
strain-calculation
character
required !
raw-directory-in
character
optional !
raw-potential-in
character
optional !
raw-fermi-levels-in
character
optional ! (previously called: raw-fermi-in =
yes)
raw-kp-eigenstates-in
character
optional !
raw-sweep-index-in
integer
optional !
$end_simulation-flow-control
required !
!---------------------------------------------------------!
Syntax
flow-scheme = 0
= 1
=
2 ! recommended
=
3
=
4
=
13 (for temperature sweep T)
=
130 (for temperature sweep T)
- self-consistent Poisson-Schrödinger
=
14 (for temperature sweep 1000/T)
=
140 (for temperature sweep 1000/T) -
self-consistent Poisson-Schrödinger
=
20 (for electric field)
=
21 (for electric field)
=
30 (for electrolyte only)
=
32 (for electrolyte only)
=
33 (for electrolyte only, i.e. for
buffer only)
=
40 (for NEGF only)
=
50 (for gas sensors only)
=
100 (to output all material parameters)
flow-scheme = 0
This flow-scheme does nothing special, i.e. inside the main program, the
flow-scheme part is skipped
This flow-scheme is useful if you want to e.g. calculate strain only.
The classical (i.e. no quantum mechanics is taken into account) nonlinear
Poisson equation is solved within this flow-scheme unless you use:
$numeric-control
...
zero-potential = yes
flow-scheme = 1
1) Self-consistent solution of Poisson and drift-diffusion current
equations.
The Poisson and current equations are solved
self-consistently. (Note: No quantum mechanics!)
2) Calculate nonlinear Poisson equation quantum mechanically,
i.e. self-consistent Poisson-Schrödinger equations.
If no current cluster is specified, only the nonlinear Poisson and the
Schrödinger equations are solved self-consistently.
If no quantum cluster is specified, only the nonlinear Poisson and the
current equations are solved self-consistently.
flow-scheme = 2 !
recommended (because this flow-scheme is very general)
Self-consistent solution of Poisson, Schrödinger and drift-diffusion
current equations.
First, the nonlinear Poisson-Schrödinger equation is solved
self-consistently
to get a start value for the electrostatic potential,
then the Poisson, Schrödinger and current equations are solved
self-consistently.
If no current cluster is specified (or current
cluster is deactivated), only the nonlinear Poisson
and the Schrödinger equations are solved self-consistently.
If no quantum cluster is specified (or quantum cluster is deactivated), only the nonlinear Poisson and the
current equations are solved
self-consistently.
If neither a current cluster or quantum cluster is specified (and both of
them are deactivated), only the nonlinear Poisson equation is solved.
flow-scheme = 3 !
recommended (because this flow-scheme is very useful if one want to
calculate the eigenstates of an arbitrary potential profile)
First:
The classical (i.e. no quantum mechanics is taken into account) nonlinear
Poisson equation is solved within this flow-scheme unless you use:
$numeric-control
...
zero-potential = yes
Then:
Solve Schrödinger equations, i.e. calculate eigenstates and
wave functions (if a quantum cluster is specified and not deactivated) for an arbitrary
potential profile.
Note: This is without self-consistency of Poisson and Schrödinger
equations. This is justifiable if there is no
charge redistribution, e.g. in the absence of doping.
flow-scheme = 4 !
Self-consistent solution of Poisson and drift-diffusion current
equations.
First, the nonlinear Poisson equation is solved
to get a start value for the electrostatic potential,
then the Poisson and current equations are solved self-consistently.
If no current cluster is specified (or current cluster is deactivated), only the nonlinear Poisson equation is
solved.
Note: No quantum mechanics! Only classical density! Equivalent to flow-scheme =
2 if no quantum cluster is defined or if
quantum cluster is deactivated.
flow-scheme = 13 (for temperature sweep T)
=
130 (for temperature sweep T)
- self-consistent Poisson-Schrödinger
=
14 (for temperature sweep 1000/T)
=
140 (for temperature sweep 1000/T) -
self-consistent Poisson-Schrödinger
Electric field
flow-scheme = 20
1. Calculate electrostatic potential, i.e. solve Poisson equation.
2. Apply electric field as specified in input file ($electric-field).
3. Calculate eigenstates and wave functions by solving Schrödinger's
equation.
(The electrostatic potential is calculated as specified in input file. Then
an electric field is added to it. Finally the eigenstates are calculated.)
Same as flow-scheme = 21 but with
solving Poisson equation
flow-scheme = 21
1. Do not calculate electrostatic potential, i.e. do not solve
Poisson equation.
2. Apply electric field as specified in input file ($electric-field).
3. Calculate eigenstates and wave functions by solving Schrödinger's
equation (either single-band or k.p).
(The electrostatic potential is assumed to be constant. Then an electric
field is added to it. If an electric field is applied, the potential has
linear slope. Finally the eigenstates are calculated.)
Same as flow-scheme = 20 but
without solving Poisson equation
flow-scheme = 30 (for electrolyte
only including buffers, ...)
1. Electrolyte: Solve Poisson-Boltzmann equation for the specified pH value
(optional: sweep over pH value).
2. If a site binding model is specified we output the interface density
and
the interface potential for the pH value into
files
band_struc1/potential_for_all_pH1D.dat
InterfacePotentialDensity_vs_pH1D.dat.
flow-scheme = 32 (for electrolyte
only including buffers, ...)
1. If a site binding model is specified we calculate the interface
charge for different interface potentials.
Here we loop over the potentials from PotentialMin to
PotentialMax in steps of PotentialStep.
InterfaceDensity_vs_Potential1D.dat.
flow-scheme = 33 (for electrolyte
only, special feature for buffers.)
should be used together with zero-potential =
yes
!-------------------------------------------------------!
! This flow-scheme is for the buffer only.
!-------------------------------------------------------!
! Loop over pH values.
! ====================
! 1. Electrolyte
! 2. Output concentration of buffer ions
!-------------------------------------------------------!
flow-scheme = 40 (for
NEGF (nonequilibrium Green's function) only)
flow-scheme = 50 (for gas
sensors only)
flow-scheme = 100 (to output
all material parameters)
Note: A special input file is needed for this purpose:
1Dmaterial_parameters.in
raw-directory-in = raw_data1/
= your_directory/
= "H:\My Documents\My nextnano
inputfiles\input file name\raw_data1\"
Directory containing the raw data files from former
calculations. Do not forget the slash (\ for DOS, / for UNIX).
(See also $output-raw-data).
raw-potential-in = yes /
no
Flag whether to read in unformatted electrostatic potential data.
(See also $output-raw-data).
raw-fermi-levels-in = yes / no
!
Flag whether to read in unformatted electron and
hole Fermi level data.
(See also $output-raw-data).
raw-kp-eigenstates-in = yes / no
Flag whether to read in unformatted electron and/or
hole k.p eigenstates and wave functions.
(See also $output-raw-data).
strain-calculation = homogeneous-strain !
1D: Not recommended for
2D/3D but still useful for certain applications (e.g. a 1D well (along the x
direction) that is homogeneous in the (y,z) plane).
= strain-minimization
! 2D/3D only so far
= raw-strain-in !
very useful for 2D and 3D to save CPU time
= zero-strain-amorphous ! No
strain at all.
= hydrostatic-strain !
Corresponds to a hydrostatic pressure from all three directions (see Tutorial
"Strain:
! Band shifts and splittings due to conduction and valence band
deformation potentials")
Specify whether to calculate
the strain
- pseudomorphically (appropriate in 1D and for homogeneous layers only
-> homogeneous-strain),
- use the
strain-minimization option (2D/3D) to minimize the elastic
energy,
- read it in from the raw data of previous calculations (raw-strain-in)
-
don't use strain at all (zero-strain-amorphous).
Here, the strain tensor is set to zero.
If using homogeneous-strain,
you will have to supply a substrate material that must be specified under the
keyword $domain-coordinates. You should be careful when using
homogeneous-strain in 2D or 3D simulations (only
appropriate for certain types of layers).
If using strain-minimization you must include the keyword
$strain-minimization-model
to specify substrate (i.e. the unstrained region) and boundary conditions.
The minimization of the elastic energy is needed to find the equilibrium
positions of the 'atoms'. With 'atoms' we mean 'material grid points' of our
discretized grid. It does not make sense to talk about 'atoms' as our strain
model is a continuum elasticity model and not an atomistic approach
like the valence force field (VFF) model for instance.
If using raw-strain-in
you should have a brief look at the Tip "How to read in strain data from
previous simulations" described below.
(See also $output-raw-data).
homogeneous-strain
(pseudomorphic strain): The deformation of the unit cell of
the strained layer is fixed along two spatial directions with respect
to the substrate material (pseudomorphic growth condition). Example: In
a 1D simulation along the x direction the deformations of the units cell of
the strained layer are fixed in the (y,z) plane. The unit cell is allowed to
deform along the x direction only.
strain-minimization (3D simulation): The unit
cell of the strained materials are allowed to deform along all three spatial
directions in order to minimize the elastic energy (e.g. quantum dots) with
respect to a special region in the device called the "substrate" which is
unstrained.
strain-minimization (2D simulation in the (x,y)
plane): The unit cell of the strained materials are allowed to deform along
all two spatial directions (x and y) in order to minimize the elastic energy
(e.g. quantum wires) with respect to a special region in the device
called the "substrate" which is unstrained. The strain (or unit cell
deformation) along the z direction is fixed due to the "pseudomorphic growth
condition" similar to the homogeneous-strain
case.
raw-sweep-index-in = 0
= 1
= 2
With this specifier
it is possible to read in raw data from a specific
voltage sweep index (voltage step).
(See also $output-raw-data).
Tip: How to read in strain data from previous simulations.
-
In Input file, specify to
write out strain data in raw data format.
!-----------------------------------------! $output-raw-data !
More Information:
$output-raw-data destination-directory =
raw_data1/ !
strain =
yes
! $end_output-raw-data ! !-----------------------------------------!
After the strain has been
calculated, the data is immediately written to the file
strain_store_eps3D.raw
(or
*2D.raw
or
*1D.raw
for a 2D or 1D simulation).
- In the next simulation run you can specify to read in this strain data.
Note that the simulated devices must have an identical grid, of couse.
!-----------------------------------------!
$simulation-flow-control
!
flow-scheme = 2 !
(any integer number is possible)
raw-directory-in =
raw_data1/ !
strain-calculation =
raw-strain-in !
$end_simulation-flow-control !
!-----------------------------------------!
(See also $output-raw-data).
|