In [ ]:
import sisl

sisl + TBtrans + TranSiesta

Welcome to the tutorial on the tools:

  • sisl
  • TBtrans
  • TranSiesta

Throughout this tutorial you will work with the Jupyter notebook scheme.
It is Mathematica "like" and will allow one to more quickly explore different things. A few rules about the notebook format is:

  • Everything in the notebook is parsed as Python code. One can do any Python code in here. So feel free to explore.
  • If things crash, then select (at the top) Kernel -> Restart & Run All to restart the kernel and then rerun all cells.
  • Press h for a quick help menu. These below commands are useful:
    • Esc escape from editing the current cell
    • y changes the current cell to a code-field, Python code
    • m changes the current cell to a text-field, Markdown with (limited) $\LaTeX$ support
    • Enter edit current marked cell
    • Shift + Enter execute current cell and skip to next cell
    • Alt + Enter execute current cell and insert new cell below

The tutorials encourages you to explore the possibilities of extracting quantities using sisl. You are thus encouraged to read about relevanent functions and methods to explore intrinsic capabilities.

One can always get help regarding any class, function or method by invoking:

help(<>)

For instance to get help regarding a specific function in a class, you may invoke either of the following 2 lines of code, whichever you prefer (the first will divide the current window with this and a help window, while the other will print out):


In [ ]:
%pdoc sisl.Geometry.tile
help(sisl.Geometry.tile)

If in doubt of arguments to routines it may help you greatly to remember the above functionality. Alternatively you can find the sisl API documentation here. You will be asked to search this API documentation throughout the workshop, it may help to have it open at all times.

Tutorials

This tutorial is made up in consecutive examples such that one is first, introduced to the transport methodology using TBtrans. So called “tight-binding” Hamiltonians are excellent examples to understand the methodology. They are extremely simple and may be used to shed light on more complicated issues.
Subsequent to the understanding of sisl and TBtrans, the tutorial will show how to analyze generic output from the DFT, Siesta. In particular the calculation of band-structures, DOS and plotting real-space quantities.
Lastly, the tutorial presents examples of self-consistent bias calculations using TranSiesta. These are merely extensions of the same simplistic modelling used in the tight-binding calculation and we try and retrieve the same results as using sisl and TBtrans. If your interest lie only with TranSiesta, do not be tempted to skip the tight-binding, nor Siesta, exercises. By understanding the underlying methodology for simple transport problems it becomes much easier to extrapolate to more complex/larger systems!

All tutorials are hosted online here (version 2018).

Table of contents

The tutorials may be found in sub-folders (or by pressing the links):

Tight-binding

Tight-binding examples are extremely important in understanding basic principles of complex systems.

  • TB 1
    A basic example of how to create electronic structures in sisl.
    The graphene electronic structure is recreated from a simple tight-binding calculation. In this example you will get your first glance at sisl code and how to utilize it for simple things.

  • TB 2
    Creation of your first tight-binding Hamiltonian for TBtrans. This, again, creates a graphene device with 2 electrodes and a small scattering region. After having created the electronic structure to be fed into TBtrans you will run TBtrans. Then returning to the tutorial script you will run some data-analysis using sisl again.

  • TB 3
    Create transport in a skewed lattice. This exemplifies the generality of TBtrans, but also TranSiesta for cases where skewed transport directions reduces the computational effort.

    Fast example

  • TB 4
    Introduction to the sisl.io module which interfaces the build-in file types. In this case we concentrate on the TBtrans output file *.TBT.nc where sisl is the primary tool to perform data-analysis. Extraction of transmission, DOS, spectral DOS and the aforementioned quantities on individiual subsets of atoms.

  • TB 5
    Same system as in TB 4. This example shows you the importance of utilising the periodicity in the electrodes. The exercises elaborates on TB 4 and will teach you to extract transmission and density of states quantities on a per $\mathbf k$-point case, thus enabling investigations at a Brillouin zone level.

  • TB 6
    The first $N>2$-electrode example with a cross-bar graphene nano-ribbon system. You will learn to extract data from a calculation with multiple electrodes and also explore details of symmetry for $N>2$ electrode systems.

  • TB 7
    Advanced exercise of manipulation of a predefined Hamiltonian. This example will cover how to add a magnetic field to a tight-binding Hamiltonian. This may be accomblished by using the $\delta\mathbf H$/$\delta\boldsymbol\Sigma$ method.

Siesta

Siesta has many utilities to post-process output such as, calculating DOS from the eigenspectrum, analyzing real-space charge and plotting molecular orbitals/wavefunctions (for experienced Siesta users denchar should be a familiar name). These tutorials shows how to use sisl to do the same analysis. It may be useful to read this page which contains the current list of files that sisl may interact with.

  • S 1
    A first hands-on using sisl to read in the electronic structure from DFT output.
  • S 2
    Analyze density of states output from Siesta.
  • S 3
    Plotting real-space quantities (wave-functions, densities etc.)

TranSiesta

  • TS 1
    The first TranSiesta example. Simple graphene TranSiesta calculation where you will learn about the importance of principle cell connections only.

  • TS 2
    The first TranSiesta example with applied bias. You will learn to perform effective bias calculations and also to interpolate Hamiltonians for accurate $I(V)$ curves with a minimal/few self-consistently calculated Hamiltonians.

  • TS 3
    Learn how to create your first input for TranSiesta, from scratch.
    Create a 1D Carbon chain model with proper electrodes, a minimal scattering region and inputs for both TranSiesta and TBtrans.

  • TS 4
    A multi-electrode calculation with TranSiesta. Two overlying Carbon chains in a cross-bar configuration. In this tutorial you are encouraged to play around with data-extraction utilities such as orbital-resolved DOS, etc.

  • TS 5
    Advanced example by using buffer atoms in a TranSiesta calculation. Buffer atoms are equivalent to removing the atoms in the TranSiesta calculation. They are however necessary when performing calculations using non equivalent electrodes and/or different periodicities.

In addition to the above examples there are a few advanced examples where you are challenged by the capabilities of TBtrans and TranSiesta.

Advanced examples

Here is an assorted list of advanced examples.
They are not intended to be carried out in any particular order. So read the initial description and try the examples that you find most interesting.

  • Advanced 1
    Use buffer atoms instead of changing the input Hamiltonian

  • Advanced 2
    The advanced contour input of TranSiesta allows a variety of contours. Here you will try and create different contours and use some of the advanced contour methods.

  • Advanced 3
    Create a 4 (or 6) terminal Hall-bar configuration using tight-binding.

  • Advanced 4
    Create a 3rd nearest neighbour graphene model.

  • Advanced 5
    Create a chain connecting to a C$_{60}$ molecule and perform molecular transmission projections.