In [ ]:
import sisl
Welcome to the tutorial on the tools:
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:
Kernel -> Restart & Run All
to restart the kernel and then rerun all cells.h
for a quick help menu. These below commands are useful:Esc
escape from editing the current celly
changes the current cell to a code-field, Python codem
changes the current cell to a text-field, Markdown with (limited) $\LaTeX$ supportEnter
edit current marked cellShift + Enter
execute current cell and skip to next cellAlt + Enter
execute current cell and insert new cell belowThe 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.
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).
The tutorials may be found in sub-folders (or by pressing the links):
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 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.
sisl
to read in the electronic structure from DFT output.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.
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.