Transport in a graphene nanoribbon with a distortion

You will here use VNL and ATK to study the electron transport properties of a graphene nanoribbon with a distortion. You will be introduced to the device configuration and analysis tools that are particularly useful for investigating the properties of devices.


Device configuration

The nanoscale structure needed for ATK transport calculations is a semi-infinite device configuration. It consists of three main parts:

  1. Left electrode.
  2. Central region.
  3. Right electrode.


Current may flow between the two bulk electrodes, but has to pass through the scattering region in the middle of the device. Both ends of the central region, called the electrode extensions, must be exact replicas of the corresponding electrode.


Graphene nanoribbon device

The tutorial section Building a graphene nanoribbon device teaches you how to build the graphene nanoribbon device used here. For now, however, simply use a device configuration that is already prepared for you: Start up VNL, open the project named “Example Project”, and locate the data file in the Project Files list. Make sure the file is ticked and then follow these steps:

  • On the LabFloor, select the resized_twoprobe_icon DeviceConfiguration item saved in the NetCDF file.
  • A calculation was already done for this device. Use the General Info tool to see some of the parameters used for the calculation.
  • Finally, use the Viewer to visualize the graphene nanoribbon device. Note the defect in the middle of the central region, and that both electrodes consist of pristine (non-defected) nanoribbon unit cells.



The C-vector of the device configuration simulation cell is aligned with the Z-axis, which in ATK is the transport direction. The left/right electrodes may be different, but must both be periodic in the transport direction. The central (scattering) region is semi-infinite in the transport direction, where it couples to the electrode leads.

Transport analysis

Two types of transport analysis items have been pre-calculated and saved in the NetCDF data file; the I–V curve and the zero-bias device transmission spectrum:

resized_ivcurve_icon IVCurve
resized_transmission_icon TransmissionSpectrum

I–V curve

The I–V curve is computed from finite-bias transmission spectra at several bias points. Select the IVCurve LabFLoor item and use the IV-Plot analysis tool to visualize it.



Tick the option Additional plots to see not only the I–V curve, but also the differential current (dI/dV), and the transmission spectra and spectral currents for all sampled bias points.


  • Hover the mouse over an I–V point to highlight the corresponding transmission spectrum.
  • The I–V points are connected by a spline interpolation, and the line connecting points in the dI/dV plot is obtained by differentiating this interpolation. The differentiation obviously becomes more accurate as the bias-step decreases.

Transmission spectrum

Select the TransmissionSpectrum item on the LabFLoor, and click the Transmission Analyzer plugin to visualize it. The left-hand plot shows the transmission spectrum, while the right-hand plot shows an interpolated contour plot of the transmission coefficients in reciprocal space.


Transmission eigenstates

For a given energy and k-point, the electron transport can be described in terms of transmission eigenstates. The transmission eigenvalues and corresponding eigenstates are conveniently calculated from the Transmission Analyzer, see the image above.

Select E=0 in the T(E) plot, and the (0,0) point in the plot of transmission coefficients. Then click the Eigenvalues button, and the plugin will report the corresponding eigenvalue(s). Tick all three eigenvalues.

Next, click the Eigenstates button to calculate the eigenstates for the ticked eigenvalues. A dialog then asks how you want to visualize the eigenstates – select isosurface. In the Viewer window that pops up, open the Properties menu, and set the isovalue to 0.1. You should then see the following visualizations of the transmission eigenstates through the graphene nanoribbon device.


Transmission pathways

Finally, you should calculate the transmission pathways at the Fermi level. This allows you to visualize the pathways for electron transmission from the left to the right electrode. Use analysis_from_file_icon Analysis from File to load the DeviceConfiguration stored in the data file.


The TransmissionsPathways data item, resized_pathways_icon, should now be available on the LabFloor. Visualize it using the Viewer, as illustrated below. The volume of each arrow indicates the magnitude of the local transmission between each pair of atoms, while the arrow and color indicate the direction of the electron flow.


It is not hard to deduce the positions of the atoms, but you can also add them explicitly by dropping the DeviceConfiguration onto the Viewer canvas. However, the bonds hide the arrows, so you may want to adjust the radius of the atoms. Use the Properties menu for this.

Performing the device calculations

The transport analysis in the previous section was done using pre-calculated data. However, it is fairly simple for you to redo the device calculation and compute the post-SCF analysis data on your own. As an example, you will here set up an ATK Python script that first runs a semi-empirical Hückel calculation for the graphene nanoribbon, and then computes the transmission spectrum and I–V curve.

On the LabFloor, select the resized_twoprobe_icon DeviceConfiguration previously saved in the data file. Drop it on the script_generator_icon Scripter, and notice that both the device configuration and saved calculator are added to the script. Then add analysis blocks to the script and set the default output filename.



You can use the mouse to reorder the inserted script blocks if needed. You can also delete blocks using Delete on your keyboard.

Next, you should make sure that each script block is set up properly:

  • Double-click the calculator_icon New Calculator block to open it and check the calculator parameters. In particular, make sure to choose the ATK-SE engine and the Extended Hückel method.
  • No options should be changed in the analysis_icon TransmissionSpectrum block, but you should open it to see the available options.
  • In the analysis_icon IVCurve block, setup a voltage bias window of 0 to 1 V, and make the energy window span from -1 to +1 eV.
  • Remember to save the script.


You are now ready to run the calculations – you can use the job_manager_icon Job Manager for this. Please note that the job takes several hours on a standard desktop computer. You may bring this down to perhaps one hour if you run the job in parallel on multiple CPUs, either on your local machine or on a remote computing cluster.

Please proceed to the next chapter: