NEMO5 Server

NEMO5 Server

Network for Computational Nanotechnology (NCN) Purdue, Norfolk State, Northwestern, MIT, Molecular Foundry, UC Berkeley, Univ. of Illinois, UTEP NEMO5 Server Daniel Mejia, Santiago Perez Nemo 5 Original Roadmap Building of the new NEMO Simulator (2010). Michael Povolotsky, Sebastian Steiger, Hong Park, Tillmann Kubis Daniel Mejia, Nemo5 Team Misconseptions about UI Creating a user interface is a the last Other Users are not my step problem Users are not my problem A “good” documentation is not enough Dilbert by Scott Adams / www.dilbert.com Simulation Design Process 1. Designer has a wonderful idea 2. Designer chooses a simulation tool/engine 3. Designer present results Simulation Design process Designer chooses a simulation tool/engine Simulation Design process Designer presents results Simulation Design process Nemo Rappture Simulation Design process scripts New solvers pbs Inputdeck postprocessing Nemo5 User Challenges • Atomistic representation »Crystallography: 2D/3D space »material-dependent parameters »Periodicity • Arbitrary geometries »Different geometric shapes »Non-standard devices • Dependant parameters »Alloys »VCA Si Ge Si https://nanohub.org/resources/14790 Nemo5 User Challenges • Hardware resources. »MPI Ranks, Cores - Nodes »GPU/Intel Phi • Algorithm decision. http://www.olcf.ornl.gov/titan/ »QTBM? RGF? »Multi-Physics »Non-linear Poisson / Semiclassical? • Algorithms parametrization. »Iterative Methods, Spacial Parallelization »Preconditioners »Number of iterations https://engineering.purdue.edu/gekcogrp/ software-projects/nemo5/numerics.php Inputdeck Objectives for new NEMO code: should include the functionality of the existing codes, e.g. NEMO1D, NEMO3D, OMEN, OMEN3d_par,… should replace nanohub tools, e.g. 1D Hetero, OMEN wire Modular, clearly written and easily maintainable, documented Single code supported by many people Allows for expansions: new physics must be added easily Must be user friendly: clear script/GUI, easily visualized output Must be user friendly: clear script/GUI, easily visualized output Michael Povolotskyi Inputdeck examples/BugInputDecks/Local_Band_Structure/LGB.in tructure Hamilton_constructor = schroeddd0 fake_momentum_2D_constructor = d1:schroed1 } { Material NEGF_object_list = (contact_retarded_self_Fermiondd) retarded_Green_Fermion_last_domain_inversion= exact //exact,LRA // =================================================================== { // this solver obtains the inverse Green's function for the subdomains name = AlGaAs contact_retarded_self_Fermiondd_constructor = Propagation4dd transmission = false // calculates invGr=E-H-sigma tag = Substrate contact_retarded_self_Fermiondd_solver = Propagation4dd selfenergy1_for_transmission = contact_retarded_self_Fermiond_last // =================================================================== crystal_structure = zincblende contact_retarded_self_Fermiond_last_solver = d1:Propagation_last:Propagation_last_inv:Propagation4d solver regions = (1) contact_retarded_self_Fermiondd_lead_domain= drain_drain_contact1 selfenergy2_for_transmission = contact_retarded_self_Fermion_rgf { x = 0 contact_retarded_self_Fermion_rgf_solver = d1:Propagation_rgf_ret:Propagation_rgf_inv:Propagation_rgf_self name = Propagation_rgf_inv mole_fraction = 0 // the next few lines obtain the Hamiltonian for the four atomic layers type = Green_Propagation disorder_type = totally_random_alloy //disorder // see equation (9) of reference [1] _step = (Propagation_last_inv) domain = device seed = 1000 Hamilton_constructor0 = schroeddd0 _disable_reinit = true active_regions = (1) // Bands:TB:sp3sstar:param_set = param_NEMO1D Hamilton_constructor1 = schroeddd1 _disable_solve = true Hamilton_constructor = d1:Propagation_rgf_ret:schroed_rgf Bands:TB:sp3d5sstar_SO:param_set = param_Klimeck Hamilton_constructor2 = schroeddd2 } Hamilton_constructor3 = schroeddd3 // ======================== //NEGF_object_list = (inverse_retarded_Green_Fermion_device_rgf,contact_retarded_self_Fermion_rgf) lead_domain0 = drain_drain_contact1 // iterate towards the last subdomain NEGF_object_list = (inverse_retarded_Green_Fermion_device_rgf,contact_retarded_self_Fermion_rgf) Material lead_domain1 = drain_drain_contact2 // ======================== { lead_domain2 = drain_drain_contact3 iterator contact_retarded_self_Fermion_rgf_constructor = name = AlGaAs lead_domain3 = drain_contact { d1:Propagation_rgf_ret:Propagation_rgf_inv:Propagation_rgf_self tag = cap1 set contact_retarded_self_Fermion_rgf_solver = crystal_structure = zincblende ratio_of_eigenvalues_to_be_solved = 1.0 //between 0-1, usually in exact solution: 0.6, in LRA 0.05 { d1:Propagation_rgf_ret:Propagation_rgf_inv:Propagation_rgf_self regions = (2) // LRA=false //true, false _disable_solve = true x = 0 Parallelizer = d1:Propagation_Parallelizer _disable_output = true contact_retarded_self_Fermion_rgf_constructor = mole_fraction = 0 retarded_lead_method = transfer_matrix transmission = false d1:Propagation_rgf_ret:Propagation_rgf_inv:Propagation_rgf_self disorder_type = totally_random_alloy //disorder } contact_retarded_self_Fermion_rgf_solver = seed = 1000 // do_output = false set d1:Propagation_rgf_ret:Propagation_rgf_inv:Propagation_rgf_self // Bands:TB:sp3sstar:param_set = param_NEMO1D Hamilton_momenta = (fake_momentum_2D) { Bands:TB:sp3d5sstar_SO:param_set = param_Klimeck energy_constructor = d1:Propagation_Parallelizer _disable_reinit = false } // e_momentum_1D_constructor = Propagation1 _disable_solve = false contact_retarded_self_Fermion_rgf_lead_domain= source_contact momentum_names = (energy,fake_momentum_2D) _disable_output = false Material fake_momentum_2D_constructor = d1:schroed1 domain = device_3 { } output_suffix = last inverse_retarded_Green_Fermion_device_rgf_constructor = Propagation_rgf_inv name = GaAs transmission = true inverse_retarded_Green_Fermion_device_rgf_solver = Propagation_rgf_inv tag = cap2 // ============================= do_output = true crystal_structure = zincblende // Schroedinger in the DD0 layer } Parallelizer = d1:Propagation_Parallelizer regions = (3) // ============================= } // Bands:TB:sp3sstar:param_set = param_NEMO1D solver //do_output = true Bands:TB:sp3d5sstar_SO:param_set = param_Klimeck { // =================================================================== Lattice:strain_beta_As_Al_Ga= sqrt(AlAs:Lattice:strain_beta_Al_As_As * GaAs:Lattice:\ job_list=(assemble_H,passivate_H) // this solver obtains the inverse Green's function for the subdomains Hamilton_momenta = (fake_momentum_2D) strain_beta_Ga_As_As) // calculates invGr=E-H-sigma energy_constructor = d1:Propagation_Parallelizer Lattice:strain_alpha_Al_As= AlAs:Lattice:strain_alpha_As_Al output=(energies,k-points,Hamiltonian) // =================================================================== momentum_names = (energy,fake_momentum_2D) Lattice:strain_beta_As_Al_Al=8.94 solver fake_momentum_2D_constructor = d1:schroed1 Lattice:strain_alpha_In_As = 0.55 * 35.18 name = schroeddd0 { Lattice:strain_alpha_As_In = 0.55 * 35.18 type = Schroedinger name = Propagation_last_inv // ======================== Lattice:strain_beta_As_Al_In=strain_beta_As_Ga_In domain = drain_drain_contact0 type = Green_Propagation // iterate over subdomains active_regions = (1) domain = device // ======================== active_regions = (1) _step = (Propagation_rgf_self) tb_basis = sp3sstar_SO Hamilton_constructor = d1:Propagation_rgf_ret:schroed_rgf iterator } parallelize_here = false { crystal_structure = zincblende NEGF_object_list = (inverse_retarded_Green_Fermion_last_domain, contact_retarded_self_Fermion_rgf, set regions = (4) Hamilton_constructor_drain_drain_contact1 = schroeddd1 contact_retarded_self_Fermiond_last) { x = 0.15 _disable_solve = true mole_fraction = 0.15 k_points = [(0,0,0)] contact_retarded_self_Fermion_rgf_constructor = } disorder_type = totally_random_alloy //disorder d1:Propagation_rgf_ret:Propagation_rgf_inv:Propagation_rgf_self set seed = 1000 threshold_energy = -15 contact_retarded_self_Fermion_rgf_solver = { // Bands:TB:sp3sstar:param_set = param_NEMO1D number_of_nodes = 1 d1:Propagation_rgf_ret:Propagation_rgf_inv:Propagation_rgf_self domain = device_0 Bands:TB:sp3d5sstar_SO:param_set = param_Klimeck } } Lattice:strain_alpha_In_As = 0.55 * 35.18 } contact_retarded_self_Fermion_rgf_lead_domain = device_2 loop(3) Lattice:strain_alpha_As_In = 0.55 * 35.18 } { active_regions = (1) // Lattice:strain_alpha_Ga_As = 77.87673 } job_list=(assemble_H,passivate_H) Hamilton_constructor = d1:Propagation_rgf_ret:schroed_rgf } // ########################################################################################### output=(energies,k-points,Hamiltonian) NEGF_object_list = (contact_retarded_self_Fermion_rgf,retarded_Green_Fermion_device0) Material // this solver obtains the self energy for the source contact { // calculates sigmas=Ts*Gs*Ts' with T the coupling Hamiltonian between source contact and device name = schroeddd3 contact_retarded_self_Fermion_rgf_constructor = Propagation_rgf_self name = InAs // type = Schroedinger contact_retarded_self_Fermion_rgf_solver = Propagation_rgf_self tag = dot =========================================================================================== domain = source_source_contact3 crystal_structure = zincblende solver active_regions = (1) contact_retarded_self_Fermion_rgf_lead_domain = source_contact regions = (5,6) { // Bands:TB:sp3sstar:param_set = param_NEMO1D name = Propagation4s tb_basis = sp3sstar_SO retarded_Green_Fermion_device0_constructor = d1:Propagation4s:Propagation2 Bands:TB:sp3d5sstar_SO:param_set

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    39 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us