{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Nanostructures in equilibrium with KWANT\n",
"\n",
"### © Marko Petrović, University of Delaware\n",
"[PHYS824: Nanophysics & Nanotechnology](https://wiki.physics.udel.edu/phys824) \n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## What is covered in this notebook\n",
"- How to create a square lattice nanoribbon with KWANT.\n",
"- How to create a system with a predefined shape.\n",
"- How to compute energy-momentum dispersion of a semi-infinite lead.\n",
"- How to build a honeycomb lattice (e.g., graphene).\n",
"- How to compute LDOS of graphene nanoribbon. \n",
"- How to implement a magnetic field. \n",
"- How to create a system from an image.\n",
"- How to add custom hopping patterns in KWANT"
]
},
{
"cell_type": "code",
"execution_count": 134,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2.0"
]
},
"execution_count": 134,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import numpy as np\n",
"\n",
"a = np.array([1, 2, 3])\n",
"\n",
"a.size # Attribute of an object\n",
"a.sum()\n",
"a.mean()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 1. Creating a closed system on a square lattice "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To create a tight-binding system, KWANT uses Builder
object, which is then populated by Site
objects forming a lattice. Detailed explanation\n",
"of what is a Site
object and what is a Builder
object is given on the\n",
"[KWANT website](https://kwant-project.org/doc/1/tutorial/faq)."
]
},
{
"cell_type": "code",
"execution_count": 135,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"