Files
cds-numerical-methods/Final/Final - Tight-binding propagation method.ipynb

1817 lines
192 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "ad6b13cb01007316fa509551e4c8b998",
"grade": false,
"grade_id": "cell-98f724ece1aacb67",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"# CDS: Numerical Methods -- Final Assignment\n",
"\n",
"- See lecture notes and documentation on Brightspace for Python and Jupyter basics. If you are stuck, try to google or get in touch via Discord.\n",
"\n",
"- Solutions must be submitted <font color=red>**individually**</font> via the Jupyter Hub until <font color=red>**Monday, April 4th, 23:59**</font>.\n",
"\n",
"- Make sure you fill in any place that says `YOUR CODE HERE` or \"YOUR ANSWER HERE\".\n",
"\n",
"- Remember to document your source codes (docstrings, comments where necessary) and to write it as clear as possible.\n",
"\n",
"- Do not forget to fully annotate all of your plots.\n",
"\n",
"## Submission\n",
"\n",
"1. make sure everything runs as expected\n",
"2. **restart the kernel** (in the menubar, select Kernel$\\rightarrow$Restart)\n",
"3. **run all cells** (in the menubar, select Cell$\\rightarrow$Run All)\n",
"4. Check all outputs (Out[\\*]) for errors and **resolve them if necessary**\n",
"5. submit your solutions **in time (before the deadline)**"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "23a115c4a147aab2185c76637a509f7f",
"grade": false,
"grade_id": "cell-fd297f265de59887",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"## Tight-Binding Propagation Method Module\n",
"\n",
"### Tight-Binding Theory\n",
"\n",
"Solid state theory aims to describe crystalline structures defined by periodic arrangements of atomic positions $\\vec{R}_i$ with $i= 1 \\dots n$. To model the electronic properties of such a structure, we can use the so-called tight-binding method. Here one assumes that the problem for a single atom described by the Hamiltonian $H_{at}(\\vec{r})$ has already been solved, so that the atomic wave functions $\\phi_m(\\vec{r})$ are known. The Hamiltonian of the crystalline structure is then constructed from these atomic Hamiltonians as follows \n",
"\n",
"\\begin{align*}\n",
" H(\\vec{r}) = \\sum_{i} H_{at}(\\vec{r} - \\vec{R}_i) + \\Delta V(\\vec{r}),\n",
"\\end{align*}\n",
"\n",
"where $\\Delta V(\\vec{r})$ describes the changes to the atomic potentials due to the periodic arrangement. Solutions to the time-dependent Schrödinger equation $\\psi_n(\\vec{r})$ can then be approximated by linear combinations of the atomic orbitals, i.e. \n",
"\n",
"\\begin{align*}\n",
" \\psi_m(\\vec{r}) = \\sum_{i} \\, c_{i,m} \\, \\phi_m(\\vec{r}-\\vec{R}_i). \n",
"\\end{align*}\n",
"\n",
"Thus, our task is to find the coefficients $c_{i,m}$, which are the eigenfunctions of the tight-binding Hamiltonian $H_{tb}$. In the basis of the atomic orbitals $H_{tb}$ is an $n \\times n$ matrix which describes the \"hopping\" of an electron from one atomic position to the other. In this description the electrons are assumed to be tightly bound to the atomic positions, hence the name of the approach. In summary, we have reduced our original problem $H(\\vec{r})$, described in a continuous space $\\vec{r}$, to a strongly discretized problem $H_{tb}$ in the space of lattice coordinates $\\vec{R}_i$.\n",
"\n",
"### Propagation Method\n",
"\t\n",
"While this reduction already helps a lot, full diagonalizations of the tight-binding matrix is still not feasible if we need to describe realistic structures with thousands of atoms. For this case we like to have a method which allows us to study the electronic properties, without the need of fully diagonalizing the tight-binding matrix. The tight-biding propagation method allows for exactly this. By analyzing the propagation of an initial electronic state through the crystalline structure we also have access to the full eigenspectrum of $H_{tb}$, without explicit diagonalization.\n",
"\t\n",
"### Your Goal\n",
" \n",
"In the following you will setup the tight-binding Hamiltonian for a one-dimensional chain of atoms and numerically study its properties using exact diagonalization. Then you will compare it to the results obtained using the tight-binding propagation method. You will need some of the algorithms which you have implemented in the weekly assignments before. Additionally, you will need to implement a few new algorithms, which we have discussed in the last lecture. In principle there will be no need to use Numpy or Scipy (except for Numpy's array handling and a few other exceptions). However, if you encounter any problems with your own implementations of specific functionalities, you can use the Numpy and Scipy alternatives. Therefore you should be able to perform all of the following tasks in any case.\n",
"\n",
"Let us start by importing the necessary packages."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "5d73a1e28cac71eb63db02e72960f030",
"grade": true,
"grade_id": "cell-9a7b93b917f8bfed",
"locked": false,
"points": 0,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"import numpy as np\n",
"from matplotlib import pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "46edf5bfda2392bd3743329097a4e7ae",
"grade": false,
"grade_id": "cell-0f4a00fe587d193a",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"## Step 1: Crystal Lattice\n",
"\n",
"### Task 1.1 [3 points]\n",
"\n",
"In the following exercises the atomic positions of the 1D crystal lattice will be fixed to $\\vec{R}_i = x_i = i a$, with $i = 0 \\dots n-1$ and $a$ being the lattice constant.\n",
"\n",
"Write a simple Python function that takes the chain length $n$ as an argument and returns the atomic positions $x_i$. Set $a = 1$ for all the following exercises."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "bad6e1d563be71de711926b41649c875",
"grade": true,
"grade_id": "cell-65a97e8f9f981da1",
"locked": false,
"points": 3,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"def atomic_positions(n, a=1):\n",
" \"\"\"\n",
" Creates an array of atomic position in a 1D crystal lattice\n",
" for lattice constant a having default value a = 1.\n",
" \n",
" Args:\n",
" n: number of atoms in the 1D lattice string\n",
" a: numerical value for the lattice constant\n",
"\n",
" Returns:\n",
" A 1D array of atomic positions.\n",
" \"\"\"\n",
" \n",
" return np.arange(n)*a"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "684ad7f7808a1d5b4360a0acb4e52921",
"grade": false,
"grade_id": "cell-a61043ba1148856d",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"## Step 2: Atomic Basis Functions\n",
"\n",
"Our atomic basis functions will be Gaussians of the form\n",
"$$\n",
"\\large\n",
"\\phi(x, \\mu, \\sigma) = \\frac{1}{\\pi^{1/4} \\sigma^{1/2}} e^{-\\frac{1}{2} \\left(\\frac{x-\\mu}{\\sigma}\\right)^2},\n",
"$$\n",
"\twhere $\\mu$ is their localization position and $\\sigma$ their broadenings. We also choose to have just one orbital per atom so that we can drop the index $m$ from now on. \n",
"\t\n",
"### Task 2.1 [4 points]\n",
"Implement a Python function which calculates $\\phi(x, \\mu, \\sigma)$ for a whole array of arbitrary $x$, centered at given $\\mu$ with a given broadening $\\sigma$.\n",
"\n",
"Plot all the atomic basis functions for a chain with $n = 10$ atoms, using $\\sigma = 0.25$. I.e. plot $\\phi(x, x_i, \\sigma)$ vs $x$, for all atomic positions $x_i$ in the chain."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "2ad9cc4c03612d5b9bba4824cff364cb",
"grade": true,
"grade_id": "cell-4689e172e70a4762",
"locked": false,
"points": 4,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def atomic_basis(x, mu, sigma):\n",
" \"\"\"\n",
" Calculates the atomic basis functions for the 1D chain of atoms.\n",
" \n",
" Args:\n",
" x: array of positions to calculate the wavefunction at\n",
" mu: atomic position to center Gaussian wavefunction at\n",
" sigma: broadening constant for Gaussian function\n",
"\n",
" Returns:\n",
" A 1D array of values for the wavefunction over the positions\n",
" as given by x.\n",
" \"\"\"\n",
" \n",
" return np.pi**(-1/4)*sigma**(-1/2)*np.exp(-1/2*((x - mu)/sigma)**2)\n",
"\n",
"n = 10\n",
"sigma = .25\n",
"x = np.linspace(-2, 12, 1000)\n",
"\n",
"plt.figure()\n",
"plt.xlabel(\"$x$\")\n",
"plt.ylabel(\"$\\phi$\")\n",
"\n",
"for mu in atomic_positions(n):\n",
" plt.plot(x, atomic_basis(x, mu, sigma), label=\"n = \" + str(mu))\n",
"\n",
"plt.legend()\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "e1c7774260f02916e34521c6236638f4",
"grade": false,
"grade_id": "cell-e5c9315357a401f9",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"### Task 2.2 [6 points]\n",
"Implement a Python function to calculate numerical integrals (using for example the composite trapezoid or Simpson rule). This one should be general enough to calculate integrals $\\int_a^b f(x) dx$ for arbitrary functions $f(x)$, as you will need it for other tasks as well.\n",
"\n",
"Implement a simple unit test for your integration function."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "aecc6d50a1ffd4e4bfbfe3573847edf8",
"grade": true,
"grade_id": "cell-d851197b213e5d2d",
"locked": false,
"points": 3,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"def integrate(yk, x):\n",
" \"\"\"\n",
" Numerically integrates function yk over [x[0], x[-1]] using Simpson's 3/8\n",
" rule over the grid provided by x.\n",
" \n",
" Args:\n",
" yk: function of one numerical argument that returns a numeric\n",
" or an array of function values such that x[i] corresponds to yk[i]\n",
" x: array of numerics as argument to yk\n",
"\n",
" Returns:\n",
" A numeric value for the quadrature of yk over x with error\n",
" of order \n",
" \"\"\"\n",
" \n",
" # If yk is callable, we use it to determine the function values\n",
" # over array x.\n",
" if callable(yk):\n",
" yk = yk(x)\n",
" \n",
" # The distance h_i = x[i + 1] - x[i] is not necessarily constant. The choice of\n",
" # partitioning of the interval is subject to mathematical considerations I will\n",
" # not go into.\n",
" h = x[1:] - x[:-1]\n",
" \n",
" integral = 0\n",
" integral += 3/8*(x[1] - x[0])*yk[0]\n",
" integral += 9/8*h[1::3]@yk[1:-1:3]\n",
" integral += 9/8*h[2::3]@yk[2:-1:3]\n",
" integral += 6/8*h[ ::3]@yk[ :-1:3]\n",
" integral += 3/8*(x[-1] - x[-2])*yk[-1]\n",
" return integral"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "6ab06c87cf65c73463ed243e46d63b3d",
"grade": true,
"grade_id": "cell-59912b2862fbce5a",
"locked": false,
"points": 3,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"def test_integrate():\n",
" # Test integral 1 of f with F its primitive with integration constant 0\n",
" f = lambda x: x**2\n",
" F = lambda x: x**3/3\n",
" x = np.logspace(0, 3, 1000000)\n",
" assert np.isclose(integrate(f, x), F(x[-1]) - F(x[0]))\n",
" \n",
" # Test integral 2 of f with F its primitive with integration constant 0\n",
" f = lambda x: np.sin(2*x)/(2 + np.cos(2*x))\n",
" F = lambda x: -.5*np.log(np.cos(2*x) + 2)\n",
" x = np.linspace(0, 10, 1000)\n",
" assert np.isclose(integrate(f, x), F(x[-1]) - F(x[0]))\n",
" \n",
"test_integrate()"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "8c1413a8a11006398e962e8c803ae001",
"grade": false,
"grade_id": "cell-86005829da536b5b",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"### Task 2.3 [2 points]\n",
"Use your Python integration function to check the orthogonality of the Gaussian basis functions by verifying the following condition $$\\delta_{ij} = \\int_{-\\infty}^{+\\infty} \\phi(x, x_i, \\sigma) \\, \\phi(x, x_j, \\sigma) \\, dx,$$ where $\\delta_{ii} \\approx 1$ and $\\delta_{ij} \\approx 0$ for $\\sigma = 0.25$."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "4751becb5d3cb7663536a0624b3d9c54",
"grade": true,
"grade_id": "cell-8a6a8db84dcef484",
"locked": false,
"points": 2,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"delta_00 = 1.00000 (self)\n",
"delta_01 = 0.01832 (nearest neighbours)\n",
"delta_02 = 0.00000\n",
"delta_03 = 0.00000\n",
"delta_04 = 0.00000\n",
"delta_05 = 0.00000\n",
"delta_06 = 0.00000\n",
"delta_07 = 0.00000\n",
"delta_08 = 0.00000\n",
"delta_09 = 0.00000\n",
"delta_10 = 0.01832 (nearest neighbours)\n",
"delta_11 = 1.00000 (self)\n",
"delta_12 = 0.01832 (nearest neighbours)\n",
"delta_13 = 0.00000\n",
"delta_14 = 0.00000\n",
"delta_15 = 0.00000\n",
"delta_16 = 0.00000\n",
"delta_17 = 0.00000\n",
"delta_18 = 0.00000\n",
"delta_19 = 0.00000\n",
"delta_20 = 0.00000\n",
"delta_21 = 0.01832 (nearest neighbours)\n",
"delta_22 = 1.00000 (self)\n",
"delta_23 = 0.01832 (nearest neighbours)\n",
"delta_24 = 0.00000\n",
"delta_25 = 0.00000\n",
"delta_26 = 0.00000\n",
"delta_27 = 0.00000\n",
"delta_28 = 0.00000\n",
"delta_29 = 0.00000\n",
"delta_30 = 0.00000\n",
"delta_31 = 0.00000\n",
"delta_32 = 0.01832 (nearest neighbours)\n",
"delta_33 = 1.00000 (self)\n",
"delta_34 = 0.01832 (nearest neighbours)\n",
"delta_35 = 0.00000\n",
"delta_36 = 0.00000\n",
"delta_37 = 0.00000\n",
"delta_38 = 0.00000\n",
"delta_39 = 0.00000\n",
"delta_40 = 0.00000\n",
"delta_41 = 0.00000\n",
"delta_42 = 0.00000\n",
"delta_43 = 0.01832 (nearest neighbours)\n",
"delta_44 = 1.00000 (self)\n",
"delta_45 = 0.01832 (nearest neighbours)\n",
"delta_46 = 0.00000\n",
"delta_47 = 0.00000\n",
"delta_48 = 0.00000\n",
"delta_49 = 0.00000\n",
"delta_50 = 0.00000\n",
"delta_51 = 0.00000\n",
"delta_52 = 0.00000\n",
"delta_53 = 0.00000\n",
"delta_54 = 0.01832 (nearest neighbours)\n",
"delta_55 = 1.00000 (self)\n",
"delta_56 = 0.01832 (nearest neighbours)\n",
"delta_57 = 0.00000\n",
"delta_58 = 0.00000\n",
"delta_59 = 0.00000\n",
"delta_60 = 0.00000\n",
"delta_61 = 0.00000\n",
"delta_62 = 0.00000\n",
"delta_63 = 0.00000\n",
"delta_64 = 0.00000\n",
"delta_65 = 0.01832 (nearest neighbours)\n",
"delta_66 = 1.00000 (self)\n",
"delta_67 = 0.01832 (nearest neighbours)\n",
"delta_68 = 0.00000\n",
"delta_69 = 0.00000\n",
"delta_70 = 0.00000\n",
"delta_71 = 0.00000\n",
"delta_72 = 0.00000\n",
"delta_73 = 0.00000\n",
"delta_74 = 0.00000\n",
"delta_75 = 0.00000\n",
"delta_76 = 0.01832 (nearest neighbours)\n",
"delta_77 = 1.00000 (self)\n",
"delta_78 = 0.01832 (nearest neighbours)\n",
"delta_79 = 0.00000\n",
"delta_80 = 0.00000\n",
"delta_81 = 0.00000\n",
"delta_82 = 0.00000\n",
"delta_83 = 0.00000\n",
"delta_84 = 0.00000\n",
"delta_85 = 0.00000\n",
"delta_86 = 0.00000\n",
"delta_87 = 0.01832 (nearest neighbours)\n",
"delta_88 = 1.00000 (self)\n",
"delta_89 = 0.01832 (nearest neighbours)\n",
"delta_90 = 0.00000\n",
"delta_91 = 0.00000\n",
"delta_92 = 0.00000\n",
"delta_93 = 0.00000\n",
"delta_94 = 0.00000\n",
"delta_95 = 0.00000\n",
"delta_96 = 0.00000\n",
"delta_97 = 0.00000\n",
"delta_98 = 0.01832 (nearest neighbours)\n",
"delta_99 = 1.00000 (self)\n"
]
}
],
"source": [
"n = 10\n",
"sigma = .25\n",
"\n",
"positions = atomic_positions(n)\n",
"infty = 10000\n",
"x = np.linspace(-infty, infty, 1000000)\n",
"\n",
"def ijlabel(i, j):\n",
" \"\"\"\n",
" Returns a string label describing the relation between two states in words,\n",
" if they are close enough.\n",
" \"\"\"\n",
" \n",
" if i == j:\n",
" return \" (self)\"\n",
" if abs(i - j) == 1:\n",
" return \" (nearest neighbours)\"\n",
" # Default:\n",
" return \"\"\n",
"\n",
"for i in range(n):\n",
" for j in range(n):\n",
" integrand = lambda x: atomic_basis(x, positions[i], sigma)*atomic_basis(x, positions[j], sigma)\n",
" print(\"delta_{}{} = {:.5f}{}\".format(i, j, integrate(integrand, x), ijlabel(i, j)))\n",
"\n",
"# Yann had output:\n",
"#delta_00 = 1.00000\n",
"#delta_01 = 0.01832\n",
"#delta_02 = 0.00000\n",
"#delta_34 = 0.01832\n",
"# Explanation: next neighbours migth have some overlap. Further away, no overlap at all."
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "e9ccbed5ba3e6b844bcc6e326053d8da",
"grade": false,
"grade_id": "cell-3cba7034f4eac62f",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"## Step 3: Tight-Binding Hamiltonian\n",
"\n",
"The tight-binding Hamiltonian for our 1D chain should describe the hopping of an electron from all atomic positions to their nearest left and right neighbours (i.e. no long-range hopping). The resulting matrix representation in the basis of the discrete $x_i$ positions is therefore given as a tri-diagonal $n \\times n$ matrix of the form\n",
"\n",
"\\begin{align}\n",
" \\mathbf{H}_{tb} =\n",
" \\left( \\begin{array}{cccc}\n",
" 0 & t & & 0\\\\\n",
" t & \\ddots & \\ddots & \\\\\n",
" & \\ddots & \\ddots & t \\\\\n",
" 0 & & t & 0\n",
" \\end{array} \\right),\n",
"\\end{align}\n",
"\n",
"where $t = t_{i,i\\pm1}$ is the nearest-neighbour hopping matrix element. A hopping matrix element $t_{i,j}$ is a measure for the probability of an electron to hop from site $i$ to site $j$. They are defined as\n",
"\n",
"\\begin{align}\n",
" t_{i,j} = \\int_{-\\infty}^{+\\infty} \\phi(x, x_i, \\sigma) \\, \\Delta V(x) \\, \\phi(x, x_j, \\sigma) \\, dx,\n",
"\\end{align}\n",
"\n",
"with the potential fixed to\n",
"\n",
"\\begin{align}\n",
" \\Delta V(x) = \\sum_i \\frac{-1}{|x - x_i| + 0.001}.\n",
"\\end{align}\n",
"\n",
"### Task 3.1 [3 points]\n",
"Write a Python function to calculate $t_{i,j}$, using $\\sigma = 0.25$. The function should have as input the indices $i$ and $j$, and the chain length $n$. Verify that the long-range hoppings $t_{i,i\\pm2}$ and $t_{i,i\\pm3}$ are negligible compared to $t_{i,i\\pm1}$.\n",
"\n",
"Hint: use your integration function from task 2.2"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "260ae3c806429aee5900599c01cb65c6",
"grade": true,
"grade_id": "cell-0abfcd1aa9fad2fa",
"locked": false,
"points": 3,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"def hopping(i, j, n, sigma=.25):\n",
" \"\"\"\n",
" Calculates hopping matrix elements t_ij for sigma = 0.25 in a 1D\n",
" chain of n atoms at distance a = 1 from eachother.\n",
" \n",
" Args:\n",
" i: origin site index\n",
" j: destination site index\n",
" n: number of atoms in the chain\n",
" sigma: standard deviation to the Gaussian wave functions\n",
"\n",
" Returns:\n",
" Hopping parameter t_ij.\n",
" \"\"\"\n",
" \n",
" positions = atomic_positions(n)\n",
" \n",
" # This 'infinity' is large enough, as the Gaussians decay quite quickly\n",
" # away from the atomic positions, which we already saw in the overlap\n",
" # above. In fact, 99.7% of all probability mass is under the integral\n",
" # for x radius of 3*sigma from the centers x_i.\n",
" h = 1e-5\n",
" x = np.arange(positions[0] - 10*sigma, positions[-1] - 10*sigma, h)\n",
" \n",
" def V(x):\n",
" ret = np.zeros(x.shape)\n",
" for x_i in positions:\n",
" ret += -1./(np.abs(x - x_i) + 0.001)\n",
" return ret\n",
" # Instead of using a loop, one could vectorize the problem further by calculating all sum\n",
" # terms as elements of a len(x) by len(positions) matrix and then summing along the rows.\n",
" # In testing I found that this was slower than using the loop, so I commented it out.\n",
" # This might be due to the large memory overhead O(len(x)*len(positions)), and the fact that\n",
" # the len(positions) iterations already do vectorized calculations on len(x) >> len(positions)\n",
" # numbers, making the theoretical speed gain only plausible at larger len(positions). \n",
" #V = lambda x: np.sum( -1/( np.abs(np.subtract.outer(x, positions)) + 0.001 ), axis=1 )\n",
" \n",
" integrand = lambda x: atomic_basis(x, positions[i], sigma)*V(x)*atomic_basis(x, positions[j], sigma)\n",
" return integrate(integrand, x)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "b1a56ecde33e723ff450defcf5dc2e74",
"grade": true,
"grade_id": "cell-ea36ee5a2b35154c",
"locked": false,
"points": 0,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"For i = 0 ...\n",
"\tt_{i,i+1} = -0.13849173441658025\n",
"\tt_{i,i+2} = -3.088088057066831e-06\n",
"\tt_{i,i+3} = -1.8833562200578063e-15\n",
"\n",
"For i = 1 ...\n",
"\tt_{i,i-1} = -0.13849173441658025\n",
"\tt_{i,i+1} = -0.14871538221422848\n",
"\tt_{i,i+2} = -3.1306987950404085e-06\n",
"\tt_{i,i+3} = -1.945630457066332e-15\n",
"\n",
"For i = 2 ...\n",
"\tt_{i,i-1} = -0.14871538221422848\n",
"\tt_{i,i+1} = -0.15363274031153992\n",
"\tt_{i,i-2} = -3.088088057066831e-06\n",
"\tt_{i,i+2} = -3.152251440766849e-06\n",
"\tt_{i,i+3} = -1.9763481552880358e-15\n",
"\n",
"For i = 3 ...\n",
"\tt_{i,i-1} = -0.15363274031153992\n",
"\tt_{i,i+1} = -0.1560583006931239\n",
"\tt_{i,i-2} = -3.1306987950404085e-06\n",
"\tt_{i,i+2} = -3.1616643825949025e-06\n",
"\tt_{i,i-3} = -1.8833562200578063e-15\n",
"\tt_{i,i+3} = -1.9857521228152284e-15\n",
"\n",
"For i = 4 ...\n",
"\tt_{i,i-1} = -0.1560583006931239\n",
"\tt_{i,i+1} = -0.15680086580653224\n",
"\tt_{i,i-2} = -3.1522514407668485e-06\n",
"\tt_{i,i+2} = -3.1616580341274714e-06\n",
"\tt_{i,i-3} = -1.945630457066332e-15\n",
"\tt_{i,i+3} = -1.9763479030784917e-15\n",
"\n",
"For i = 5 ...\n",
"\tt_{i,i-1} = -0.15680086580653224\n",
"\tt_{i,i+1} = -0.1560582807779115\n",
"\tt_{i,i-2} = -3.1616643825949025e-06\n",
"\tt_{i,i+2} = -3.1503943708763577e-06\n",
"\tt_{i,i-3} = -1.9763481552880358e-15\n",
"\tt_{i,i+3} = -9.75855063584149e-16\n",
"\n",
"For i = 6 ...\n",
"\tt_{i,i-1} = -0.15605828077791148\n",
"\tt_{i,i+1} = -0.07705640452986241\n",
"\tt_{i,i-2} = -3.1616580341274714e-06\n",
"\tt_{i,i+2} = -1.8615080260773555e-09\n",
"\tt_{i,i-3} = -1.985752122815229e-15\n",
"\tt_{i,i+3} = -1.2516261372405081e-23\n",
"\n",
"For i = 7 ...\n",
"\tt_{i,i-1} = -0.07705640452986241\n",
"\tt_{i,i+1} = -9.883210483852472e-10\n",
"\tt_{i,i-2} = -3.1503943708763577e-06\n",
"\tt_{i,i+2} = -8.453472394803474e-24\n",
"\tt_{i,i-3} = -1.9763479030784917e-15\n",
"\n",
"For i = 8 ...\n",
"\tt_{i,i-1} = -9.88321048385247e-10\n",
"\tt_{i,i+1} = -7.16787287550824e-31\n",
"\tt_{i,i-2} = -1.8615080260773555e-09\n",
"\tt_{i,i-3} = -9.75855063584149e-16\n",
"\n",
"For i = 9 ...\n",
"\tt_{i,i-1} = -7.16787287550824e-31\n",
"\tt_{i,i-2} = -8.453472394803472e-24\n",
"\tt_{i,i-3} = -1.2516261372405081e-23\n",
"\n"
]
}
],
"source": [
"n = 10\n",
"\n",
"for i in range(n):\n",
" print(\"For i =\", i, \"...\")\n",
" for r in range(1, 4):\n",
" if i - r >= 0:\n",
" print(\"\\tt_{{i,i-{}}} = {}\".format(r, hopping(i, i - r, n)))\n",
" if i + r < n:\n",
" print(\"\\tt_{{i,i+{}}} = {}\".format(r, hopping(i, i + r, n)))\n",
" print()"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "7d2c8f74993fe38c2c979376961f869a",
"grade": false,
"grade_id": "cell-8a0f18c44306ae00",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"### Task 3.2 [3 points]\n",
"Implement a diagonalization routine for tri-diagonal matrices which returns all eigenvalues, for example using the $QR$ decomposition (it is fine to use Numpy's $\\text{qr()}$). \n",
"\n",
"Hint: For tri-diagonal matrices with vanishing diagonal elements, the $QR$-decomposition-based diagonalization algorithm gets trapped. To get around this you could, for example, add a diagonal $1$ to your matrix, and later subtract $1$ from each eigenvalue."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "c20cbcce0a7df50b6ae7b90c7aa35721",
"grade": true,
"grade_id": "cell-9d4942b717eadeb2",
"locked": false,
"points": 3,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"def QREig(T, eps=1e-6, k_max=10000):\n",
" \"\"\"\n",
" Follows the method of the QR decomposition based diagonalization routine\n",
" for tridiagonal matrices. The matrix T is diagonalized, resulting in\n",
" all diagonal elements being an eigenvalue.\n",
" \n",
" Args:\n",
" T: a tridiagonaliz matrix.\n",
" eps: the desired accuracy.\n",
" k_max: maximum number of iterations after which to cut off\n",
" \n",
" Returns:\n",
" A one dimensional array with the eigenvalues of the matrix T.\n",
" \"\"\"\n",
" \n",
" e = eps + 1\n",
" k = 0\n",
" while e > eps and k < k_max:\n",
" k += 1\n",
" Q, R = np.linalg.qr(T)\n",
" T = np.matmul(R,Q)\n",
" e = np.sum(np.abs(np.diag(T, k=1)))\n",
" return np.diag(T)"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "19976946c5746804cb08c34f0bda50fc",
"grade": false,
"grade_id": "cell-2d8fb5c080951dd5",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"### Task 3.3 [3 points]\n",
"Implement a unit test for your diagonalization routine."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "d95777361c07514a97ff1458f26f4f44",
"grade": true,
"grade_id": "cell-001cb3c043c4e371",
"locked": false,
"points": 3,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"def test_QREig():\n",
" # Test case one\n",
" T = np.array([\n",
" [1,4,0,0],\n",
" [3,4,1,0],\n",
" [0,2,3,4],\n",
" [0,0,1,3]\n",
" ])\n",
" # Eigenvalues are roots of λ^4 - 11*λ^3 + 25*λ^2 + 31*λ - 46.\n",
" eigenvalues_of_T = np.array([-1.45350244, 1., 4.65531023, 6.79819221])\n",
" assert np.allclose(np.sort(QREig(T)), eigenvalues_of_T)\n",
" \n",
" # Test case two\n",
" T = np.array([\n",
" [1,4,0,0],\n",
" [3,0,1,0],\n",
" [0,2,0,4],\n",
" [0,0,0,3]\n",
" ])\n",
" eigenvalues_of_T = np.sort(np.linalg.eig(T)[0])\n",
" assert np.allclose(np.sort(QREig(T)), eigenvalues_of_T)\n",
"\n",
"test_QREig()"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "83df149b46d779a846f9de925342b681",
"grade": false,
"grade_id": "cell-85c89b0eb0930f2b",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"### Task 3.4 [4 points]\n",
"First, write a function that generates your tight-binding Hamiltonian $\\mathbf{H}_{tb}$, for a given chain length $n$. Use $t = t_{i,i\\pm1}$, as calculated in task 3.1. You can choose any $i$ near the center of the chain for the calculation of $t$, as the chain is (approximately) periodic.\n",
"\n",
"Second, use your diagonalization routine to calculate all the eigenvalues $E_m$, for a variety of $n=10,20,40,80,100$. Sort the resulting $E_m$ and plot them vs. $m$."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "a0779b496fd41a4664bb0cdd857c70fc",
"grade": true,
"grade_id": "cell-764cb41c37700042",
"locked": false,
"points": 3,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"def TBHamiltonian(n, sigma=.25):\n",
" \"\"\"\n",
" Generates the tight-binding hamiltonian H_tb for given chain length n,\n",
" using the approximation of constant hopping parameter in a periodic\n",
" chain of atoms.\n",
" \n",
" Args:\n",
" n: number of atoms in the chain\n",
" sigma: standard deviation to the Gaussian wave functions\n",
"\n",
" Returns:\n",
" Tight-binding hamiltonian H_tb.\n",
" \"\"\"\n",
" \n",
" # TODO: Comment on the weird 20% differences in hopping parameters.\n",
" \n",
" i = n//2\n",
" t = hopping(i, i + 1, n, sigma)\n",
" H_tb = (np.eye(n, n, -1) + np.eye(n, n, 1))*t\n",
" \n",
" return H_tb"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "634e139137eead8808d1d8ccb793d5a5",
"grade": true,
"grade_id": "cell-39ada0528e69d2e5",
"locked": false,
"points": 1,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure()\n",
"\n",
"for n in [10, 20, 40, 80, 100]:\n",
" H_tb = TBHamiltonian(n)\n",
" E_m = QREig(H_tb + np.eye(n)) - 1\n",
" plt.plot(np.arange(len(E_m)) + 1, np.sort(E_m), label=\"n = {}\".format(n))\n",
"\n",
"plt.legend()\n",
"plt.title(\"Energy eigenvalues of $H_{{tb}}$ for different chain lengths $n$\")\n",
"plt.xlabel(\"$m$\")\n",
"plt.ylabel(\"$E_m$\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "c2b46d2fef4b0c243103a5a6f1111e2d",
"grade": false,
"grade_id": "cell-b7c84b8c4ed4c1be",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"### Task 3.5 [3 points]\n",
"Implement a function to calculate the so-called density-of-states \n",
"\n",
"\\begin{align*}\n",
" \\rho(\\omega) = \\frac{1}{N} \\sum_i \\delta(\\omega - E_i),\n",
"\\end{align*}\n",
"\n",
"for a variable energy grid $\\omega$. Do this by approximating the $\\delta$-distribution with a Gaussian. In detail, you can use your atomic orbital function $\\delta(\\omega - E_i) \\approx \\phi(\\omega, E_i, \\sigma_\\rho)$. Calculate the normalization factor $N$ such that $\\int \\rho(\\omega) dw = 1$ is fulfilled.\n",
"\n",
"Your function should take as input the energy grid $\\omega$, the eigenenergies $E_i$ and the broadening $\\sigma_\\rho$."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "ca46cf0b09305fafb522fc0395d1e495",
"grade": true,
"grade_id": "cell-d7c225b7687b5a9c",
"locked": false,
"points": 3,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"def getDOS_ED(w, Ei, sigma):\n",
" # YOUR CODE HERE\n",
" raise NotImplementedError()"
]
},
{
"attachments": {
"dosN010.png": {
"image/png": "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jyWMR7Jqywr5UJLqY+DbCb6ifPHTVB8HVaVrOs1ajirre7I8TDuWFKy8dj48OkK22ExcHi2hvC9kGz+scdqyXZs5wJscBGndUeBmowEw6mjvBxhzPmzlzsFR4AgCgAAIgACYMoDDA4BDAARAAATAhJL4pXAACIAAmDKAg717wzRvhgCAAAiAiY+BNwIONR1AAARAAATAjgtouCU0AAIgAAJghzNM+Zb4AAiAAJh6BvpnIgEgAAIgAKYbAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAKR9AyAAAiAAAiAAAiAAAiAAAiAAAiAAAiAVBIAACIAASAUBIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACYJD8j17vp/cR5N27/3nftvzPd/+rdWX+3+/e/e/WFfp/tXLneBdDMX7a6/0PlDPkBz1CSIfzA5Qz5P/86U//N4Zvql7v/7XuS/7/9f7UujL/NJIev1P+1MqdoxdDMf7vn/70f1CuBen17lpX5rvePXO+18h9K3eOHq2aACAAAiAhAAiAAEgIAAIgABICgAAIgIQAIAACIAFAAARAACQACIAACIAkpTx79nXryvz1sxetK/PzZ8/ady3wi1buHFyDSwghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIaSrGQwfMtC++pAWlXn7wnDQhsqNq6A2JdtV7rBVZT7sxTR0UrprPD68RbNbDzevtaXMg+HhWTSD2Ct3GFVBbUr2VLnD1pT5MXEWmsTSRHe7j74Ft6XMu78No4HFULnDw0uDGC0pK9nRo86GbSnz8cs0dlL63Th8bKpDzVdndABqyzx8bACDSAqtr9zBY1sdRle7+pI9bMRgz8mgJWU++hYHQFK+b5z+cCFKlE20vMyHiZ5BFG3UULmHBhldy9SXbHjxT+Iv8+GvAEg0g4PhYS8ZlOw6wyw6ACvKHE8bNRT0UKnRdQEtStayMm++xQGQ6HadwXlrPRtSRgegucxVr0RR0KOGGln1WpWsVWUebOoeAEnFrlzy5bnddaIEsLIr0osEQE1Bj9pjZBNqNiUbxgegoczbwgIgKcvAiMnuL7EBOLAAMIqJy4EtgMNoMRnG++1iW+bdgTEAJFXf5WUnlQwiBNBY5piaqKGgR+WLrGlalCzGKUBtmXejGAAkzpg87jptBDCOs2A6CuAgurNgTGV+rHgATD33vfNUYbL//XaYPLso8zMrACM5Ua2bAA7iO6XOUOb9maEACIAVAA4up6kGsQOoPXkxii6KoaDtBTBC/wxlPtQ7AKaeb+7Oc9Ywz2Z2tgOdbXY/3KLMX1+U+eus+iBINBcqdPEgSIz+Gcq8+XW7Ew+3P8AAufzyLG+jw5L+Yuxljsu/Lp4GM4j1TgiaMp/txHQCiXb0cDZIiBvAoXaQFtOFqvqCPoE4iPak4kHpiaExIqIvMwAS2y/PczgG+9xuCOxc5sgu1Le8FC6uZmko2SBWQ7RlPuzEDIFJaQ7nNBy+RS9ueBnt/UqeyjzYFzquG5UYKncY7c0QLkp2qNxo/SupzfO9mIMgRPvl+XimvO6gb5S3wzot8/DooHZv+JhBzJW7x6QX5dfLScmGR+dDHSp3GHeZL3ZaACSGRno8QdICAC/KfAJgTBM++sqN7d7Vp7MIxyU7ATDGOeGy2gRA4rjzDLP2AHhe5mgBNFTuIEpJSkrWBgAvahMAicPeczxevDjgEefzZE7KfCjj4CjRV+4g1ucLnZWsrHIHLSnz0R9o54QQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQjqSb3u97w6/3PV6d1QJISSRPH/fe//14bdnvd49dUIISSTfnfT5XvR631MnhJA08iDe++dHv/d6vefUCiEkwQ7gFsBn1AohJIU8fwDvawAkhKSYb3q9d9sf7u/vAJAQklTue71vN///ej8SPu8REkJIV/P+scP30BP8ZvP/Z73ee2qFEJJE9h2+7x4hvDs+K5oQQjoO4OMIeAfg973egFohhKQC4Itdx28L4DeMgAkhyeTd9uDH5mzozdD3xXs6gISQZPLdQ9fv7u59737Ye7/5P1cCE0KSyfOHLuBDvn/+bPv/3ndcB0cISUfAu+977+4e2Bvc994PGf8SQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEELIdfP/AR2es/ErXdicAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTAzLTAzVDE2OjM0OjU0KzAwOjAwgGbizgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0wMy0wM1QxNjozNDo1NCswMDowMPE7WnIAAAAtdEVYdGljYzpjb3B5cmlnaHQAQ29weXJpZ2h0IEFydGlmZXggU29mdHdhcmUgMjAxMQi6xbQAAAAxdEVYdGljYzpkZXNjcmlwdGlvbgBBcnRpZmV4IFNvZnR3YXJlIHNSR0IgSUNDIFByb2ZpbGUTDAGGAAAAJHRFWHRwZGY6SGlSZXNCb3VuZGluZ0JveAA0NjAuOHgzNDUuNiswKzAvndwyAAAAE3RFWHRwZGY6VmVyc2lvbgBQREYtMS40JDFqVwAAAABJRU5ErkJggg=="
},
"dosN100.png": {
"image/png": "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"
}
},
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "b2049bb4d5fb56c59e7d0e742a91d3c8",
"grade": false,
"grade_id": "cell-7560c4658b1da5d3",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"### Task 3.6 [3 points]\n",
"Use your density-of-states routine to calculate $\\rho(\\omega)$ for $n=10,20,40,80,100$ for $\\sigma_\\rho \\approx 0.005$. See below for two examples with $t \\approx -0.195$ and $n=10$ and $n=100$.\n",
"\n",
"Hint: if your plots look like they are smoothed out, try decreasing $\\sigma_\\rho$. If they look like there is a lot of noise, try increasing $\\sigma_\\rho$.\n",
"\n",
"$n = 10$ | $n = 100$\n",
":-: | :-:\n",
"![dosN010.png](attachment:dosN010.png) | ![dosN100.png](attachment:dosN100.png)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "10cb847540f9e1998c9c1b40c5e43a7b",
"grade": true,
"grade_id": "cell-c3083a03553a2aa9",
"locked": false,
"points": 3,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"# YOUR CODE HERE\n",
"raise NotImplementedError()"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "69c457b9ef8fbd13ad935fe12c37c81c",
"grade": false,
"grade_id": "cell-362439917c95705f",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"## Step 4: Tight-Binding Propagation Method\n",
"\n",
"Now we turn to the time-dependent Schrödinger equation\n",
"\n",
"\\begin{align}\n",
" i\\hbar\\frac{\\partial}{\\partial t} \\psi(x,t) = H \\psi(x,t),\n",
"\\end{align}\n",
"\n",
"which has the formal solution\n",
"\n",
"\\begin{align}\n",
" \\psi(x,t) = U(t) \\psi(x,t=0),\n",
"\\end{align}\n",
"\n",
"with \n",
"\n",
"\\begin{align}\n",
" U(t) = e^{-i \\hbar H t}\n",
"\\end{align}\n",
"\n",
"being the time-propagation operator. Within the propagation method we can calculate the so-called local density-of-states\n",
"\n",
"\\begin{align}\n",
" \\rho_{loc}(\\omega) = \\frac{1}{2\\pi} \\int_{-\\infty}^{+\\infty} \\, e^{i\\omega t} \\, f(t) \\ dt,\n",
"\\end{align}\n",
"\n",
"with respect to an (arbitrary) initial state $\\psi(x,t=0)$, where\n",
"\n",
"\\begin{align}\n",
" f(t) &= \\int_{-\\infty}^{+\\infty} \\, \\psi^*(x,t) \\, \\psi(x,t=0) \\, dx \\\\\n",
" &\\approx \\int_{-\\infty}^{+\\infty} \\sum_i c_i^*(t) \\phi(x,x_i,\\sigma) \\, \\sum_j c_j(0) \\phi(x,x_j,\\sigma) \\, dx \\notag \\\\\n",
" &\\approx \\sum_i c_i^*(t) c_i(0). \\notag\n",
"\\end{align}\n",
"\n",
"Thus, the time propagation of an initial state towards positive *and* negative times followed by a Fourier transform of $f(t)$ yields the local density-of-states. To obtain the full density-of-states we need to average $\\rho_{loc}(\\omega)$ as follows\n",
"\n",
"\\begin{align}\n",
" \\rho(\\omega) = \\lim_{S \\to \\infty} \\frac{1}{S} \\sum_p^S \\rho^{(p)}_{loc}(\\omega)\n",
"\\end{align}\n",
"\n",
"over a variety of *random* initial states $p$.\n",
"\n",
"### Task 4.1 [3 points]\n",
"Implement a function which calculates the exact time-propagation matrix $U(\\tau)$ for a small time-step $\\tau$ given the Hamiltonian $H$. For simplicity, set $\\hbar = 1$ in the following. \n",
"\n",
"Hint: Use Scipy's $\\text{expm()}$ function."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "6cb01e4b3c6c192a0df3c4111b91c8fa",
"grade": true,
"grade_id": "cell-42a7aac3f0fa4d1b",
"locked": false,
"points": 3,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"def getU_exact(tau, H):\n",
" # YOUR CODE HERE\n",
" raise NotImplementedError()"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "79f8101b73fbb28ff9138437e9767178",
"grade": false,
"grade_id": "cell-9b02ad5515424242",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"### Task 4.2 [3 points]\n",
"Implement a function which performs the step-by-step time propagation given an initial state $\\vec{c}(0)$, the matrix $U(\\tau)$ and the discretized time grid $t_j$. In other words, your function should calculate \n",
"\n",
"$$\\vec{c}(j+1) = U(\\tau) \\cdot \\vec{c}(j)$$ \n",
"\n",
"for all $j$ of a given discretized time grid $t_j = j \\tau$."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "dc040cc32e832b097bfb8c367f4203a1",
"grade": true,
"grade_id": "cell-4e444f44bf3bc9c1",
"locked": false,
"points": 3,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"def timePropagate(U, c0, t):\n",
" # YOUR CODE HERE\n",
" raise NotImplementedError()"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "61362905e7a2d19219ae21f10a417823",
"grade": false,
"grade_id": "cell-62bfe608c358ff6d",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"### Task 4.3 [4 points]\n",
"Use both of the above functions to calculate and animate the time propagation of an initial state\n",
"\n",
"$$\\psi(x,t=0) = \\phi(x, x_{i=n/2}, \\sigma) \\leftrightarrow \\vec{c}(0) = [c_{i=n/2}(0) = 1, c_{i\\neq n/2}(0) = 0]$$\n",
"\n",
"for a $n=100$ chain. Discretize your time grid as $t_j=j\\tau$ with $j=0 \\dots 200$, and $\\tau=1.5$. Use again $a = 1$ and $\\sigma=0.25$. \n",
"\n",
"To plot / animate the time propagation you should plot the real-space wave function $\\psi(x,t) \\approx \\sum_i c_i(t) \\phi(x, x_i, \\sigma)$.\n",
"\n",
"Hint: use your function from task 3.4 to get the Hamiltonian $H$.\n",
"\n",
"For the animation you can use the following draft:\n",
"```python\n",
"# use matplotlib's animation package\n",
"import matplotlib.pylab as plt\n",
"import matplotlib\n",
"import matplotlib.animation as animation\n",
"# set the animation style to \"jshtml\" (for the use in Jupyter)\n",
"matplotlib.rcParams['animation.html'] = 'jshtml'\n",
"\n",
"# create a figure for the animation\n",
"fig = plt.figure()\n",
"plt.grid(True)\n",
"plt.xlim( ... ) # fix x limits\n",
"plt.ylim( ... ) # fix y limits\n",
"\n",
"# Create an empty plot object and prevent its showing (we will fill it each frame)\n",
"myPlot, = plt.plot([0], [0])\n",
"plt.close()\n",
"\n",
"# This function is called each frame to generate the animation (f is the frame number)\n",
"def animate(f): \n",
" myPlot.set_data( ... ) # update plot\n",
"\n",
"# Show the animation\n",
"frames = np.arange(1, np.size(t)) # t is the time grid here\n",
"myAnimation = animation.FuncAnimation(fig, animate, frames, interval = 20)\n",
"myAnimation\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "dac0e917be4cfe57c7d30715f3f61912",
"grade": true,
"grade_id": "cell-dd676b90f6a61df6",
"locked": false,
"points": 4,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"# YOUR CODE HERE\n",
"raise NotImplementedError()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "6786036a70e4fffbda4c92e340ff90de",
"grade": true,
"grade_id": "cell-70e223783d806888",
"locked": false,
"points": 0,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"# Animate here ...\n",
"\n",
"# YOUR CODE HERE\n",
"raise NotImplementedError()\n",
"\n",
"# Yann has an animation about an atomic orbital that starts\n",
"# moving to left and right and then bounce back."
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "74ab18f8b5e98bc5456ef221449f9299",
"grade": false,
"grade_id": "cell-0395602360fd9e4c",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"### Task 4.4 [3 points]\n",
"Implement a function which calculates the Crank-Nicolson time-propagation matrix \n",
"\n",
"\\begin{align*}\n",
" U_{CN}(\\tau) = (I - i \\tau H / 2)\\cdot(I + i \\tau H / 2)^{-1}.\n",
"\\end{align*}\n",
"\n",
"Here, $I$ is the diagonal identity matrix. Use Numpy's $\\text{inv()}$ function to invert the needed expression."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "1b2677753953d9a528f0dbb71d4077bb",
"grade": true,
"grade_id": "cell-d74914e5d0a13365",
"locked": false,
"points": 3,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"def getU_CN(tau, H):\n",
" # YOUR CODE HERE\n",
" raise NotImplementedError()\n",
"\n",
"# Yann notes that the definition of $U_{CN}(\\tau)$ here is a little\n",
"# different from what Malte used on the slides. He recommends using\n",
"# what is stated here."
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "3746f3298575d0e0c37d35c01039e60e",
"grade": false,
"grade_id": "cell-1daec83575502040",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"### Task 4.5 [5 points]\n",
"Implement a function which calculates the time-propagation matrix using the Trotter-Suzuki decomposition \n",
"\n",
"\\begin{align*}\n",
" U_{TZ}(\\tau) = e^{-i\\tau H_1} \\cdot e^{-i \\tau H_2}.\n",
"\\end{align*}\n",
"\n",
"In this approach you choose a decomposition of the tight-binding Hamiltonian $H = H_1 + H_2$, which allows you to analytically diagonalize $H_1$ and $H_2$ (see last lecture). From this analytic diagonalization you will be able to calculate the matrix exponentials $e^{-i\\tau H_1}$ and $e^{-i \\tau H_2}$.\n",
"\n",
"Write your definition of the 2x2 blocks in $e^{-i\\tau H_1}$ and $e^{-i \\tau H_2}$ in the Markdown cell below. (Double click on \"YOUR ANSWER HERE\" to open the cell, and ctrl+enter to compile.) "
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "566fe9a7f8031baea9812438b155671c",
"grade": true,
"grade_id": "cell-bef909a443eb2a68",
"locked": false,
"points": 2,
"schema_version": 3,
"solution": true,
"task": false
}
},
"source": [
"YOUR ANSWER HERE"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "f9f25759b1a81bbac8c1834c2f4565b8",
"grade": true,
"grade_id": "cell-1425de6027596dea",
"locked": false,
"points": 3,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"def getU_TZ(tau, H):\n",
" # YOUR CODE HERE\n",
" raise NotImplementedError()\n",
"\n",
"# Yann mentions again that this is slightly different wrong what\n",
"# is in the slides/lecture."
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "1747285f36e24921cb5c2811632f33c3",
"grade": false,
"grade_id": "cell-f53dc443bd1858b1",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"### Task 4.6 [3 points]\n",
"In your implementation of $U_{TZ}(\\tau)$ you analytically evaluate the matrix exponentials $e^{-i\\tau H_1}$ and $e^{-i \\tau H_2}$. Test your implementation by comparing your results for these matrix exponentials to those obtained using Scipy's $\\text{expm()}$ function."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "684e4173792cb10809386ef097c561e4",
"grade": true,
"grade_id": "cell-5aa3ffce9359fa7e",
"locked": false,
"points": 3,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"# YOUR CODE HERE\n",
"raise NotImplementedError()\n",
"\n",
"# Yann printed\n",
"#Biggest differences of U1 with Scipy:\n",
"#Real: 1e-16 \n",
"#Imag: 2.77e-17\n",
"# \n",
"# and difference with U_exact in the order of 1e-1 or 1e-2."
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "94ca5bdd479043f3c73214a3c4916923",
"grade": false,
"grade_id": "cell-c255a2bf5eac4e2b",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"### Task 4.7 [6 points]\n",
"In the next task you will need a Fourier transform to calculate the local density-of-states. Therefore you will need to implement a function that returns the Fourier transform $f(\\omega)$ of a given function $f(t)$ defined on a time grid $t$, for a given energy grid $\\omega$. I.e. it should calculate:\n",
"\n",
"\\begin{align}\n",
" f(\\omega) = \\frac{1}{2\\pi} \\int_{-\\infty}^{+\\infty} \\, e^{i\\omega t} \\, f(t) \\ dt.\n",
"\\end{align}\n",
"\n",
"Hint: use your integration function from task 2.2.\n",
"\n",
"Then implement a unit test for your function."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "37055009cb70e69bc9b1dbc761859c51",
"grade": true,
"grade_id": "cell-87ece8e50b1f8de5",
"locked": false,
"points": 3,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"# YOUR CODE HERE\n",
"raise NotImplementedError()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "49aa23055a91a51494bcb9d64924cc75",
"grade": true,
"grade_id": "cell-46e1530333341bc6",
"locked": false,
"points": 3,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"# Implement your unit test here ...\n",
"\n",
"# YOUR CODE HERE\n",
"raise NotImplementedError()"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "028bf13b6bf982c70fd1057c9d6f23f6",
"grade": false,
"grade_id": "cell-dc5656a6bdea875a",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"### Task 4.8 [3 points]\n",
"Calculate the local density-of-states $\\rho_{loc}(\\omega)$ from the Fourier transform of $f(t)$ using all three time propagation methods: $U(\\tau)$, $U_{CN}(\\tau)$ and $U_{TZ}(\\tau)$.\n",
"\n",
"Start from $\\psi(x,t=0) = \\phi(x, x_{i=0}, \\sigma)$ and $\\psi(x,t=0) = \\phi(x, x_{i=n/2}, \\sigma)$, using a $n=100$ chain. Discretize your integration time grid as $t_j=j\\tau$, with $j=-150 \\dots 150$ and $\\tau=1.5$. Use again $a = 1$ and $\\sigma=0.25$.\n",
"\n",
"Be careful: for the Fourier transform you will need positive *and* negative time steps! Thus you will need to do two time propagations: one using $U(\\tau)$ towards positive times and one using $U(-\\tau)$ towards negative times, both starting from $\\psi(x,t=0)$."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "29ff620823bca3839839fbc35ba9b236",
"grade": true,
"grade_id": "cell-316f9c26031f89df",
"locked": false,
"points": 3,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"# YOUR CODE HERE\n",
"raise NotImplementedError()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "1c27de03eb5f84673d52e1e621c316ee",
"grade": true,
"grade_id": "cell-d7a678fdeef64ea2",
"locked": false,
"points": 0,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"# Do your own testing here ...\n",
"\n",
"# YOUR CODE HERE\n",
"raise NotImplementedError()\n",
"\n",
"# Yann had a plot for Tau = 1.5\n",
"# DOS: looking like a hill (\"like a dome with a peak around zero energy 0\")\n",
"# for CN, TS and the exact one\n",
"# a plot of f(t)\n",
"# a plot of local DOS\n",
"# in the title he mentiones the inital values."
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"nbgrader": {
"cell_type": "markdown",
"checksum": "c3e0ecb1b67f93590abf1a796bd507b8",
"grade": false,
"grade_id": "cell-ffbf1e8460ac69d8",
"locked": true,
"schema_version": 3,
"solution": false,
"task": false
}
},
"source": [
"### Task 4.9 [6 points]\n",
"Use the Trotter-Suzuki decomposition to calculate the full density-of-states by averaging over about $100$ local density-of-states you obtained from the time propagation of $100$ random initial states $\\vec{c}(0)$. To this end, you will need to make sure that each $\\vec{c}(0)$ is (a) normalized and (b) can have positive *and* negative elements. \n",
"\n",
"Compare this approximation to the total density-of-states to the exact one from task 3.6, which you obtained directly from the eigenvalues.\n",
"\n",
"Hint: don't expect the results to be the exact same. Check for the location of the peaks, and whether they have a similar order of magnitude.\n",
"\n",
"Hint: if you did not get the Trotter-Suzuki decomposition to work, you can instead use the exact or the Crank-Nicolson time-propagation matrix."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "81edbb8d07068d29021696fd87a961ba",
"grade": true,
"grade_id": "cell-2493a46a63277eda",
"locked": false,
"points": 3,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"# YOUR CODE HERE\n",
"raise NotImplementedError()\n",
"\n",
"# Yann says the initial states do need to be negative, too."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"deletable": false,
"nbgrader": {
"cell_type": "code",
"checksum": "5438067dfec55e69ee224e67178d9e36",
"grade": true,
"grade_id": "cell-a40dfcd993da467c",
"locked": false,
"points": 3,
"schema_version": 3,
"solution": true,
"task": false
}
},
"outputs": [],
"source": [
"# Do your plotting here ...\n",
"\n",
"# YOUR CODE HERE\n",
"raise NotImplementedError()\n",
"\n",
"# Yann plotted the exact diagonalisation and the TS propagation results\n",
"# he had two plots, one peaky, one with peaks on the edges (looking a little\n",
"# like my 1f/2f results in my bachelor internship hmmpfff)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
}
},
"nbformat": 4,
"nbformat_minor": 4
}