Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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