MetaPoissonQTBM5_solver_options_01_28_2014x
Download
Report
Transcript MetaPoissonQTBM5_solver_options_01_28_2014x
Network for Computational Nanotechnology (NCN)
Purdue, Norfolk State, Northwestern, MIT, Molecular Foundry, UC Berkeley, Univ. of Illinois, UTEP
MetaPoissonQTBM5
solver options
MetaPoissonQTBM5 solver
• Purpose of this solver is to abstract out some of the input options
for QTBM with Poisson for wires, UTB (Ultra thin bodies), and
quasi-1D systems.
Gerhard Klimeck
2
MetaPoissonQTBM5 solver
General Options
Gerhard Klimeck
3
General Options(1)
Option Name
Description
Default Value
Possible Range
name
Name associated with this
solver. Its value will be
prepended to each file
name.
None. This is required.
string
type
Tells NEMO5 to use the
MetaPoissonQTBM5 solver
MetaPoissonQTBM5
MetaPoissonQTBM5
tb_basis
The tight-binding basis/ band
structure model
None. This is required.
em, sp3, sp3sstar, sp3d5,
sp3d5sstar, sp3_SO,
sp3sstar_SO, sp3d5_SO,
sp3d5sstar_SO
temperature
The temperature used in the
Schroedinger solver in
Kelvin.
300
double
material_semiconductor
This is the tag associated
with the semiconductor
material defined in the input
deck and should match.
chunk_of_Silicon
string
no_integration_for_transmis
sion
Tells propagation whether to
apply an integration weight
(based on dimensionality)
and integrate transmission.
false
true/false
Gerhard Klimeck
4
General Options(2)
Option Name
Description
Default Value
Possible Range
device
Name of the domain
associated with the device.
This should correspond to
the domain in the domain
section of the input deck.
device
string
drain_contact
Name of the domain
associated with the drain
contact. This should
correspond to the domain in
the domain section of the
input deck.
drain_contact
string
drain_mode_contact
Name of the domain
associated with the drain
mode contact. This should
correspond to the domain in
the domain section of the
input deck.
drain_mode_contact
string
drain_drain_contact
Name of the domain
associated with the drain
drain contact. This should
correspond to the domain in
the domain section of the
input deck.
drain_drain_contact
string
Gerhard Klimeck
5
General Options(3)
Option Name
Description
Default Value
Possible Range
drain_drain_drain_contact
Name of the domain
associated with the drain
drain drain contact. This
should correspond to the
domain in the domain
section of the input deck.
drain_drain_drain_contact
string
source_contact
Name of the domain
associated with the source
contact. This should
correspond to the domain in
the domain section of the
input deck.
source_contact
string
source_mode_contact
Name of the domain
associated with the source
mode contact. This should
correspond to the domain in
the domain section of the
input deck.
source_mode_contact
string
source_source_contact
Name of the domain
associated with the source
source contact. This should
correspond to the domain in
the domain section of the
input deck.
source_source_contact
string
Gerhard Klimeck
6
General Options(4)
Option Name
Description
Default Value
Possible Range
source_source_source_cont
act
Name of the domain
associated with the source
source source contact. This
should correspond to the
domain in the domain
section of the input deck.
source_source_source_cont
act
string
contact_aux
The name of the domain to
be used by the fast selfconsistent algorithm for
calculating the Fermi level in
the contacts.
contact_aux
user defined
debug_output_job_list
A debug output options to
output a file that includes the
(E,k) tuple load balancing for
each MPI rank.
false
true/false
reuse_hamiltonian
If this is true then the base
Hamiltonian i.e. without the
potential from Poisson will
be saved and subsequently
loaded when requested. This
should save time but uses
more memory.
true
true/false
Gerhard Klimeck
7
General Options(5)
Option Name
Description
Default Value
Possible Range
with_poisson
This option is used to set
whether the simulation
should be done with or
without self-consistent
Poisson.
false
true/false
ratio_of_LRA
This option is used for a
reduced rank matrix method
for Transport. It says what
ratio of the total eigenvalues
to use to transform the
source matrix.
1
between 0 – 1. 0.05 is a
typical value for LRA and 1
is no reduction.
system_is_wire_with_no_SO
If the system is a wire with
no spin orbit coupling this
should be set as true. This
will greatly reduce the time
the simulation takes.
false
true/false
density_solver
The Propagator Solver that
provides the density for
QTBM_Propagation type
Solver.
The name of the Meta
Solver + ‘:Core:QTBM_test
Gerhard Klimeck
8
General Options(6)
Option Name
Description
Default Value
derivative_of_density_solver
The Propagator Solver that
provides the derivative of
density for
QTBM_Propagation type
Solver.
The name of the Meta
Solver + ‘:Core:QTBM_test
solver_type
The linear solver to solve the
QTBM equation.
mumps
mumps or compression
debug_output
A catch-all option for output
that isn’t necessary unless
debugging.
false
true/false
no_file_output
This suppresses output files
from QTBM
false
true/false
Gerhard Klimeck
Possible Range
9
General Options(7)
Option Name
Description
Default Value
Possible Range
solve_on_single_replica
This should not be changed.
Required to avoid
communication.
true
true/false
system_type
Defines the system. It is
used to define the
transverse kx (if UTB) and
the momentum_names. It
will define transverse kx and
ky if system_type ==
quasi_1D
wire
wire or UTB
noise_potential
Adds a fictitious random
noise potential to account for
degenerate states in QTBM
of the magnitude of this
value.
1e-6
double
constant_lead_eta
eta added to diagonal of
lead Hamiltonian used in
transfer_matrix
0.0
true/false
Gerhard Klimeck
10
General Options(8)
Option Name
Description
Default Value
Possible Range
MPI_distribution_strategy
Defines the spatial
distribution strategy for the
repartioner. If solver_type
== compression use OMEN.
OMEN
OMEN, NEMO5
number_of_MPI_ranks_in_r
eal_space
The number of processes for
Spatial Parallelizing of
QTBM
No default.
n>0
active_regions
Used to let the solver know
what is the device region
Device:ActiveRegion:device.
This should not be changed
Device:ActiveRegion:device
material_semiconductor_na
me
Should match the name of
material in Material section
(old geometry definition), or
material_name option in
Device (metageometry
definition). Used for the
semiclassical charge solver
(initial guess).
Si
All existing material names
in NEMO5
Gerhard Klimeck
11
General Options(9)
Option Name
Description
Default Value
Possible Range
electron_hole_model
Use both electrons and
holes (with spatial thershold)
in QTBM density calculation
(eg. for TFET devices)
false
true, false
electron_hole_heuristics
Algorithm for distinguishing
electrons from holes given
the spatial threshold
sharp
omen_smooth, sharp
particle
Particle type if single particle
device.
electron
electron, hole
particle_source
Source particle type.
= particle
electron, hole (Required for
devices where one contact
is n-type and one p-type)
particle_drain
Drain particle type.
= particle
electron, hole (Required for
devices where one contact
is n-type and one p-type)
raw_transmission_output
Whether to output
Transmission
= false
True, false
Gerhard Klimeck
12
MetaPoissonQTBM5 solver
Poisson (Boundary Conditions
and Convergence) Options
Gerhard Klimeck
13
Poisson Options (1)
Option Name
Description
Default Value
Possible Range
laplacian
Defines the direction in
which to solve the linear
Poisson in the leads. It is
used to propagate device
Poisson potential to the
leads.
(x)
(x), (y) or (z)
gate_voltage
A single value to define the
applied gate voltage. To use
multiple values use a ramper
Solver instead.
0.0
double
source_voltage
A single value to define the
applied source voltage. To
use multiple values use a
ramper Solver instead.
0.8
double
drain_voltage
A single value to define the
applied drain voltage. To use
multiple values use a ramper
Solver instead.
0.0
double
ramper_contact
The name of which contact
to apply the ramper_voltage
to.
gate
gate, drain, or source
Gerhard Klimeck
14
Poisson Options (2)
Option Name
Description
Default Value
Possible Range
ramper_voltage
A list of voltages that are to
be applied to the contact
defined in ramper_contact
(0.0)
A list of doubles.
regions_adjacent_to_source
_electrode
The region number that is
connected to the source
electrode. This allows
NEMO5 to know where the
source electrode is
connected and is used for
applying boundary
conditions in Poisson.
None. This is required.
A list of integers
corresponding to regions.
regions_adjacent_to_drain_
electrode
The region number that is
connected to the drain
electrode. This allows
NEMO5 to know where the
drain electrode is connected
and is used for applying
boundary conditions in
Poisson.
None. This is required.
A list of integers
corresponding to regions.
metal_work_function
The energy required (in eV)
to move an electron from the
Fermi Energy to vacuum. It
is used by Poisson for the
Schottky contact Boundary
condition.
4.2
double > 0
Gerhard Klimeck
15
Poisson Options (3)
Option Name
Description
Default Value
Possible Range
Source_chemical_potential
The electrochemical
potential (in eV) for the
source contact. It is used by
QTBM and adaptive grid,
unless it is overwritten by
Poisson boundary conditions
(which happens by default).
0.0
double
Drain_chemical_potential
The electrochemical
potential (in eV) for the drain
contact. It is used by QTBM
and adaptive grid, unless it
is overwritten by Poisson
boundary conditions (which
happens by default).
0.0
double
iteration_output
A catch-all option for
intermediate output useful
for debugging iterations in
Poisson.Some examples of
output is Adaptive Grid E,k
data and 1D output potential
which has potential, density
etc. Note: Simulation will
take much longer with this
option set true. It should only
be used when debugging.
false
true/false
Gerhard Klimeck
16
Poisson Options (3)
Option Name
Description
Default Value
Possible Range
Dirichlet_nodes_output
If this is true the Dirchlet
nodes will be outputted in a
.dat files.
false
true/false
output_line_corners
To define a line through the
device in which to print a
poisson_1D_output file that
has potential, density etc.
[(0, 1.0862, 1.0862), (20.0,
1.0862, 1.062)]
Should follow convention
similar to default.
average_charge_over_fem_
cell
This option is used to define
how is the atomic charge
mapped to the FEM cell
(averaged or delta like
points).
true
true/false
poisson_max_iterations
Maximum number of
iterations to be used by the
Poisson algorithm before
stopping
15
n>0
convergence_limit
convergence limit for
iterative solution methods
(accuracy of eigenvalues)
1e-7
double
Gerhard Klimeck
17
Poisson Options (5)
Option Name
Description
Default Value
Possible Range
homogenous_initial_potentia
l
An initial guess for Poisson
(when safe mode is used)
that should be close to the
actual value of the potential.
If this value is chosen close
to actual this will improve
convergence.
1.5
double
selfconsistent_algorithm
Algorithm used to solve the
nonlinear Poisson equation.
Fast uses a semi-classical
guess for the first point,
previous solution for the
second point, and prediction
based on previous two
solutions for the third and
higher points. It also uses a
full step size in the Newton
method. Safe uses a simple
homogenous initial guess for
the first point, previous
solution as initial guess for
other points, and Newton
method with protection
against divergence.
safe
safe, fast
Gerhard Klimeck
18
MetaPoissonQTBM5 solver
Energy and K-space
Gerhard Klimeck
19
Energy and K-Space options(1)
Option Name
Description
Default Value
Possible Range
energy_grid_small_number_
of_points
The number of points to
actually use in the adaptive
energy grid ( = n means only
first n points will be used
from the ordered adaptive
grid).
None. This is required.
n>0
bands_number_of_nodes
The number of k nodes in
the transport direction to
solve for in the Schroedinger
band structure solver for the
drain and source mode
contact domain.
200
n>0
non_rectangular_energy
This option must be true to
define a k-dependent energy
mesh. This is necessary for
system_type ==
UTB/quasi_1D
false
true/false
energy_points
The number of energy points
to use for a homogenous
energy grid.
None. This is required if not
using Adaptive Grid
n>0
energy_range
The energy range (in eV) to
be used by homogenous
grid.
None. This is required if not
using Adaptive Grid
A list that defines the
minimum and the minimum
energy.
Gerhard Klimeck
20
Energy and K-Space options(2)
Option Name
Description
Default Value
Possible Range
number_of_eigenvalues_to_
use
The number of contact
bands to actually use in the
code for constructing the
adaptive grid.
16
n>0
number_of_eigenvalues
The number of contact
bands that the Schroedinger
band structure solvers
should attempt to find. This
option must be high enough
to ensure that band solvers
find enough converged
eigenvalues to satisfy the
above option. Otherwise this
option does not affect the
simulation results.
150
Any integer greater than or
equal to the
number_eigenvalues_to_use
should usually be several
times larger.
number_of_k_points
The number of k nodes in
the transverse
direction/directions to solve
for in the Schroedinger band
structure solver for the drain
and source mode contact
domain.
None. This is required for
system_type == UTB and
system_type == quasi_1D.
n>0
Gerhard Klimeck
21
Energy and K-Space options(3)
Option Name
Description
Default Value
Possible Range
particle
Used to set the eigenvalue
sorting for Schroedinger and
set the default drain and
source threshold energy
used by QTBM Solver to
decide if the energy is a hole
or an electron.
electron
electron or hole
degeneracy_factor
Sets the degeneracy factor
for transmission/current and
density calculation in the
transport solver. Currently
should only be used for
transverse k-degeneracy.
1
n>0
bands_solver_type
The eigenvalue solver
method to be used by the
mode contact Schroedinger
solvers and the
semiclassical Schroedinger
(if selfconsistent_algorithm
== fast)
krylovschur
krylovschur and lapack to
name a few.
energy_grid_constructor
This option is used to set the
energy grid constructor. It’s
main use is for telling QTBM
what adaptive grid generator
is.
name +
‘:Core:Propagation_Paralleli
zer”
string corresponding to
location of adaptive grid.
Gerhard Klimeck
22
Energy and K-Space options(4)
Option Name
Description
Default Value
Possible Range
kxmax
if system_type == UTB or
system_type == quasi_1D
Maximum transverse kx
None. This is required if
system_type == UTB or
system_type == quasi_1D.
double > kxmin
kxmin
if system_type == UTB or
system_type == quasi_1D
Minimum transverse kx
None. This is required if
system_type == UTB or
system_type == quasi_1D.
double > kxmax
kymax
if system_type == quasi_1D
Maximum transverse ky
None. This is required if
system_type == quasi_1D.
double > kymin
kymin
if system_type == quasi_1D
Minimum transverse ky
None. This is required if
system_type == quasi_1D
double < kymax
energy_resolved_current_ou
tput
Outputs energy resolved
current. Works for wire
geometry only.
true
true/false
Gerhard Klimeck
23