Network for Computational Nanotechnology (NCN) UC Berkeley, Univ.of Illinois, Norfolk State, Northwestern, Purdue, UTEP Tutorial 2. Input & output in NEMO5.

Slides:



Advertisements
Similar presentations
Capacitive Micromotor
Advertisements

Tutorial1: NEMO5 Technical Overview
Network for Computational Nanotechnology (NCN) UC Berkeley, Univ.of Illinois, Norfolk State, Northwestern, Purdue, UTEP First-Time User Guide BJT Lab V2.0.
Device Simulation: Transport (Double Gate MOSFETs) Mehdi Salmani Jelodar, Seung Hyun Park, Zhengping Jiang, Tillmann Kubis, Michael Povolotsky, Jim Fonseca,
July 2010 D2.1 Upgrading strategy Javier Soto Catalog Release 3. Communities.
Tutorial 12: Enhancing Excel with Visual Basic for Applications
Computer Aided Thermal Fluid Analysis Lecture 2 Dr. Ming-Jyh Chern ME NTUST.
Network for Computational Nanotechnology (NCN) UC Berkeley, Univ.of Illinois, Norfolk State, Northwestern, Purdue, UTEP Tutorial 6 – Device Simulation:
© Janice Regan, CMPT 102, Sept CMPT 102 Introduction to Scientific Computer Programming The software development method algorithms.
J. H. Woo, Department of Electrical & Computer Engineering Texas A&M University GEOMETRIC RELIEF OF STRAINED GaAs ON NANO-SCALE GROWTH AREA.
Introduction to virtual engineering László Horváth Budapest Tech John von Neumann Faculty of Informatics Institute of Intelligent Engineering.
Network for Computational Nanotechnology (NCN) UC Berkeley, Univ.of Illinois, Norfolk State, Northwestern, Purdue, UTEP Tutorial 5 Strain Hesameddin Ilatikhameneh.
Network for Computational Nanotechnology (NCN) UC Berkeley, Univ.of Illinois, Norfolk State, Northwestern, Purdue, UTEP First Time User Guide to OMEN Nanowire**
Network for Computational Nanotechnology (NCN) Purdue, Norfolk State, Northwestern, MIT, Molecular Foundry, UC Berkeley, Univ. of Illinois, UTEP DFT Calculations.
“High-performance computational GPU-stand for teaching undergraduate and graduate students the basics of quantum-mechanical calculations“ “Komsomolsk-on-Amur.
Preparing Data for Analysis and Analyzing Spatial Data/ Geoprocessing Class 11 GISG 110.
Processing of a CAD/CAE Jobs in grid environment using Elmer Electronics Group, Physics Department, Faculty of Science, Ain Shams University, Mohamed Hussein.
Network for Computational Nanotechnology (NCN) UC Berkeley, Univ.of Illinois, Norfolk State, Northwestern, Purdue, UTEP Using NEMO5 to quantitatively predict.
Kyoto UniversityHong Kong University of Science and Technology Coventor Tutorial Bi-Stable Mechanical Beam Simulation -Material definition -Fabrication.
Computer Aided Thermal Fluid Analysis Lecture 3 Dr. Ming-Jyh Chern ME NTUST.
ANSYS Fundamentals This document contains no technical data subject to the EAR or the ITAR.
Non stationary heat transfer at ceramic pots firing Janna Mateeva, MP 0053 Department Of Material Science And Engineering Finite Element Method.
The H 2 O molecule: converging the size of the simulation box Objectives - study the convergence of the properties with the size of the unit cell.
1 CSC 221: Introduction to Programming Fall 2012 Functions & Modules  standard modules: math, random  Python documentation, help  user-defined functions,
Network for Computational Nanotechnology (NCN) Purdue, Norfolk State, Northwestern, MIT, Molecular Foundry, UC Berkeley, Univ. of Illinois, UTEP NEMO5.
Tutorial3: NEMO5 Models Jean Michel D. Sellier, Tillmann Kubis, Michael Povolotskyi, Jim Fonseca, Gerhard Klimeck Network for Computational Nanotechnology.
Network for Computational Nanotechnology (NCN) UC Berkeley, Univ.of Illinois, Norfolk State, Northwestern, Purdue, UTEP First-Time User Guide Drift-Diffusion.
TransAT Tutorial Particle Tracking July 2015 ASCOMP
Network for Computational Nanotechnology (NCN) Purdue, Norfolk State, Northwestern, MIT, Molecular Foundry, UC Berkeley, Univ. of Illinois, UTEP Multi.
1 Functions Lecfture Abstraction abstraction is the process of ignoring minutiae and focusing on the big picture in modern life, we are constantly.
Vectors and Matrices In MATLAB a vector can be defined as row vector or as a column vector. A vector of length n can be visualized as matrix of size 1xn.
Network for Computational Nanotechnology (NCN) UC Berkeley, Univ.of Illinois, Norfolk State, Northwestern, Purdue, UTEP Generation of Empirical Tight Binding.
ANSYS for MEMS by Manjula1 FEM of MEMS on ANSYS MEMS Summer 2007 Why FEM for MEMS? Features in ANSYS Basic Procedures Examples.
Abhijeet Paul Network for Computational Nanotechnology (NCN) UC Berkeley, Univ.of Illinois, Norfolk State, Northwestern, Purdue, UTEP Crystal Viewer Tool.
FEMA-MES SYSTEM. VERSION 2.0 ON LIVE LINUX PLATFORM Wacław PRZYBYŁO Jarosław KALINOWSKI.
Network for Computational Nanotechnology (NCN) SungGeun Kim Purdue, Norfolk State, Northwestern, MIT, Molecular Foundry, UC Berkeley, Univ. of Illinois,
Network for Computational Nanotechnology (NCN) Purdue, Norfolk State, Northwestern, UC Berkeley, Univ. of Illinois, UTEP ADEPT 2.0 First-Time User Guide.
Defects. Types of defects Structures of the solids considered have been ideal, i.e. devoid of defects. Structures of the solids considered have been ideal,
CFX-10 Introduction Lecture 1.
Network for Computational Nanotechnology (NCN) MEEPPV User Guide Xin Tze Tee Electrical and Computer Engineering Purdue University West Lafayette, IN
Chapter 14: Files and Streams. 2Microsoft Visual C# 2012, Fifth Edition Files and the File and Directory Classes Temporary storage – Usually called computer.
Using NEMO5 to quantitatively predict topological insulator behaviour
Kyoto UniversityHong Kong University of Science and Technology Coventor Tutorial Bi-Stable Mechanical Beam Simulation -Remote Desktop Connection -Material.
TransAT Tutorial Separation of Oil, Gas & Water July 2015 ASCOMP
Network for Computational Nanotechnology (NCN) UC Berkeley, Univ.of Illinois, Norfolk State, Northwestern, Purdue, UTEP First Time User Guide to MOSCAP*
“NanoElectronics Modeling tool – NEMO5” Jean Michel D. Sellier Purdue University.
Design and Implement a Electro thermal Compliant
Network for Computational Nanotechnology (NCN) UC Berkeley, Univ.of Illinois, Norfolk State, Northwestern, Purdue, UTEP First time user guide for RTD-NEGF.
Network for Computational Nanotechnology (NCN) Gerhard Klimeck Berkeley, Univ. of Florida, Univ.of Illinois, Norfolk State, Northwestern, Purdue, Stanford,
TransAT Tutorial Dam Break June 2015 ASCOMP
Dr. Abdullah Almutairi Spring PHP is a server scripting language, and a powerful tool for making dynamic and interactive Web pages. PHP is a widely-used,
Network for Computational Nanotechnology (NCN) UC Berkeley, Univ.of Illinois, Norfolk State, Northwestern, Purdue, UTEP OMEN Nanoiwre* Supporting Document.
INTRODUCTION TO COMPUTER PROGRAMMING(IT-303) Basics.
13-1 ANSYS, Inc. Proprietary © 2009 ANSYS, Inc. All rights reserved. April 28, 2009 Inventory # Chapter 13 Solver.out File and CCL Introduction to.
Tutorial of Practice #4 - Supercell & Defect formation energy -
Introduction to Problem Solving Programming is a problem solving activity. When you write a program, you are actually writing an instruction for the computer.
Hybrid Parallel Implementation of The DG Method Advanced Computing Department/ CAAM 03/03/2016 N. Chaabane, B. Riviere, H. Calandra, M. Sekachev, S. Hamlaoui.
System is a set of interacting or interdependent components forming an integrated whole.
Introduction to Algorithm. What is Algorithm? an algorithm is any well-defined computational procedure that takes some value, or set of values, as input.
TransAT Tutorial Backward Step May 2015 ASCOMP
Finite element mesh and load definition
Basics of Computer A Computer is Electronic device that can
Chapter 13 Solver .out File and CCL
ENFORCED MOTION IN TRANSIENT ANALYSIS
Assembler, Compiler, Interpreter
Use of Mathematics using Technology (Maltlab)
GENERAL VIEW OF KRATOS MULTIPHYSICS
OVERVIEW OF FINITE ELEMENT METHOD
Assembler, Compiler, Interpreter
Vectors and Matrices In MATLAB a vector can be defined as row vector or as a column vector. A vector of length n can be visualized as matrix of size 1xn.
Presentation transcript:

Network for Computational Nanotechnology (NCN) UC Berkeley, Univ.of Illinois, Norfolk State, Northwestern, Purdue, UTEP Tutorial 2. Input & output in NEMO5 Michael Povolotskyi, Tillmann Kubis, James Fonseca, Jean Michel Sellier, Daniel Mejia Network for Computational Nanotechnology (NCN) Purdue University, West Lafayette IN

Synopsis 1.How to control the simulator? 2.The NEMO5 input deck. 3.Creation of atomic structures. 4.Visualization of the atomistic output (structure). 5.Creation of Finite element mesh. 6.Visualization of finite element data (electric potential). 1.How to control the simulator? 2.The NEMO5 input deck. 3.Creation of atomic structures. 4.Visualization of the atomistic output (structure). 5.Creation of Finite element mesh. 6.Visualization of finite element data (electric potential).

How to control the simulator? (I) mpiexec -n N nemo transistor.in MPI execution command NEMO5 executable material parameter database Input deck Two ASCII files that control NEMO5 If you have NEMO5 installed in your system:

How to run the code? (III) User editable files » Simulations are controlled by input deck » Material parameters are stored in a database file The input deck files are created by a user. The input deck files are written in “NEMO5 input language” or in Python. Now we learn the “NEMO5 input language” which is sufficient for any simulation. The database file is provided, but can be changed by an experienced user.

Synopsis 1.How to control the simulator? Done 2.The NEMO5 input deck. 3.Creation of atomic structures. 4.Visualization of the atomistic output (structure). 5.Creation of Finite element mesh. 6.Visualization of finite element data (electric potential). 1.How to control the simulator? Done 2.The NEMO5 input deck. 3.Creation of atomic structures. 4.Visualization of the atomistic output (structure). 5.Creation of Finite element mesh. 6.Visualization of finite element data (electric potential).

The NEMO5 input deck (I) Input deck is an ASCII file – can be opened by any text editor… Input deck is an ASCII file – can be opened by any text editor… Input deck consists of blocks surrounded by “{“ and “}” Input deck consists of blocks surrounded by “{“ and “}” a block contains other blocks and/or options a block contains other blocks and/or options options are assignments like: voltage = 1.0 k_vector = (0.0, 0.5, 0.5) options are assignments like: voltage = 1.0 k_vector = (0.0, 0.5, 0.5) Solvers { solver {//solver for the electron density name = quantum_electron type = Schroedinger domain = atomic_structure active_regions = (1,2,3) job_list = (electron_density) eigen_values_solver = krylovschur number_of_eigenvalues = 10 max_number_iterations = 3000 convergence_limit = 1e-12 } C++ style comments are supported Input deck fragment block name

The NEMO5 input deck. (II) There are 3 blocks in the input deck: Structure { } Structure { } Solvers { } Solvers { } Global { } defines material and simulation domains defines simulations that has to be solved, e.g. equations, boundary conditions,iteration processes, output, numerical options, etc defines global variables such as temperature, which database file to use, diagnostic output, etc.

The NEMO5 input deck – the first block “Structure” Structure { } Structure { } Domain { name = device … } Domain { name = contact1 … } Domain { name = device … } Domain { name = contact1 … } Geometry { } Geometry { } Material { name = Si … } Material { name = SiGe … } Material { name = Si … } Material { name = SiGe … } materials Domains for simulations Description of the geometry

Synopsis 1.How to control the simulator? Done 2.The NEMO5 input deck. Done 3.Creation of atomic structures. 4.Visualization of the atomistic output (structure). 5.Creation of Finite element mesh. 6.Visualization of finite element data (electric potential). 1.How to control the simulator? Done 2.The NEMO5 input deck. Done 3.Creation of atomic structures. 4.Visualization of the atomistic output (structure). 5.Creation of Finite element mesh. 6.Visualization of finite element data (electric potential).

Creation of atomic structures (I) Structure { } Structure { } Domain { name = device … } Domain { name = contact1 … } Domain { name = device … } Domain { name = contact1 … } Geometry { } Geometry { } Material { name = Si … } Material { name = SiGe … } Material { name = Si … } Material { name = SiGe … } Design the device Chose material and crystal structures Define where each equation is solved Geometry block Material and domain blocks Solver and domain blocks User’s steps Input deck sections

Example1: Si/SiGe quantum wire Si Si 0.4 Ge 0.6 Goal: create Si wire surrounded by a Si 0.4 Ge 0.6 layer Additional requirements: [100] transport direction SiGe alloy is represented as a disordered system Additional requirements: [100] transport direction SiGe alloy is represented as a disordered system

Example1. Si/SiGe wire: definition of materials. Material { name = Si tag = core crystal_structure = diamond regions = (1) } Material { name = SiGe tag = substrate crystal_structure = diamond regions = (2) mole_fraction = 0.4 disorder_type = totally_random_alloy } Material { name = Si tag = core crystal_structure = diamond regions = (1) } Material { name = SiGe tag = substrate crystal_structure = diamond regions = (2) mole_fraction = 0.4 disorder_type = totally_random_alloy } Each material occupies a region (or regions) Material definition requires: o name o tag o crystal_structure special parameters for an alloy Si Si 0.4 Ge 0.6 reg.1 reg.2

Example1. Si/SiGe wire: definition of geometry shapes. Region { shape = cuboid region_number = 1 priority = 2 min = ( 0,2,0) max = ( 10,4,4) } Region { shape = cuboid region_number = 1 priority = 2 min = ( 0,2,0) max = ( 10,4,4) } Si Si 0.4 Ge 0.6 reg.1 reg.2 reg.1 reg.2 Region { shape = cuboid region_number = 2 priority = 1 min = (3,0,0) max = (7,6,5) } Region { shape = cuboid region_number = 2 priority = 1 min = (3,0,0) max = (7,6,5) } reg.2 reg.1 Full viewCross-section view *coordinates are defined in nanometers If two regions overlap, then the biggest priority value wins!

Example1. Si/SiGe QWR. Atomistic domain. Read-in atomic structure (see discussion forum for details ) Read-in atomic structure (see discussion forum for details ) Generate atomic structure. (this tutorial) Generate atomic structure. (this tutorial) Only pseudomorphic lattice is supported; Chemical bonds are calculated by NEMO5; Strain relaxation is required for lattice mismatched systems (see tutorial 5) Any structures (crystals, amorphous, bio molecules, etc…) are possible; Chemical bonding has to be provided; Two ways to create an atomistic domain:

Example1. Si/SiGe wire: Pseudomorphic domain (I) Pseudomorphic domain is an ideal lattice that consists of materials with the same crystallographic structure. No defects. No different lattices in one domain such as GaN and Si together. No defects. No different lattices in one domain such as GaN and Si together. but… Different lattice constants are possible. Some defects in the lattice may be created by NEMO5 (e.g. single impurities, Lecture 7 ). Different lattice constants are possible. Some defects in the lattice may be created by NEMO5 (e.g. single impurities, Lecture 7 ).

Steps to create a pseudomorphic domain. Select the base material. Create a big lattice by repeating the base material unit cells. Substitute the base material atoms by the actual material atoms. Remove unnecessary atoms if needed. Relax the structure (will be shown in tutorial 5) Domain block Geometry block

Base material cell definition Example1. Si/SiGe wire: Pseudomorphic domain (II) Domain{ name = wire_atomistic type = pseudomorphic base_material = core crystal_direction1 = (1,0,0) crystal_direction2 = (0,1,0) crystal_direction3 = (0,0,1) space_orientation_dir1 =(1.0,0.0,0.0) space_orientation_dir2 =(0.0,1.0,0.0) dimension = (30,20,20) periodic = (false, false, false) regions = (1,2) geometry_description = simple_shapes passivate = true random_alloy = true } Domain{ name = wire_atomistic type = pseudomorphic base_material = core crystal_direction1 = (1,0,0) crystal_direction2 = (0,1,0) crystal_direction3 = (0,0,1) space_orientation_dir1 =(1.0,0.0,0.0) space_orientation_dir2 =(0.0,1.0,0.0) dimension = (30,20,20) periodic = (false, false, false) regions = (1,2) geometry_description = simple_shapes passivate = true random_alloy = true } Bravais vectors of the cell (miller indexes) Orientation of the crystal directions in the laboratory Cartesian system Repetition of the unit cell. Post-processing of the domain Shaping of the domain

Synopsis 1.How to control the simulator? Done 2.The NEMO5 input deck. Done 3.Creation of atomic structures. Done 4.Visualization of the atomistic output (structure solver). 5.Creation of Finite element mesh. 6.Visualization of finite element data (electric potential of the Poisson solver). 1.How to control the simulator? Done 2.The NEMO5 input deck. Done 3.Creation of atomic structures. Done 4.Visualization of the atomistic output (structure solver). 5.Creation of Finite element mesh. 6.Visualization of finite element data (electric potential of the Poisson solver).

Visualization of atomic structures in NEMO5 Task: visualize atomic structure of our Si/SiGe wire. Solution: 1.Define a solver that outputs the structure in the input deck. 2.Run NEMO5. 3.Use available visualization software. Solution: 1.Define a solver that outputs the structure in the input deck. 2.Run NEMO5. 3.Use available visualization software. visulaized by Visit

Solver that dumps out structures solver { name = view_shapes type = GeometryVIS geometry_volumes_output = true geometry_volumes_resolution = 20 geometry_volumes_filename = regions.vtk } solver { name = view_atoms type = Structure domain = wire_atomistic output_format = vtk structure_file = Si_SiGe_wire.vtk } solver { name = view_shapes type = GeometryVIS geometry_volumes_output = true geometry_volumes_resolution = 20 geometry_volumes_filename = regions.vtk } solver { name = view_atoms type = Structure domain = wire_atomistic output_format = vtk structure_file = Si_SiGe_wire.vtk } Outputs user-defined geometry Outputs an atomistic domain

Let’s see example1… 1.Execute tutorial2_1.in input deck 2.Visualize the output using Paraview 3.Modify the input deck: change crystallographic grows directions crystal_direction1 = (1,0,0) crystal_direction2 = (0,1,0) crystal_direction3 = (0,0,1) crystal_direction1 = (1,0,0) crystal_direction2 = (0,1,0) crystal_direction3 = (0,0,1) crystal_direction1 = (1,1,0) crystal_direction2 = (-1,1,0) crystal_direction3 = (0,0,1) crystal_direction1 = (1,1,0) crystal_direction2 = (-1,1,0) crystal_direction3 = (0,0,1)

Synopsis 1.How to control the simulator? Done 2.The NEMO5 input deck. Done 3.Creation of atomic structures. Done 4.Visualization of the atomistic output (structure). Done 5.Creation of Finite element mesh. 6.Visualization of finite element data (electric potential). 1.How to control the simulator? Done 2.The NEMO5 input deck. Done 3.Creation of atomic structures. Done 4.Visualization of the atomistic output (structure). Done 5.Creation of Finite element mesh. 6.Visualization of finite element data (electric potential).

Finite element (FE) domains. Device simulation requires solution of the Poisson equation: NEMO5 solves the Poisson equation using the FE method. NEMO5 can create the FE mesh automatically: atomsatoms and mesh

Example 2. Si/SiGe wire: creation of a FE mesh domain Atomistic domain “wire_atomistic” FE domain “wire_fem” Domain { name = wire_fem type = finite_elements mesh_from_domain = wire_atomistic output = mesh } Domain { name = wire_fem type = finite_elements mesh_from_domain = wire_atomistic output = mesh }

Example 2. Si/SiGe wire: electrostatic boundary conditions (I) Device simulation requires solution of the Poisson equation: The Poisson equation requires boundary conditions: 1. If no boundary conditions are specified, the Neumann boundary condition is applied : 2. In the input deck one can define boundary regions and apply boundary conditions there, e.g. impose a fixed potential value.

Example 2. Si/SiGe wire: electrostatic boundary conditions (II) Device simulation requires solution of the Poisson equation: The Poisson equation solution depends on boundary condition: 1. If no boundary conditions are specified, the Neumann boundary condition is applied. 2. In the input deck one can define boundary regions and apply boundary conditions there.

Example 2. Si/SiGe wire: electrostatic boundary conditions (III) Let’s apply 3 boundary conditions. Boundary_region { shape = cuboid region_number = 1 priority = 1 min = ( -0.1,1.5,-0.2) max = ( 0.2,4.5, 4.5) } Boundary_region { shape = cuboid region_number = 2 priority = 1 min = ( 9.7, 1.5,-0.2) max = ( 10.5,4.5, 4.5) } Boundary_regionn { shape = cuboid region_number = 3 priority = 1 min = ( 3, 0, 5.2) max = ( 7, 6, 5.6) } Boundary_region { shape = cuboid region_number = 1 priority = 1 min = ( -0.1,1.5,-0.2) max = ( 0.2,4.5, 4.5) } Boundary_region { shape = cuboid region_number = 2 priority = 1 min = ( 9.7, 1.5,-0.2) max = ( 10.5,4.5, 4.5) } Boundary_regionn { shape = cuboid region_number = 3 priority = 1 min = ( 3, 0, 5.2) max = ( 7, 6, 5.6) } Boundary conditions are applied to the mesh points that are inside the boundary regions Output of the boundary regions and FE mesh

Example 2. Si/SiGe wire: solving the Poisson equation. solver{ name = my_poisson type = Poisson domain = wire_fem fem_output = (potential) boundary_condition{ type = ElectrostaticContact boundary_regions = (1) voltage = 0.0 } boundary_condition{ type = ElectrostaticContact boundary_regions = (2) voltage = 1.0 } boundary_condition{ type = ElectrostaticContact boundary_regions = (3) voltage = 2.0 } } solver{ name = my_poisson type = Poisson domain = wire_fem fem_output = (potential) boundary_condition{ type = ElectrostaticContact boundary_regions = (1) voltage = 0.0 } boundary_condition{ type = ElectrostaticContact boundary_regions = (2) voltage = 1.0 } boundary_condition{ type = ElectrostaticContact boundary_regions = (3) voltage = 2.0 } }

Synopsis 1.How to control the simulator? Done 2.The NEMO5 input deck. Done 3.Creation of atomic structures. Done 4.Visualization of the atomistic output (structure). Done 5.Creation of Finite element mesh. Done 6.Visualization of finite element data (electric potential). 1.How to control the simulator? Done 2.The NEMO5 input deck. Done 3.Creation of atomic structures. Done 4.Visualization of the atomistic output (structure). Done 5.Creation of Finite element mesh. Done 6.Visualization of finite element data (electric potential).

Let’s run example 2… 1.Execute tutorial2_2.in input deck 2.Visualize the output using Paraview 3.Modify the input deck: change applied voltage. voltage = 1.0 voltage = 2.0

Synopsis 1.How to control the simulator? Done 2.The NEMO5 input deck. Done 3.Creation of atomic structures. Done 4.Visualization of the atomistic output (structure). Done 5.Creation of Finite element mesh. Done 6.Visualization of finite element data (electric potential). Done 1.How to control the simulator? Done 2.The NEMO5 input deck. Done 3.Creation of atomic structures. Done 4.Visualization of the atomistic output (structure). Done 5.Creation of Finite element mesh. Done 6.Visualization of finite element data (electric potential). Done

Appendix. Input deck editor and database browser. PHP based input deck editor: can show input deck/database in a structured form; can facilitate input deck edition; can automatically translate input deck into Python; PHP based input deck editor: can show input deck/database in a structured form; can facilitate input deck edition; can automatically translate input deck into Python;