Virtual NanoLab -...

32
Virtual NanoLab Tutorial Version 2015.2

Transcript of Virtual NanoLab -...

Page 1: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

Virtual NanoLab

Tutorial

Version 2015.2

Page 2: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

Virtual NanoLab: Tutorial

Version 2015.2

Copyright © 2008–2015 QuantumWise A/S

Atomistix ToolKit Copyright Notice

All rights reserved.

This publication may be freely redistributed in its full, unmodified form. No part of this publication may be incorporated or used in other publications

without prior written permission from the publisher.

Page 3: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

TABLE OF CONTENTS

1. Introduction ............................................................................................................ 1

ATK and VNL ...................................................................................................... 1

Prerequisites ....................................................................................................... 1

Overview of the work flow ................................................................................... 1

Python Scripting .................................................................................................. 4

Moving data around in VNL ................................................................................. 5

Installing new modules for VNL ............................................................................ 6

2. Calculating the band structure of a SiC crystal ............................................................ 7

Preface ............................................................................................................... 7

Defining a project ................................................................................................ 7

Defining the crystal .............................................................................................. 7

Setting up the calculation ..................................................................................... 8

Viewing a calculation script ................................................................................ 10

Running the script ............................................................................................. 10

Analyzing your results ........................................................................................ 11

Performing additional analysis ........................................................................... 14

3. Transmission spectrum of a graphene nanoribbon with a distortion ............................. 18

The device system ............................................................................................. 18

Calculating the I-V curve .................................................................................... 19

Analyzing the results .......................................................................................... 20

4. Building a graphene nanoribbon device ................................................................... 25

Preface ............................................................................................................. 18

Building the device geometry .............................................................................. 25

Optimizing the geometry .................................................................................... 28

iii

Page 4: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

CHAPTER 1. INTRODUCTION

ATK AND VNL

Atomistix ToolKit (ATK) gives you access to a powerful set of modeling tools for investigating a

variety of nanoscale systems such as molecules, bulk and two-probe systems. The systems may

contain nanowires, nanotubes, graphene, high-k dielectric interfaces, semiconductors, metals,

etc, and the calculations are based on the following techniques:

• Density-Functional Theory (DFT)

• Extended Hückel Theory

• Classical Potentials

• Non-Equilibrium Green's Functions (NEGF)

In this tutorial we will give a short introduction to the basic work flow of setting up a calculation

and analyzing the results. We will primarily use the graphical user interface (GUI) Virtual

NanoLab (VNL) for all operations, but also briefly show how the command-line interface can

be utilized.

VNL is designed with ease-of-use in mind − you can focus on the physical properties of the

systems under investigation, and let the program handle the details of the numerical models

and the setup of the input scripts for the calculations.

PREREQUISITES

We will assume that a working copy of Atomistix ToolKit has already been installed, as descri-

bed in the installation guide,

OVERVIEW OF THE WORK FLOW

The procedure for studying a nanoscale system with ATK typically involves first generating

simulation data for a nanoscale system and subsequently analyzing the data. The data are stored

in projects, where a project is a directory on your file system. The VNL comes with an example

project illustrating some of the properties which can be calculated with ATK. In the following

you will explore the data in the example directory and learn how you can generate your own

data.

1

Page 5: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

ANALYZING SIMULATION DATA

Start VNL with a double-click on the desktop icon created by the installer, or type vnl in a

command-line terminal window. (You may have to log out and in after the installation in order

for the license environment variable to be registered properly.) On Windows there will also be

an entry in the Start Menu.

The program will start up with a list of available projects, select the Example Project and press

Open. The VNL should now have the following look.

The left column, named Project Files, is a filebrowser with a list of the files in the example

directory.

ATK Filename Extensions

.py File in text format with the atkpython input file.

.nc File in NetCDF format with calculated data. The filename of the data file is specified

in the input file.

.log, .

out

File in text format with output of the calculation.

In the file browser you can select which files that are visible in the data viewer (center column).

The data viewer scans all the selected files, and list the data objects they contain. By default the

data objects are grouped by the container file name. You can see a list of the data in each file

by pressing the + button in front of the filename.

Tip

Using the Group by box you can change how the data is listed in the data viewer. For

instance, group by Calculator Id provides a list of data which were calculated for a

specific system with a specific method even if the data are stored in different files.

Now use the left mouse button to select gID001 in sic_bandstructure.nc. This object con-

tains band structure data for a SiC crystal (object gID000). The rightmost column in the VNL

window shows a list of modules which are available for analysis of the data. Left click the

Bandstructure Analyzer module to inspect the data.

2

Page 6: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

Figure 1.1: Bandstructure Analyser: Use left mouse button to inspect data points in the band structure, use

shift-left mouse button to measure horizontal and vertical distances between data points.

With a similar approach you can explore the data contained in the other files.

SIMULATING A NEW SYSTEM

To build up a simulation of a new system from scratch you use the following four tools available

from the VNL main tool bar.

VNL Tools

Builder 1

Scripter 2

Editor 3

Jobs 4

1. First, you must define the geometry of the system − that is, the coordinates of all atoms (and

the unit cell, if relevant). For a transport system (a device geometry), you must specify the

electrodes and central/scattering region. For this task, VNL contains an advanced Builder for

atomic geometries, that can be used to set up even complex systems. These can then be used

for electronic structure and transport calculations with ATK, but they can also be exported

to standard or custom-defined file formats for use with other codes.

2. Next, you must specify the details of the numerical calculator that should be used for the

computation, along with the desired physical properties that should be extracted from the

calculation. This is done in VNL using the Script Generator or Scripter for short.

The main steps to perform within the Script Generator are

• Choose the calculator that should be used for the calculation, e.g. Classical Potentials,

Extended Hückel or DFT.

• Define the parameters of the model, e.g. the k-point sampling, the exchange-correlation

functional, the basis sets and other numerical accuracy settings, but also some more phys-

ical input properties like the bias voltage in a transport calculation.

3

Page 7: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

• Select the physical properties that should be extracted from the calculation, such as the

total energy, the band structure, or the electron difference density.

In addition you can set up geometry optimization or molecular dynamics runs from the Script

Generator, and for spin-dependent calculations you usually needs to set up the initial spin

configuration. These points are covered in other tutorials.

3. The Script Generator produces a Python script; it is recommended to always save it for later

reference. You may edit this script either in the internal Editor or in any external text editor

of your preference.

Tip

In the Global Io box of the scripter you can set Script detail to Show defaults. In this

way you get an extended script with all input parameters and their default setting.

4. The script (symbolically denoted script.py here) can be executed by dropping it on the

Job Manager, either directly from the instrument that created it, the Editor, or from the file

system.

Alternatively, the script can be run from the command line on the local machine as

atkpython script.py > script.log

or copied to a cluster to be run in parallel.

PYTHON SCRIPTING

If you desire more fine-grained control over the numerical parameters you can use Python

scripting to set up, run and control the calculations. At any step in the work flow you can export

the simulation as a Python script, which can be executed by the command-line tool atkpy-

thon. This makes it easy to set up a calculation on a workstation but carry out the calculations

on a cluster or more powerful computer. The result files can then be brought back to the work-

station for analysis; all input and output files are fully platform cross-compatible between Linux

and Windows, and between 32 and 64 bit architectures.

All tools in VNL can also interpret Python code. This can be used to define a more complex

geometry as a set of logical or repetitive operations in a script, which then directly can be used

as input to the next step in the work flow. VNL is also extensible through user-defined plug-in

components, that can build special structures and perform specific analysis and plotting.

Tip

The command-line tool atkpython can also be used interactively, as regular Python

(actually IPython), with history, completion, help on ATK commands, etc.

4

Page 8: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

Figure 1.2:Three different representations of carbon nanotubes in ATK: as built in the Builder in VNL, as

the detailed Python script this produces, or as generated and inspected using ATKPython commands on

the interactive command line.

More details on how to make the most of ATK via scripting can be found in the online tutori-

als, and a complete description of all the parameters used in the Python interface to ATK, and

in many cases a longer discussion about their physical relevance, can be found in the ATK

reference manual. Also see python.org for general information on Python.

MOVING DATA AROUND IN VNL

The work flow in VNL relies rather heavily on the concept of drag and drop to transfer data

between the different instruments and tools. To move data (eg. a geometry or a script) from one

tool to another, drag the script icon in the lower right-hand corner of the source window

onto the relevant place in the target window or icon on the main toolbar. Objects in the NetCDF

files can also be dragged and dropped onto instruments and analyzers.

5

Page 9: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

To proceed to the next step in the main work flow, it is usually more convenient to use the

“Send to” menu, which pops up when you click the icon , also located in the lower right-

hand corner of each window. This can be used to for instance send a ready structure from a

Builder to the Script Generator or the Editor, or from the Script Generator to the Job Manager.

INSTALLING NEW MODULES FOR VNL

Most of the functionality in VNL is available through plugins. Which plugins that are installed

is controlled through the AddOn manager, which is available from the Help menu at the top of

the VNL main window.

Not all features are installed by default, and the functionality can be extended through the

modules available on the AddOn server.

Tip

The modules are installed in the directory, install_dir/atk-13.8/vnl/lib/py-

thon2.7/site-packages/AddOns. Most modules are available in source code and it

is possible to extend or change the behaviour of the modules.

Let us now begin the tour of Virtual NanoLab, where you will see all of these concepts and

operations in action in the context of some simple but non-trivial calculations. In the first step

you will compute the band structure of β-cristobalite.

6

Page 10: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

CHAPTER 2. CALCULATING THE BAND STRUCTURE

OF A SIC CRYSTAL

PREFACE

In this basic tutorial, you will learn to use VNL for calculating the band structure and some other

properties of a SiC crystal. The tutorial does not discuss the science of such a calculation much;

the purpose of the tutorial is to show how to operate VNL, specifically how to set up calculations

and visualize the results.

DEFINING A PROJECT

Start VNL and open the Example Project. In the VNL top menu select Projects → New. Open

the file browser by pressing the ... button and make a new folder SiC. Select this folder and

name the project SiC bandstructure. Press OK to finish the project setup.

DEFINING THE CRYSTAL

1.Now open the Builder from the toolbar in the main window.

2. To the left of the Stash are several buttons. Click Add → From Database.

3. Type “sic” in the search field of the Database window and select “SiC (fcc)” in the list of

matches.

7

Page 11: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

4.Add the crystal to the Stash by clicking the icon in the lower right corner.

Tip

Most VNL tools contain a 3D preview of the currently active geometry. Use the right

mouse button to rotate the 3D view, use the scroll wheel to zoom (or hold down Ctrl

and right mouse button and move the mouse), and press the scroll wheel and move the

mouse to pan the camera (or hold down Shift and the right mouse button and move the

mouse).

Information about the lattice, including its symmetries (e.g. that the selected crystal is

face centered cubic), can be seen in the lower left panel.

SETTING UP THE CALCULATION

Once the geometry has been defined you are ready to set up the calculation. The tool used for

this purpose is the Script Generator.

Transfer the crystal to the Script Generator by clicking the "Send to" icon in the lower-right

of the Builder window, and select Script Generator from the pop-up menu.

The Script Generator appears and the Builder is automatically minimized.

As outlined in the Introduction, the main steps to perform within the Script Generator are to

define the method or calculator to use (DFT, semi-empirical, etc), configure its parameters

(mostly related to accuracy), and select the physical properties to compute.

Here is how to do this in practice:

1. Add a New Calculator to the script by double-clicking the corresponding icon in the left

panel.

2. To calculate the band structure of the crystal, double-click Analysis and select Bandstruc-

ture from the pop-up menu.

3. Next insert an ElectronDensity block, also available under "Analysis".

4. Finally, specify sic.nc as the file name where the results will be saved into under Default

output file in the Global IO box. If you do not specify a directory but only a file name, the

NetCDF file will be saved in the project directory.

8

Page 12: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

If you now double-click the Bandstructure block in the script, you can see that the suggested

route in the Brillouin zone already includes the common symmetry points for the face centered

cubic lattice. Thus, the default settings are fine, however to obtain smoother curves increase the

number of points per segment between each symmetry point to 100, and then close this dialog.

The calculator itself has defaults for all parameters. However, you should always check them

carefully in order to obtain the desired accuracy, not least in terms of which method that should

be used. Therefore, double-click the "New Calculator" block in the script to open it.

The default method is DFT-LDA, but since this method does not give a good band gap for

semiconductors, select MGGA for the exchange correlation. For improved accuracy, also set

the k-point sampling to 5x5x5.

9

Page 13: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

Click OK to close the calculator dialog.

It is good practice to always save the scripts before running them, for future reference and in

case you want to rerun it some time later. Use the File menu in the Script Generator to save the

script.

VIEWING A CALCULATION SCRIPT

All physical systems and calculations are handled internally in VNL as Python scripts. To view

the script associated with the calculation you just have defined, click the Send To icon and

select Editor. The Editor will appear, displaying the Python script you just have set up with the

help of the Builder and the Script Generator.

By editing the script you can make minor final changes by hand, or introduce advanced pro-

cedures like looping over the lattice constant, etc.

RUNNING THE SCRIPT

Scripts can be run directly from inside VNL via the Job Manager. To calculate the SiC band

structure, use the "Send To" button from the Script Generator and select Job Manager from

the menu that appears.

The Job Manager window appears, containing the script you just set up. Simultaneously, the

Script Generator is minimized (not closed).

10

Page 14: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

Tip

You can also drop the saved script file itself on the Job Manager icon on the toolbar, or

use the "Send To" button in the Editor, if you changed the script there.

The status of the script is shown as Queued since the job has not yet been executed. To start

the execution of the calculation, press the Run Queue button. The state of the job changes to

Running while the job is being executed, and in addition, informative log messages will appear

in a separate log window. When the state of the job in the Job Manager changes to Done, the

job is completed.

Tip

To remove a job that is not running, select it and press Delete on the keyboard. A running

job can be stopped with the actions key.

ANALYZING YOUR RESULTS

After the job is finished (it takes a minute to complete only), you are ready to study the calculated

band structure of the SiC crystal. To do this, return to the main VNL window.

Tip

Use the Windows menu, available in each tool in VNL, to conveniently switch between

different windows.

11

Page 15: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

THE BANDSTRUCTURE

Expand the generated NetCDF file sic.nc in the data viewer of the main window. When the

file is expanded, the content of the NetCDF file is displayed. Select the band structure object

(gID001).

The left panel, the Analysis panel bar, contains a number of actions that can be performed on

the object currently selected in the data viewer. Use Export to export the raw data of the band

structure to a file that can be used for plotting with a third-party application, or Show Text

Representation... to see the data.

To measure the band gap, open the Bandstructure Analyzer.... Activate Zoom to rectangle,

and zoom into the direction. Deactivate Zoom, and use the mouse to measure the band

gap by first selection the valence band at the point and dragging the mouse to the conduction

band at the X point.

Note

The calculated band gap, 2.40 eV, is in excellent agreement with the experimental value

of 2.36 eV for SiC(fcc), showing the good accuracy of the Tran & Blaha 89, meta-GGA

for semiconductor band structures.

12

Page 16: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

THE GEOMETRY AND ELECTRON DENSITY

Now select the atomic geometry object in sic.nc (gID000). If you expand the general info tab,

you will get a resume of the settings for the calculation.

To view the atomic geometry press the Show in 3D Viewer button to see the geometry in the

viewer.

The NetCDF file also contains an Electron Density object. To view the electron density together

with the atomic geometry, select the electron density object (gID002) and drop it onto the open

window. The 3D Viewer will open a query Window, select the Cut plane as the viewing style.

You need to adjust some view settings to get a good picture of the electron density. Therefore,

open the Properties in the viewer panel bar.

Under CutPlanes, change the color map to Hot and the plane normal rotation angle θC to 145

degrees.

13

Page 17: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

To export the plot as an image, use the right mouse button menu Export image.

PERFORMING ADDITIONAL ANALYSIS

You will now learn how to generate additional analysis for the SiC system. In the VNL main

window select the atomic geometry object in sic.nc (gID000) and drag and drop the object

onto the scripter icon on the left tool bar. This will open the Scripter with the SiC configuration

and a New Calculator object. Open the New Calculator and check that it has the same settings

as used in sic.nc.

You can now perform a new DFT calculation with the same parameters as the previous calcu-

lation. However, often you do not want to perform a new calculation from scratch but rather

use the self consistent state of a previous calculation.

14

Page 18: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

To this end, delete the New Calculator object and add Analysis from File. Open the Analysis

from File object and select the file sic.nc and object id: gID000.

Next double-click Analysis and select ElectrostaticDifferencePotential from the pop-up menu.

Add Analysis DensityOfStates from the pop-up menu.

Change the default output file to sic.nc.

Open the DensityOfStates block and set the kpoint sampling to 11, 11, 11.

Send the script to the job manager and perform the calculation, it will only take a few seconds.

3D VIEW OF THE ELECTROSTATIC POTENTIAL

The next step is to visualize the electrostatic difference potential together with the configuration

and the electron density. In the VNL main window select the configuration (sic.nc: gID000)

and in the panel bar select Show in 3D Viewer. Next drop the Electron Density (sic.nc: gID002)

onto the open viewer window and select Isosurface as the viewing style. Finally, add the Elec-

trostatic Difference potential (sic.nc: gID003) onto the viewer window and select Cut plane

as the viewing style.

Open the properties menu and adjust the iso surface to have iso value: 0.16 and Rendering

style: Lines

15

Page 19: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

Also change the CutPlanes to have the same settings as in the previous plot with the addition

that also θA is set to 145 degrees, then you should then get the following plot

1D VIEW OF THE ELECTROSTATIC POTENTIAL

It is possible to visualize 1D projections of 3-dimensional objects such as the electron density

or electrostatic difference potential. In the VNL main window select the Electrostatic Difference

potential (sic.nc: gID003) and in the panel bar select Projector 1D.... Choose 'C' as the Axis

and as Projection type select Average; press Add graph. The plot shows the Electrostatic differ-

ence potential along the C direction, averaged over the AB-plane. It is also possible to plot the

plotential along a direction without averaging using the Through point projection type.

16

Page 20: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

VISUALIZING THE DENSITY OF STATES

Now move back to the VNL main window and select the DOS object (gID004) in sic.nc. In

the panel bar select Show 2D Plot..., and the Density Of States viewer will open. Select the

Carbon atom and tick the p-band in order to show the PDOS of the p orbital of the Carbon atom.

This concludes the first part of the introduction to VNL. Next, you will proceed with a transport

calculation for a graphene nanoribbon.

17

Page 21: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

CHAPTER 3. TRANSMISSION SPECTRUM OF A

GRAPHENE NANORIBBON WITH A DISTORTION

THE DEVICE SYSTEM

In this tutorial, you will study the electron transport properties of a graphene nanoribbon with

a distortion. You will be introduced to device geometries and different analysis tools for inves-

tigating the electronic transport properties of devices.

Start by opening VNL. In the VNL top menu select Projects → Open, and open the Example

Project. The example project has a number of result files, in the following you will be examining

the nanoribbon_ivcurve.nc result file. Expand the nanoribbon_ivcurve entry and select the

device configuration (object gID000). In the right panel bar select Viewer.... This will display

the configuration in a 3D graphics window.

The structure is a so called device geometry. It consists of three parts: the left electrode, the

central region, and the right electrode. The left and right electrodes are semi-infinite periodic

in the negative/positive Z direction, the transport direction. The electrodes may differ from one

another, e.g. be composed of different materials or have different structures. However, they

must be periodic, and they must have a common unit cell in the X/Y plane. For more details

about how to set up a device configuration, go to the next chapter.

The central region consists of extension copies of the two electrodes and a scattering region in

between, as depicted in the figure below. Here, the vectors A, B, and C span the electrode. For

device simulations, the C-vector must always be parallel to the Z axis, and the AB-plane must

be orthogonal to the Z axis.

The configuration also has an attached calculator. To see the details of the calculator, select the

device configuration (object gID000), and open the general info plugin. You will notice that a

selfconsistent Huckel method was used for the calculations. A Cerda and a Hoffmann basis set

was set for Carbon and the Hydrogen, respectively.

18

Page 22: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

In the following you will learn how to perform an IV Curve calculation for the system. Building

the graphene nanoribbon device is explained in the next chapter.

CALCULATING THE I-V CURVE

You will now calculate an I-V curve for the nanoribbon device. To this end you will need to

perform a selfconsistent calculation and calculate the transmission spectrum for each bias in

the I-V curve. From the transmission spectrum it is then possible to calculate the current at each

bias, thereby obtaining the I-V curve. In the following you will set up an I-V curve calculation

by using the I-V curve object in ATK. This object automatically sets up the bias loop and cal-

culates the transmission spectrum for each bias in the I-V curve.

Select the device configuration (gID000), drag and drop it onto the scripter tool icon in the

VNL tool bar.

This will open the scripter with the device configuration and the attached calculator. Now add

the following analysis objects:

1. Analysis → TransmissionSpectrum

2. Analysis → IVCurve

3. Change the default filename to nanoribbon_ivcurve1.nc

Tip

If you insert the wrong block by mistake, you can select it in the Script panel and press

Delete on the keyboard to remove it. The inserted blocks in the script can also be reor-

dered by dragging them up or down.

Now you need to make sure that each script block is set up properly.

19

Page 23: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

1. Double-click the New Calculator block in the Script panel to open it. Check the parameters,

for instance the Huckel basis set used for the calculation. You will note that the setting is not

the default, but the setting of the calculator attached to the dropped configuration. When

you drag and drop a configuration with a calculator, the settings of that calculator will be

transferred to the scripter. You may press OK, since no changes are needed.

2. You do not need to change anything in the TransmissionSpectrum block, but you can open

it to see the available options.

3. Open the IVCurve block.

• Set

• Set and

The script is now ready, save it into nanoribbon_ivcurve1.py

ANALYZING THE RESULTS

You may now execute the calculation as you learned in the previous chapter, by dropping the

script on the Job Manager (or send it to there from the Script Generator). The job will take several

hours to complete but only around 1 hour if you use 4 MPI processes. In the following you can

investigate the precalculated data available in the examples directory.

THE I-V CURVE

Go back to the VNL main window. Select the nanoribbon IVCurve object (gID002) and open

the IV-Plot tool in the Panel bar.

Check the box next to 'Additional plots'.

20

Page 24: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

Figure 3.1: I-V plot, the rightmost window, shows the transmission spectrum for each bias, where the blue

part of each curve shows the bias window. For each transmission spectrum the electrical current is shown

in the topmost middle plot.

The tool shows all the transmission spectra and the corresponding I-V points. By hovering the

mouse over an I-V point, the corresponding transmission spectrum is highlighted. To calculate

the current it is necessary to specify the electron temperature in the electrodes, if the electron

temperature is changed the currents are recalculated.

The I-V points are connected through a spline interpolation, and the distance between the in-

terpolated points is determined by the step size. The lower plot shows the dI/dV as obtained by

differentiating the spline interpolation.

For a system with inversion symmetry, or mirror symmetry in the z-direction, the I-V curve will

be symmetric in the applied bias. For such systems you can obtain the full I-V curve by only

performing the I-V scan in one bias direction. If you tick of Symmetrize, the positive bias points

will be copied to give the negative bias points.

THE TRANSMISSION SPECTRUM

To view the transmission spectrum object (gID001) in nanoribbon_ivcurve.nc, select it and

open the Transmission Analyzer panel bar plugin.

The left plot in the transmission analyzer shows the transmission spectrum. In the Curves menu,

you can select which spin components are shown. For non-polarized calculations, the default

is to show the transmission spectrum of the sum of the up and down channel.

With the mouse you can select a point in the active curve. This k-dependent trans-

mission for this energy is then illustrated in the right plot.

21

Page 25: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

THE TRANSMISSION EIGENVALUES AND EIGENSTATE

For a given energy (E) and k point ( ) the transport can be described in terms of the trans-

mission eigenstates. The transmission eigenvalues and corresponding eigenstates are conven-

iently calculated from the transmission analyzer.

Select in the plot, and in the plot. Press the Eigen-

values button, and the software will report that there are three eigenvalues: 0.9903, 0.3098 and

0.00344.

Next press the Eigenstates button to calculate the eigenstates for the ticked eigenvalues. After

a short calculation a menu appears for how to visualize the states, select to visualize them as

an isosurface.

In the viewer, select the properties menu, and set the isovalue to 0.1, you should then see the

following plots.

THE TRANSMISSION PATHWAYS

The final analysis you will perform in this tutorial is to calculate the transmission pathways at

the Fermi level. This is a visual view of the electron pathways from the left to the right electrode.

Open the scripter

1. Add an Analysis from file object, and select gID000 in nanoribbon_ivcurve.nc

2. Add an Analysis → TransmissionsPathways object.

22

Page 26: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

3. Change the default filename to eigenstates.nc

Send the script to the job manager and execute the script. This will take less than a minute.

When the calculation is done expand eigenstates.nc in the VNL main window and select

the transmission pathway object. Press Viewer to plot it. The volume of each arrow indicates

the magnitude of the local transmission between each pair of atoms, the arrow and the color

designates the direction of the electron flow.

The positions of the atoms are quite obviously deducible, but you can also add them explicitly

by dropping the device configuration (gID000) onto the plot. The bonds hide the arrows so the

best option is to plot only atoms using radius 0.2, which can be done from the atom tab on the

Properties viewer panel bar.

THE TRANSMISSION SPECTRA OF THE I-V CURVE

It is also possible to open each transmission spectrum of the I-V curve in the transmission ana-

lyzer. Select the IVCurve object, and select transmission analyzer. This will open a list of

transmission spectra in the IVCurve object.

23

Page 27: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

Select the 0.2 Volt object. You will note that for this spectrum it is not possible to calculate the

transmission eigenvalues, since a configuration with a selfconsistent calculation for this bias

voltage is not available. In the IVCurve object you can specify a trajectory file where the self-

consistent calculations for each bias voltage will be stored. This file can become very large, and

it is therefore not provided in the examples directory.

24

Page 28: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

CHAPTER 4. BUILDING A GRAPHENE NANORIBBON

DEVICE

PREFACE

In this chapter, you will learn how to build the device used in the previous chapter, a graphene

nanoribbon with a distortion.

The easiest way to build a device is usually to define the central region as a periodic extension

of the intended electrode materials, then modify the scattering region (possibly inserting addi-

tional atoms, molecules, layers, etc), and finally extract the electrodes. The device geometry

can then be optimized. You will practice this procedure in this tutorial.

BUILDING THE DEVICE GEOMETRY

In this section you will first build a perfect graphene nanoribbon, and then make some changes

to it in the Builder.

Open the Builder by clicking the icon on the main toolbar (when opening the Builder the

first time in a session it can take a bit longer since it must initialize all addons).

When the Builder opens, click the Add button to the left of the stash area. From the menu that

appears, choose From Plugin>Nanoribbon.

25

Page 29: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

Note

The stash, which is initially empty, is where all geometries you are currently working on

in the Builder are stored; it is however not a permanent storage for systems and scripts,

as it is not saved when you exit VNL. So, always remember to save any systems you want

to keep from the Builder, before closing VNL.

To make the calculations of this tutorial run as fast as possible, select a very narrow ribbon with

chiral indices (2,2), corresponding to a zigzag graphene nanoribbon, 8 carbon atoms wide.

Leave the other parameters as they are. You can click Preview to see how the ribbon will look,

then click Build to add it to the stash.

Tip

The entries in the "From Plugin" menu are template builders, designed to construct sys-

tems which are based on a few input parameters. You can create your own custom

builders by writing a plugin for VNL.

In order to have a long enough ribbon to form the central region, you need to repeat the nano-

ribbon unit cell in the Z direction. To do this:

1. Open the collection of Bulk Tools in the panel plugin toolbar to the right in the Builder, and

open the Repeat tool.

2. Enter C=12 and click Apply.

3. Press Ctrl+R to center the 3D view.

26

Page 30: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

To make things more interesting, you will now make a Stone−Wales defect by rotating a bond

90 degrees.

1. Select the two atoms indicated in the figure below (they have z-coordinate about 13.5 Å) by

holding down Ctrl while clicking them.

2. From Coordinate Tools in the panel plugin toolbar, open the Rotate tool.

3. Enter a rotation angle of 90 degrees (around the X axis). By keeping "Rotate around selection

center" checked, the bond will be rotated about its midpoint.

4. Click Apply.

The scattering region is now defined. To convert the system to a device, open Device From

Bulk... under Device Tools.

The Builder will automatically try to detect the periodicity of the region closest to the edges of

the central region, and suggest possible electrodes. In order for this to work, there should be at

least one full period plus one additional layer of the electrode present in the central region.

Note

You should be careful not to make the central region too short, so that the modifications

and edits you make to the middle part of the central region (i.e. the scattering region)

still leaves at least one period plus one layer of the unperturbed, perfectly periodic struc-

ture, closest to the edges of the central region. The electrodes must also be long enough

to include all matrix elements; a rough estimate is 7−8 Å in many systems, but this should

be checked in detail for specific cases.

27

Page 31: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

The suggestion 7.38 Å generates a reasonable electrode for this system (3 periods of the nano-

ribbon cell), so click OK to create the device geometry.

OPTIMIZING THE GEOMETRY

Although the geometry at this point resembles the desired structure, the Stone−Wales defect

was just created by rotating the bond. In reality, the bond length also changes, to accommodate

the new double-pair of pentagons and heptagons which are formed when the bond is rotated.

For carbohydrates (and a few other systems), a very fast method to optimize the geometry is to

use the Brenner potential which is part of the set of built-in classical calculators in ATK. This

calculator is in fact accessible directly in the Builder.

Open the Coordinate Tools>Quick Optimizer plugins. Run 10 optimization steps by pressing

the Run button.

After about 10 seconds the geometry will be updated. The forces are still quite large, thus press

the button a few more times to get to a converged state (or, increase the maximum number of

steps to 100 and then press Run).

28

Page 32: Virtual NanoLab - QuantumWisequantumwise.com/documents/tutorials/latest/VNLTutorial/VNLTutorial… · Virtual NanoLab: Tutorial Version 2015.2 ... Using the Group by box you can change

Note

Although it cannot be seen directly, the electrode extensions will automatically be con-

strained in a device optimization, to retain their exact geometric correspondence to the

electrodes.

If you inspect the geometry carefully, you will find that it now has precisely the structure as

depicted in the figure below.

To learn more advanced building capabilities check the online builder tutorials

29