Hmm, for n = 10, E_m = 0 for all m. That seems wrong. Let's get some food with Gosse, first!
1871 lines
230 KiB
Plaintext
1871 lines
230 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": 36,
|
|
"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": 23,
|
|
"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.1384916969413158\n",
|
|
"\tt_{i,i+2} = -3.0880817716278278e-06\n",
|
|
"\tt_{i,i+3} = -1.883355982770042e-15\n",
|
|
"\n",
|
|
"For i = 1 ...\n",
|
|
"\tt_{i,i-1} = -0.1384916969413158\n",
|
|
"\tt_{i,i+1} = -0.1487153634772844\n",
|
|
"\tt_{i,i+2} = -3.130698794594546e-06\n",
|
|
"\tt_{i,i+3} = -1.9456302197759757e-15\n",
|
|
"\n",
|
|
"For i = 2 ...\n",
|
|
"\tt_{i,i-1} = -0.1487153634772844\n",
|
|
"\tt_{i,i+1} = -0.1536327215743931\n",
|
|
"\tt_{i,i-2} = -3.0880817716278278e-06\n",
|
|
"\tt_{i,i+2} = -3.1522451552639614e-06\n",
|
|
"\tt_{i,i+3} = -1.976347680690269e-15\n",
|
|
"\n",
|
|
"For i = 3 ...\n",
|
|
"\tt_{i,i-1} = -0.1536327215743931\n",
|
|
"\tt_{i,i+1} = -0.15605826321748156\n",
|
|
"\tt_{i,i-2} = -3.130698794594546e-06\n",
|
|
"\tt_{i,i+2} = -3.1616580970991677e-06\n",
|
|
"\tt_{i,i-3} = -1.883355982770042e-15\n",
|
|
"\tt_{i,i+3} = -1.985751885523562e-15\n",
|
|
"\n",
|
|
"For i = 4 ...\n",
|
|
"\tt_{i,i-1} = -0.15605826321748156\n",
|
|
"\tt_{i,i+1} = -0.15680084706928052\n",
|
|
"\tt_{i,i-2} = -3.1522451552639614e-06\n",
|
|
"\tt_{i,i+2} = -3.1616580336392234e-06\n",
|
|
"\tt_{i,i-3} = -1.945630219775976e-15\n",
|
|
"\tt_{i,i+3} = -1.976347665788238e-15\n",
|
|
"\n",
|
|
"For i = 5 ...\n",
|
|
"\tt_{i,i-1} = -0.15680084706928052\n",
|
|
"\tt_{i,i+1} = -0.1560582620407699\n",
|
|
"\tt_{i,i-2} = -3.1616580970991677e-06\n",
|
|
"\tt_{i,i+2} = -3.1503884135302292e-06\n",
|
|
"\tt_{i,i-3} = -1.976347680690269e-15\n",
|
|
"\tt_{i,i+3} = -9.758917589446118e-16\n",
|
|
"\n",
|
|
"For i = 6 ...\n",
|
|
"\tt_{i,i-1} = -0.1560582620407699\n",
|
|
"\tt_{i,i+1} = -0.07705930210415016\n",
|
|
"\tt_{i,i-2} = -3.1616580336392234e-06\n",
|
|
"\tt_{i,i+2} = -1.8618361745866042e-09\n",
|
|
"\tt_{i,i-3} = -1.985751885523562e-15\n",
|
|
"\tt_{i,i+3} = -1.2520416620914092e-23\n",
|
|
"\n",
|
|
"For i = 7 ...\n",
|
|
"\tt_{i,i-1} = -0.07705930210415014\n",
|
|
"\tt_{i,i+1} = -9.886491591078138e-10\n",
|
|
"\tt_{i,i-2} = -3.1503884135302292e-06\n",
|
|
"\tt_{i,i+2} = -8.457627155901465e-24\n",
|
|
"\tt_{i,i-3} = -1.976347665788238e-15\n",
|
|
"\n",
|
|
"For i = 8 ...\n",
|
|
"\tt_{i,i-1} = -9.886491591078138e-10\n",
|
|
"\tt_{i,i+1} = -7.172547894745363e-31\n",
|
|
"\tt_{i,i-2} = -1.861836174586604e-09\n",
|
|
"\tt_{i,i-3} = -9.758917589446118e-16\n",
|
|
"\n",
|
|
"For i = 9 ...\n",
|
|
"\tt_{i,i-1} = -7.1725478947453635e-31\n",
|
|
"\tt_{i,i-2} = -8.457627155901465e-24\n",
|
|
"\tt_{i,i-3} = -1.2520416620914093e-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": 14,
|
|
"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": 15,
|
|
"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": 31,
|
|
"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\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",
|
|
" t = hopping(i, j, 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": 41,
|
|
"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"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"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": [
|
|
"for n in [10, 20, 40, 80, 100]:\n",
|
|
" #print(\"For n = {}:\".format(n))\n",
|
|
" H_tb = TBHamiltonian(n)\n",
|
|
" E_m = QREig(H_tb + np.eye(n)) - 1\n",
|
|
" #print(\"E_m =\", E_m)\n",
|
|
" #print()\n",
|
|
" \n",
|
|
" plt.figure()\n",
|
|
" plt.plot(np.arange(len(E_m)) + 1, np.sort(E_m))\n",
|
|
" plt.title(\"Energy eigenstates of $H_{{tb}}$ for $n = {}$\".format(n))\n",
|
|
" plt.xlabel(\"$m$\")\n",
|
|
" plt.ylabel(\"$E_m$\")\n",
|
|
" plt.show()\n",
|
|
"\n",
|
|
"# Do your plotting here ...\n",
|
|
"\n",
|
|
"\n",
|
|
"# Yann had a plot with a couple of logisticly looking rising lines,\n",
|
|
"# starting at the same x point, but some higher starting y value,\n",
|
|
"# ending nonintersection some higher some lower."
|
|
]
|
|
},
|
|
{
|
|
"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",
|
|
" | "
|
|
]
|
|
},
|
|
{
|
|
"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
|
|
}
|