MetaPoissonQTBM5 solver options
description
Transcript of MetaPoissonQTBM5 solver options
Network for Computational Nanotechnology (NCN)Purdue, Norfolk State, Northwestern, MIT, Molecular Foundry, UC Berkeley, Univ. of Illinois, UTEP
MetaPoissonQTBM5 solver options
Gerhard Klimeck 2
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 3
MetaPoissonQTBM5 solver
General Options
Gerhard Klimeck 4
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_transmission
Tells propagation whether to apply an integration weight (based on dimensionality) and integrate transmission.
false true/false
Gerhard Klimeck 5
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 6
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 7
General Options(4)
Option Name Description Default Value Possible Range
source_source_source_contact
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_contact
string
contact_aux The name of the domain to be used by the fast self-consistent 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 8
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 9
General Options(6)
Option Name Description Default Value Possible Range
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 10
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 11
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_real_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_name
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 12
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 13
MetaPoissonQTBM5 solver
Poisson (Boundary Conditions and Convergence) Options
Gerhard Klimeck 14
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 15
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 16
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 17
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 18
Poisson Options (5)
Option Name Description Default Value Possible Range
homogenous_initial_potential
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 19
MetaPoissonQTBM5 solver
Energy and K-space
Gerhard Klimeck 20
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 21
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 22
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_Parallelizer”
string corresponding to location of adaptive grid.
Gerhard Klimeck 23
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_output
Outputs energy resolved current. Works for wire geometry only.
true true/false