1873 lines
236 KiB
Plaintext
1873 lines
236 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": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAACEuElEQVR4nO39eZxkZ3neD3+fc06d2nubnn3RjPaRhBCSQGATLBKjALbBLMbIkF9sY5NfXjvBcfy+3hIc7CSQOHHANnEC3hLAEIyxUUCIzWDMjkAS2tA+0uzTM73Veuosz/vHOaeqerq66ixP9VRrzvX5zGe6q07f/XR19XOd676v576FlJIMGTJkyJBh0qBd6AVkyJAhQ4YMg5ARVIYMGTJkmEhkBJUhQ4YMGSYSGUFlyJAhQ4aJREZQGTJkyJBhImFc6AWkxfz8vDx48OCFXkaGDBkyZEiI73znO2ellNvPf3zLE9TBgwe5++67L/QyMmTIkCFDQgghnh70eJbiy5AhQ4YME4mMoDJkyJAhw0QiI6gMGTJkyDCR2PI1qAwZMmTYSrBtm2PHjtFuty/0UjYdhUKBffv2kcvlIl2fEVSGDBkybCKOHTtGtVrl4MGDCCEu9HI2DVJKzp07x7Fjxzh06FCkr8lSfBkyZMiwiWi322zbtu2iIicAIQTbtm2LpRwzgsqQIUOGTcbFRk4h4v7cGUFlyJAhQ4aJREZQWxz/59vP8LHvHBvfN/jW++H+j40t/Ice/hCff/rzY4ktpWTxL/6ClU99amzx7/vCUZ6458zY4t/9yb/mka9/ZWzxa39/nNYDZ8cW/ytf+QqPPPLImOJ7PHP0z1hY+NxY4ntS8gdPn+bz51bHEv/ZhrvuuourrrqKyy+/nHe9611KYmYmiS2Mh06s8qt/dT8AtxyaY/9cSe03OHEv3Pkr/scHXgTTe5WGv3/hft71Lf+N/PnXf56d5Z1K47fvu4/Tv/07AJRf8AKM7es6qaTCySdW+MpfPgbAz/7uiylWTaXxjz/8IH/3gT8BYP+1H6I0Na00vvXECiufehKAPW9/IVopmrMqKp544gk+/3n/5uPXfu3XKBQKSuOfW/wyjz327wH4oZfci2FUlcb//LlV/sOTJwF48iXXU9Kz+/mN4Louv/ALv8DnPvc59u3bx/Of/3xe9apXcc0116SKm73iWxhfeXyh+/GXHl0YcmVCPPbZwR8rwpePf7n78ddPfl15/Prf95RH/StfVR7/6ft7yuOZhxbVx3/gvl78vo9Vof1ob83tx5eVx3/00Ue7Hz/11FPK4y8tfq338dI3lcfvV05fWaopj3+hcOTIEQ4fPszP//zPc+2113LbbbfRarVSxfzWt77F5ZdfzqWXXoppmrzxjW/kE5/4ROq1ZgpqC+OhE6vsmipgux73H1sGLlH7DU4/ALOHoL0MJ74L/IzS8PefvZ8rZ6/kZOMk9y/cz49f/uNK47cf+T7mJZfgLCzQfuABeI3a+GePNZjbU2b1XJszR1a56pZdSuOffvIx5vbsY2XhNKeeeIyrf+AlSuPbJxsYO0s4Z1t0jtcpXa9WYZ4+fZrdu3dz+vRpjh07xuHDh5XGr9UepFK5mnr9EWr1h9i+/YeVxn+k0eY5lSIP1Ft8r9bitnm1ChbgHf/3QR46oTaFeM2eKX7rx64des1jjz3Ghz/8Yd7//vfzhje8gb/6q7/izW9+85prPvShD/G7v/u767728ssv52MfW5v2P378OPv37+9+vm/fPr75zfQ3DRlBbWE8dHKVa/dMYTke3z81hju8hUdgx2For8DZx5SHf2zpMW7ZdQt5Pc8ztWeUx7ceeZTCtdeiz81hjaEOsnSqwa5DU+iGxvLpptLYUkpOP/k4h264CaFpLJ86oTQ+gH2qQeGKWYQmcE41lMc/e/YsV155JbZts7ioVmFKKanVH2Tnzh/Dceo0m2oVmpSShxstXrNjlobr8f1GOoUxaTh06BA33HADADfddBNHjhxZd82b3vQm3vSmN23uws5DRlBbFJbj8sRCg9uu2cVis8On7z+p9hu4Npx7HK56BdTPwBNfVBq+7bQ50zzDJVOX4EqX+xbUprDcegP76FFmXvdaLDNHU3HHe9tyqS22OfwDu/E8OHtM7Q1Cu16jubLM/IGDWM0GiyeOK43vNmy8mk1udxlpudgLagm22WzSaDSYn5+nXq8rJyjLOonj1KhUDtNqHVVOUCctm1XH4+pKkWfaHY62O0rjhxildMaFfD7f/VjX9YEpvjgKau/evRw9erT7+bFjx9i7N33NOiOoLYozqxauJzmwrUTR1Flq2jQ7DiVT0a908SnwHNh+NRhFqJ0Auw05NYXu083TAOyp7MGVLncduYuO28HU1RgN7GBDNy+5BM+ycD75KaRtIyK2WBmF5dNNkDC7q4zTcXnqvgU8T6Jpas631M759a2p7TtoLC/x1D1343kumqYrie+c8zckY76Iu9Kh/egSUkpl53POnvXXv337dlZWVnj66aeVxm+3fUVZKOyhVDrIyZN/rTT+ky0LgCtKeR4umNxXU0vgWwFxFNTzn/98HnvsMZ566in27t3LRz7yEf7iL/4i9Royk8QWxYllf4PZPV1g32wRgONLCtMQq8Ed+/Q+mA1qWytHN74+Jk42fMW3q7yL/dX9eNLjWE2dXd457ROgsXMXuT17wPOwT6uzg9eX/NPwU/MFpuaLeK6ksWwpi18755teqtvmmd29B9dxqJ1VZwd3V3xFoE/n0WfzSNvDa9jK4q+srAAwMzPD3NwcnU6HZlPdJt+2/PdPIb+bUvEgrlvHts8pi3/S8l+LPXmT/QWTRdul4bjK4j/bYBgGf/iHf8g//sf/mMOHD/OGN7yBa69Nrw4zBbVFcWrV3yB3Txcp5vy76uPLLa7YqchqWzvl/1/dDVrwNlk6AvNXKAl/st4jKF346z/VOMWlM5cqiW+f8tef27UTr+VvjPaJ45j71FjlG8EGX57OY807AKwstKjOqVGYq2d9gpqa34FVrwNQXzzH9A41Vnx31SdTfTqPMeuv2V2y0CtqFGyt5qc8p6ammJ2dBWBpaYlyuawkvmX5v99CYQ/5/O7gsdOY5ryS+KcCgtqVz7G/4L8mz7Q7HK4UlcS/kDh48CAPPPBA9/Nf+ZVfURL3la98Ja985SuVxAqREdQWxckVn6B2TRcomT2CUoZaUJSv7gIjyFevqFM4pxqnEAh2lnYipQTgbFudQnBOnQYhMLZvR3Z8MrFPqDMaNJYthIDilEml7XQfU4XaubNoukFpapry7FwQX10dx13tgCHQSgZ6QFDOUhtzv5obnFqtRi6XI5/PU636MesB0apAu30SXa9gGFXyed99aHUWUHUS6qRlM23olHSNAwFBHXuWENRWQkZQWxSnVtpUCwaVvEExp6MJ/zFlqJ2C/DSY5Z6CaqgjkFPNU2wrbsPUTeaL/l3v2ZZCgjpzGn1+GyKXw9i5M3hM3VmxxopFacpE00T3gG6rpq6QXju7QHV+HqFplGd8BdJYXlIW312x0KfyCCHQp/z1uyrXX6tRqVQQQlCpVAC1BGVZJykUfOVkmjsA6Fjqfr+nLJtdeb9euT34f8F2lMXPEA1ZDWqL4uRKi11T/p2vrgnmyiZn6wqdRrWTMOVvABh5KExDQ10NZ7G12CWmUq5EySgpJSj71GlyO/1zSVqxiCiVcM+pq1E0ljuUZ3xlmS8ZaIaguaru9W+uLFGe9ompWJ1CaBqN5WVl8d2VTpeYtKIBAry6uhpUrVbrKqcwraeWoM6QN/0bD9MMFZS69+dJy2a36RPTfM6/QTvbyQhqs7FpBCWE+FMhxBkhxAMjrnu+EMIRQrx+s9a2FXGu3mG+0rOKbivnWWyoSzGxetJP74Uo7/Dt5oqwZC0xk5/pfj5fnFeroM6exZjv1SOMuTkchVbnxopFadp//YUQlKomLYUE1VpdpRi0NhKaRnl6RmmKz6v1CEpoAq2cU2qS6CcoXdcpFotKCcq2F8mZc0H8PIYxpVRBne7Y7AyUU1HXqOhaRlAXAJupoP4cePmwC4QQOvCfAPV9dZ5lWGp2mCv3CtpzZZNzKhVU44xPSiEqO6ChbgNYtpaZzc92P1dNUO7SEvrcXPdzfducUgXVXLEoTfde/2LVpKkwRdaqrVKsTnU/L83MKk3xeU17Te89vZLDVaig6vV6l6AAKpUKjYa6w8C2vUQuN9P93DR3YHXUvT8XbYdtuV4FZN40WOioe30yRMOmEZSU8svAqFvAfwH8FTCe9tDPIiw3bWb6NphtFZPFhkKCai1DqbfBU96ulKCW2kvMFGa6n28rblNGUFJKn6Bme/GNuW3KFJT0JO2GQ7HSe/1LU6ayFJ+U0ieoqR5BlWdmaSypISjpSbyWg1bqbcBaxcRTdINj2zadTodSqde8uFwuK1NQnmfjODVyud77M2/O01GU4mu6Hm1PMpvrnTmbzxmczWpQm46JqUEJIfYCrwH+6EKvZdLheZKlZofZUu8Ofr6S52xdUYrPtcFaheJ5BKUoxed4Dqud1TUKalthG4ttRQTSbCItC2O2F1/fNoeriKCsloP0JIVyj6CKU+pSfHa7hes4axXU1DStmpqebV7LAckaBaWVc7iKUnxhV4J+gqpUKsoIynb8M1Zmrvf7zZlz2PaykvhLARHN9Smo7WYuS/GNwM/+7M+yY8cOrrvuOmUxJ4aggHcDvyql9EZdKIR4qxDibiHE3QsLY+jiPeGotR08yVoFVTZZbTt0nJEv32i0lv3/i70NgMoOv2msk34TXrGCQ5x9Cmo6P82qtYo3+tc/Es7SMgD6bI9gQwUVWtrToB1s5GsUVNWkVbOVxA+JqFjppcgKlSqtuiKCavrr18prU3yqTBLhgdx+giqVSsoO6tod/0ajP8WXy80oJ6iZfgVlGixkBDUUP/3TP81dd92lNOYkEdTNwEeEEEeA1wP/XQjx44MulFK+T0p5s5Ty5u2KZ/xsBSw1fZJYU4MKDliGz6VCK1Aa/Sm+kKzay6nDL1t+jH4FNZOfQSKpddL3tHODVJjer6DmZsFx8IIOB2nQDjbyfN8Gny8ZeJ7EttJ3G2gFh1z7U3zF6hSOZeF00v9+vaa/0a5N8eWQlou0098ghERULPbODBWLRSzLwvPSxw+JKNevoIxpbHuZCPe3I7Fk+7/DWaP3+mzLGSzaDp6CG5ALjXGM2wB4yUtewlxf3VcFJuYclJTyUPixEOLPgU9KKf/mgi1ogrEYkFB/im9bQFbn6h12TqXsZtAMCKo403ssJKjWsq+mUmCp7RPI+QoKfHUVfpwU7nJIUL34+oz/sbuy0v04KUIFVaisJSgAq+lgFtL9WXUVVF+KrxCcJWrXa1TmtqWKHyoovT/FV/Q/9loOei5dN4lBKb6QrNrt9prHk8C2/d9vfw3KJysPx6mTy01t8JXRsOj4BN5fg5o2dDyg7npMGWr6IQLw6V+DU/eriwew6znwiuETbVWP2xgXNo2ghBAfBm4F5oUQx4DfAnIAUsr/sVnreDZgOSCo/hTfVMH/eLWtIE3TCorx/TWoQkAaY1JQISktW8sc4ECq+GGtaU0NKrBsu6vpFVqooIprCMr/2Go6VFPeRA4mKP/jlhKCGqCgiv6m67Xsrv08KQal+MJpuq1WSwFBDU7x+c8tpSaoUEH116CmA7JacVy1BHWBkI3bOA9SyttjXPvTY1zKlsdScAffr6Cmgjvg1ZYKghqQ4gvVTlifSoElK1BQfeeg+gkqLZwwxdenlPQpv57jripI8YUKqj/FVw4VVPrXv7UaElRPSRYDy3a7np5guzWoDRRUWmyU4gNfQaXFwBRf8LHtLJN2cGdYgzpfQQGs2E63N58SjFA644LqcRvjwsSk+DJER1hnmu2rQU0HG8yKEoIKFVSfSSJM9ylQUANTfGYvxZcW3moNhEDrq+GEH3ur6Y0GrbqN0ARmsffnUwgVVCP9Bt+qrSI0jXy/AgkME+2aCoJyQANR6G3AWvCzeG0FNbRWC9M0MfpqOP0KKi1sewldL6HrvVR2v4JKi2XbpaxrmFqvRB8S1PJF1NF8EhTUJJkkMkTEUrODrgmm+modXQXVVuA0ai6C0CHflypRqaDaS5SMEnm9dxcXqikVBOXWamiVCqJvg9Gn1aX4rIZNvmSsmT0U1qDaKhRUbYVCpbpm/SFBqXDyeU0brZhbs/6QrFQpqH71BD0FpYKgOvYiOWNmzWOhgnLs9O+fRcdZo54AZoxeii/DYNx+++286EUv4pFHHmHfvn38yZ/8SeqYmYLaglhq2syct8FU8wZCqFJQi7566h/+plBBLVvLa9J7AFWzikCw0lGgoGo1tGplzWN6VV2Kz2o55Itr/3RCR5/VTL/Bt2u1NfUn6E/xpT9L5DXXHtKFnoKSCgi23W5vSFCqUnw5c3bNY4YxHTyXXkEt2e4aBx/AdFCPejYQ1LjGbXz4wx9WEqcfmYLaglhqdNYYJAA0TVDNG4pqUEtr608Aeg5yZSUKqtapUTXXDkbQNZ2KWWFZAQG6tRr6eRu8KBYhl1OS4uu0nK5iCmHmdYRQU4NqN2pdxRTCMPPohkG7oYCgGmvbHEFfik+BgrIsa02NA1Sn+JbXKSjD8F8v20mvkJfsIQrK3voEtZWQEdQWxErL7tac+jFVzKkhqObi2vpTiOKMEgVV69SomJV1j1dzVeq2gg14dbWrmEIIIdCrVSUpvk7LWVN/Ar/hqlkylCgoq9lcU38Cf/1mqUynmb6f3SAFJXQNYWpKalDtdrtLSCFyuRyGYSghKMdZxTDW3oBoWg5NK+IqISiX2dza16eia2g8OxTUVkJGUFsQjY5LOb8+OztVyClK8S2vtZiHKMwoUVB1u75OQQFUzAr1TnqCcmu1NQaJEPrUlJoUX3N9ig98q7mloF2Q1WyQL62fPJsvlbAUdGPw2k5XMfVDKxpKFNQgggI/zacixec4ta5i6kfOmMJRQFDLjtNVTCGEEEwb+kVlkpgEZAS1BdGwHCoDCGq6mFNzDqq9vPaQbghFCqreqVPNDSCoXIWarcClNkBBAWjTU77DLyUGKSiAwhgVFEC+VMZSkeJrO2gDDhOrIqhBKT7w03xqFNRggtKNamqCklJScwYfxp3O6axkDWM3FRlBbUE0LGewgioaahSUtbrWwRdCkYKq2Ruk+MzqeBVUdQpXQQ3KarsDCSpfztFWQFCdZgNzTApKSom03DUW8xCiaOClfP94njdUQaUlKM9z8LwW+gCCMhQQVNuT2FIOJihDz1J8m4yMoLYghiqotHfAUoJVg/z6DUCFgpJS0rAbVHLrCapiVlLXoKTn4dXr6NX18VWk+FzXw7HcdSYJ8K3maU0STqeD6zjki+sVlFksY6WsQcmO63cyH6SgCgaylW4D7gS9AseV4nNd//1hGOt/v4ZRwXHTEVTd9X/+ygCCmjGMjKA2GRlBbTFIKWl0XErm+j8gJTWoTgOkN5igFCioptPEk97gGlQuPUF59TpIiVZdr6C0qWrqFJ8dbOCD+u3lS7nUKb6QgAbXoMpYrXQKKjRBDFJQKlJ8luWPfBlXii9USINSfL6CSqeQVwMCmtLXb43TuUxBbYSjR4/y0pe+lGuuuYZrr72W97znPUriZuegthgsx8P15MAU33QxR8t26TgeppHw3sMK/sALA1J8xRmwG/7IDSNZu5ewW/mwFJ+Ucs0Zrzjwgk4LYWujfuhT07irq6niW8ENwMYKykkXP0jhDa5BlVK7+GRwkFsb8P5RQVChQhqkoAqFQpfAkmI0QaW7AakF42qqG6T4ljOb+UAYhsF//a//lRtvvJFarcZNN93Ey172Mq655ppUcTMFtcVQt/wNZFCKr9dNIoWKsoI/8EE1qPAxK/kmENaYNjJJuNKl5SS/y3YDgtIGmCT06SlwXbxGchXSCRXUgBqUWdCRnsRNMbIiJKBBNSizVKbTauF5yTfJUEFpGygo2XGRbvL1DyOofD6PZVmpZmZ1CUofF0H5r89GBPVsUFDjGLexe/dubrzxRgCq1SqHDx/m+PHjqdeaKagthmYwb2hgii/YNFdaNvOV9SmWSGgHCmogQQWbQqcG5WQdtcMU3kYKKrymlEvW8To0QegDTBIhaXm1VfTKegKIAitQGIMJyn+s03YxBvx+IsUfoaAAOq0WhfL61y8KQgUlBqQow8e8toteTnbvOizFFz7W6XQGPh8FQxWUXsXzLDyvg6YlU/irQQ1qkEmiquvYUmJ5HnlNzb39f/rWf+L7i99XEivE1XNX86sv+NWh14xz3MaRI0e45557uOWWW5L9AH3ICGqLYZiCquZ9BVVP048vTPENqkHlg00xhYJa7fjxB5okgsfqnTo7SslmTnnDFFQwU8lrJE+TdYIa06BzUGagSjpth1LCkRVWa3gNyl9DMzFBedYQBZX3H5OWC+X1B8GjYJiCMk3/NdnIhh4Fo1J84TWmmewGKlRQlQE1qEqQNq85HnlzayefxjVuo16v87rXvY53v/vdTA24SYyLjKC2GBrB2OlBNajwsYalgKAG1aBC0rKSGxm6Kb4NDuoCqc5ChZ0iBp6DKvsbvJein90wBZULFIidohvDcJNEac01SeANU1AhQXWSr39Uig9IVYcKXXrjIyg/vTlIQVV0/7GG6zKvaOscpXTGhXGM27Btm9e97nW86U1v4rWvfa2SdWYEtcUQks8ggqoGm049FUGFNagBCioklTQ1KHtjguqm+FKchfKCYX+DFFRIUG4aBRUQ1CCTRL+CShw/SPGZA1J8YV0qDUHJYTWoboov+fqjpviSYriCmlpzTRLUghRfVR+Q4gsUVD1FjW4rIY6CklLylre8hcOHD/PLv/zLytawtXXqRYhGkKIp59f/AYWkpYagRtSgEqLr4huS4kuloAJ1FKbz+qEpSPF1FdSADT7XV4NKHD80SZzXDRz6FVRyk4fXdkCAyK1fv+hP8SVEu91G13VyufUpQiUKyqmhafmBNaaegkpuNV91XIqahqGtd2GGCqr2LDBKqMZXv/pVPvCBD/C3f/u33HDDDdxwww3ceeedqeNmCmqLoaugzEEpPn3NNYnQHm8Nqm7X0YVO0Vi/AStRUI0GwjQRAzbIXoovnYIy8jragBpFSFp2GgXSbGIWi2jaegLp1aDSKSiR1xEDNuCwBuWlJKhB6T1QR1CD1BP0E1Ty90/NcZna4IhGWJfa6gpqHOM2XvziF6dyZ26ETEFtMYQ1qEEmiUpXQaW4w7NqYFZgwAapogYVdjIfdE6o3ySRFF6j0SWi89ElqDQpvrYzUD3BWhdfUlgbtDmCHkGlVVCDukiAGgU1zADRb5JIimgElSbF5w20mEOvu0Q9U1CbhoygthhCdVQakOIr5nQ0kdYksTJYPYFPXJBaQQ1K7wGUciUEIlWKz2s0NyYoBSk+23IHdpEAyCmqQQ1qcwS9ulQqk4TldonofKhQUMMs5CpqUK5TG3gGCvoIKkW7o5rjDqw/wbNHQW0lbBpBCSH+VAhxRgjxwAbPv0kI8T0hxP1CiK8JIZ67WWvbSqhbLjldkB9wlyeEoJw30tegBtWfwFdVuTKkUDgNu0E5twGBCI1yrjw+BWWa/tDCNATVdsltsMHn8jqIlC6+VnOgQQLAyJloupGq3ZEcs4LqdDpdpXQ+1Lj46ugD+vAB6Hpggkmd4huuoLIa1OZhMxXUnwMvH/L8U8APSSmfA/wO8L7NWNRWw0adzENU0hJUe3VjBQV+HcpKXoRu2a0NCQqgnCvTdFKksIYQFIBeKuGlGFlhWxsTlBACM6+nUlB2u4VZWF+f68YvFrHbyU/9e213oIMP/KGFGBpeivePZVkbEpRhGGialoqgXKcxsFEshEMLTRw3+Q3IquN1zzudj3JXQWUEtVnYNIKSUn4ZWBzy/NeklEvBp98A9m3KwrYYGh1noEEiRCVvpEzx1QafgQqRr6aqQTWdJiVj4y4RpVyJhp0ihTWCoLRKJXWKL7fBBg++ky9NDarT2pig/PgFOina0vijNjZ+/2h5fWwKSgiBaZopFVQTXd/4/aPrFdwUBFV3N1ZQuhCUdC1L8W0iJrUG9Rbg0xs9KYR4qxDibiHE3QsLC5u4rAsPX0FtvEGmT/Gt9mpNg2BWUqf4hrUxKhvjVVBauZzuHFTb2VBBge/ks1M0XLWt9kCLeS9+MRVBeZbbrTUNgijoqWtQGxEU9PrxJYXrNrqpvEHQ9TJuivdPzXEHdpEIUdW1zCSxiZg4ghJCvBSfoDY8Yi2lfJ+U8mYp5c3bt2/fvMVNABrW4HHvIVKn+Kz6xjUoCBRU8iJ0FAXVtNMS1MbxtXI5lc3ctlzMIRt8rmDQSbPBt9vkNrBpg38+yraSz1SSlosY0idQM/XuYd4kiEJQqUwSbmOogjL0Eo6b7AZKSknD9brnnQahouuZghqAdrvNC17wAp773Ody7bXX8lu/9VtK4k4UQQkhrgf+GHi1lPLchV7PJKLRGTysMETqFF+n0TvvNAhpU3x2c6iCUkNQY07xDXn9zYLe7TaRKH6rSW5oiq9IJ6FJQnoSaW/s4gPfKJFUQUkpRzaCTaOg/Gm6FsYwBWWUE6f42p7EA0pDFFTZ0DKTxADk83n+9m//lvvuu497772Xu+66i2984xup404MQQkhDgAfB/6JlPLRC72eSUXDcgZ2Mg9RzhvdbhOxIaWfvjOHdPrOV1OZJEYqKCN5DUpKidfc2GYOgYJKSFBSypE1KLNgYCd8/V3HxnWcoTWoNCk+6Xj+NN1hCqpgJO7F5zj+LKxxpfg8z/+5R6b43GQE3giUUXloik/vXrdVMY5xG0IIKsExDtu2sW078Uy0fmxaJwkhxIeBW4F5IcQx4LeAHICU8n8Abwe2Af89+MEcKeXNm7W+rYLRKT49eYrPsUC6wwkqRQ2q43ZwPGdsLj7ZbIKU6EMJqpS4WazT8Tf4UTWopArKbltBjPGk+ELzg8hvvAGLvI5cSLb+kHiGEZRpmiwtLW34/DCEHSKGp/gqtNsnE8VvBO688rAUn6FxtJU8RXk+Tv3H/4j1sNpxG/nDV7PrN35j6DXjGLfhui433XQTjz/+OL/wC7+wtcZtSClvH/H8zwE/t0nL2bIYmeIr+DWoRFNdO4GyGGaSSFGDClN3Q00SuXLiFF9ofhhqM0+R4guV0TCCyhWTK6hOYB8fneJLqKC6BDXcxZc0xRfWlsZVgwqV0XAXXwk3YQ0qVEYb2czBV1DPhhrUOMZt6LrOvffey/LyMq95zWt44IEHuO6661KtM+vFt8Uw6hxUOW/gehLL8SgMaAg6FKEyGpriq4Db8dWWEW+mT6iMRqX42m4b13PRB7VbGoKQeLQBjWJDaOUyXrOJ9DxEzKFz4fmmjVodAf45qFayGwS7S1DDFVRSgvKC1J02ZJaRSGEzj0pQSVN8YW1po3NQkK4GFSXFV9Y1peegRimdcWEc4zZCzMzM8NKXvpS77rorI6iLCZbjYruS8pAaQqWvo3lyghqmoMKx7/X4BBUoo2JuY4UQqqum0xw4kmMYwlHuo2pQSInXbMWeqttTUENMEkUDKcGxPXIxp+qGCmqUzdxzHVzHRjfiDRUMa0tDXXx5HWl7SFci9HgEG0dBeZ6HFvMGIYqCMoIaVJIbhGgpPp26s/UVVBTEUVALCwvkcjlmZmZotVp87nOf41d/Nf2sq4kxSWQYjd6ojSEKKjjEm2iqbtQUHyQaudFw/PhlY2Ni6BJUgjRfV0Ft0GwVQCsn78cXKcUXPJekDmUHw/7M/DCCKgTx46sor5viG+7ig2RDC6MSVP+1cRB2iBie4isjpYvnxVdpIfEMN0lodIKx7xl6OHnyJC996Uu5/vrref7zn8/LXvYyfvRHfzR13ExBbSEMG1YYopJmaGGUFF+KhrGRalABeYVkFgdehBpUmo7mYY+9oS6+Yt9U3el48TsBQQ1L8eUCddVptShW443UDlN3ww7qasF7y7MctAFTg4chJJ1hNvP+juYbjeXYCK4TEtRwmzmA69bR9Xjxo6T4eh3Nt+7Y93GM27j++uu55557Usc5H1vzFb5I0R33PqLVESTsaN5VUCNs5pDoLFSkGlRAXi07gUKIQlCVFAQVR0ElULB2cL5pmEnCLPivT5J+fFFSfGkaxkZx8aVRUN0U3xAFHp6RSmI1j5Tiy/rxbSoygtpC6Cmo4eegoEdmsRAS1KiDupBKQY2ymQOJzkLFU1DxCdYOXv+hNvN+BRUToYIaXoMKUnwJCKqb4otAUEmcfHFSfEmMEiHpDD2oGzznJFDgkRRUQF7PBiffVkBGUFsIYQ1qVCcJgFqSGlRIOmOqQUVJ8YXqKslZqHGn+MImsBvNg/KfS6GgQpNExBRfXIQKamiKL1h/knZH4yaosAalaRsTeHfkRgInX8P10IDCgGnDIUILetaPb3OQEdQWQqQaVDfFl+APKEqKL00NKkaKL5WCKg3ZwFIMLYyX4kuuoIxhNZwg/RcaKuJAWh7oAjHknE+orpIqKCEEhjGEwAPySpbia6BpeTRt4/hGkP5L0o+v4bqUdW2o+6+aKahNRUZQWwih8WFYDSpM/yWvQQkwNt7gu+TVib/BN50mAkHB2FghpFVQWqk09HxTqKDcBN0k7LaLpgv03MbxQ3WV5LBup93CyOfRhpz/CgkqWYrPGZreg566SlKDChvFDtvg0xFUc6hBAvoVVJIalNc1QWyEckDuWT++zUFGUFsIzU5oMx9SgwrIq5aUoMwyDDuf0lVQCe5Q7QZFo4gmhhyEDGpQiWzmzeGNYiGli2/IsMIQ4fNJalDDhhWGMLspvvivj+x4Q9N70G+SiP/+GdUoFta6+OJi1KgN6J+qmyzFN6z+BL0aVDNTUJuCjKC2EOoRUnyaJiiZOs2kNvNh9ScA3fAVVoJ+fKM6mQMUA/WW9BzUKIIShQJoGl4zfnzbGj4LCsAICSrB62+32yMJqluDSpLi6wwftQF9NvNO/A142DTdEKlcfE4DY8gZKEiX4qs73tBO5pBN1R0F13V53vOep+QMFGQEtaXQsBx0TZAfUkOAoKN5ko7UozqZhzDLyQhqRCdzAF3TKRrFRDUoNwpBCYFWKvmNZWPCbrvkhhgkwL9BMEwt0UyoUbOgAIyciRBaIpu5Zw0fteF/AwFauhTfMORyue61ceGOmKYLaVN87kgFFT6/1Tuajwvvec97OHz4sLJ4GUFtITQsh7Kpj2zhUjb15DWoKASVrySrQdnNoRbzEEWjmLwGNYKgALRSKdFU3SgpPvCHFiapQdnt5lCLOQRj0xP245MjpumG8YWZbORGFIIKx74n6yTRRB/Shw9A00yEyCVK8TVdb+gZKABT0zCF2NImiXGM2wA4duwYn/rUp/i5n1PX8zvrJLGF0Oi4Qy3mIcp5g2bSc1CjUnzgX5PwoG5xmAEjQDlXTubiazbJ7dg58jqtXE6moKISVF5PfA6qUBndfzBXLCYySciOi1Ye3b9Py2uJXXxTU6O7W5immbAGVSef3zHyOl0vdy3pceBP0x19z14xNGUK6u8/+ihnjyYfADoI8/sr/IM3XDn0mnGM2/ilX/ol/vN//s/Uasknbp+PjKC2EEZ1Mg9RNhOOfe/UoTQ/+rqEM6GadpPZwuzI60pGKZGCko3hwwpDJFVQnbbL1PzoDd4s6AkVVJupbdtHx88XsJP04uu45CK05xGmPjYFBclHbkRJ8YFfh0p6DmpUig/8ibtb/RyU6nEbn/zkJ9mxYwc33XQTX/rSl5StMyOoLYS65VCKpKB0zjUSzNzpNGD24OjrzDK0l2OHbzpN9uX2jbwu6Uwor9lEK43ewLRyGdkYj0kCQgWVwAXXag1tcxTCTKqgotSgSD72PYqLD0ic4otiM4dwqm58gqq77sgUH/hOPlUuvlFKZ1xQPW7jq1/9KnfccQd33nkn7Xab1dVV3vzmN/PBD34w1TozgtpCaHZcKhE2mFLe4OnFBEP/rIgmiXwFVo/HDt+wGyNNEuAf1l1OQICRCapUwj5zOnb86Ck+g3Y9/gZst1sja1AQElSSg7rRCEozk82EiuLigzQE1Rja5iiErpdj16CklJEVVEXxTKhJRRwF9c53vpN3vvOdAHzpS1/iv/yX/5KanCAzSWwp+CaJKCk+nWbSThJjrEG17NZImzn4Kb643cyllD5BRUnxJVVQEVx84CuopJ0kRrn4AHKFUrexbFRITyJtDy3CjCqRj5/i8zwP27YjE1TcGpTn2XheJ1qKL0ENquVJJMP78IUoP0um6m4FZApqC6EetQaVN+I3i5Uyhs08fg1KShnJZg7JUnyy1QIp0crRFJTbjLeBeZ70hxBGUCBJalCuY+O5zshzUH78QuwUX5RO5iGSpPhs2/bXFrEGde7cuVjxo3QyD6EbZaxOPIXc7WQ+opME+CaJUx07VvxJwjjGbfTj1ltv5dZbb1USa9MUlBDiT4UQZ4QQD2zwvBBC/L4Q4nEhxPeEEDdu1tq2Cpodd2gXiRBl06Bh+WPHI8OxQLoRFVRwDipG/I7XwZVuNAWVK8UmqPDgbdQUX1wF5Vhho9jx1KBC23gUBZUkxdclqCgpvgQKKkqj2BBJUnxuhGGFIXS9FPscVJRO5iGeDSaJrYLNTPH9OfDyIc+/Argi+PdW4I82YU1bCnEUlCfBijOaOso03RD5CngOuNE3mdA2HqkGFbj44hBsLIIql/FaLWSMqahhyi7aOShfQcVZf3eabgQFlSsUYzeL9SIMKwwhEtSgxk9Qo0dthND1cuxxG3EISqVJIsNwbBpBSSm/DCwOueTVwP+WPr4BzAghdm/O6iYftuvRcTwqUWpQwSYUy2oejs+ImuKDWHWoKKM2QpRyJVzpYrnR6xQhQYlIBFUCKf20YEREmQUVIpfXkRIcOw4BhgoqAkHlCzgdCy9GoV5GmAUVQpg60vaQXnSCDWtKcVx8XowbhN6499HvT0Mvx1dQTjisMEoNSstqUJuESTJJ7AWO9n1+LHgsA73u5JFs5gGJxTJKRBm1ESIkqBh1qPBcU5ROEt2GsTHOQsVVUP1fEwXdURsRTBLdjuYxjBI9BRUtxeevKbqKipvi6/+aKIijoEISC+tWUdAb9x4txSdlB8+LofADwqlEsplr2FLSiUGwGZJhkggqMoQQbxVC3C2EuHthYeFCL2dTEPbWi2IzT6agYqT4uiM3EiioiCk+iDcTymvEq0H5XxM9vh0nxZegYWysGlSCkRth89eoLj6I148vboqv/2uioGuSiEJQRvx+fPUYKb5yNhNq0zBJBHUc2N/3+b7gsXWQUr5PSnmzlPLm7dtHn7x/NiDKsMIQpVBBxXHyhWQzbNx7iPx4U3xJRm70FFQ0m3n/10RBlGGFIXKFkKBibPBWME23OPr1CUksTj++cHxGHAXljUlBpSEoY0QvPujVqeIQVOjiG9XNHHozobKGsePHJNnM7wB+UQjxEeAWYEVKefICr2liEGVYYYiQxGJ1NN+kFF8cBZUoxRfRZg4xFVRMFx/Em6obpviiuvj6vyYKpOVvppE6SZibo6DinIUKx2dETfH5XxP999szSUTrJAHZ2PfzcfDgQarVKrquYxgGd999d+qYm0ZQQogPA7cC80KIY8BvATkAKeX/AO4EXgk8DjSBn9mstW0FhPWkaC6+BFN1QzU0boKKaJKAmCm+ZjjuPQZBxVBQnXZ0k0SyGlSgoCKZJEKCipPiC1x8MVJ8cc5CJalBjS3Fl2BoYbNbg4pmkuj/mgw9fPGLX2R+PkI/z4jYNIKSUt4+4nkJ/MImLWfLoTesMNo5KIhJUCHZxKpBxbhDjWMzDwiq5cTYgDfLJBGrBhVjg495Dgri1aDiuPhCEotjkgjV0ETUoLopvujvz7rroQvIa8NH2UCPxLZqDerIkSO84hWv4MUvfjFf+9rX2Lt3L5/4xCcoRmiztdmYpBRfhiEIySbquI3+r4mEWOeggpEQ47KZJzFJNJugaYgINuc0Kb44BNWJcVi3026DEOTM0evv1qBipPi8jguGhtBHb8BJTRJhamcUkqT4XKeOphURYvTrrwfvn7g1qLKujZy1Bmqn6n7xz9/HmaefTB2nHzsuuZSX/vRbh14zjnEbQghuu+02hBD8s3/2z3jrW4evIQoygtoiCFsXlWKcg4pfgxKQi3AXlcTF5zTRhEZBH60QkpgkZNAoNsoGk0hBtV30nIYWIQXUTfHF2ODtdotcvoDQosQPUnyxTBIuWj6aJ0okNElEUU+QXEFFUU/QM0nErUFFqT8BVIJ2SFvZJKF63AbAV77yFfbu3cuZM2d42ctextVXX81LXvKSVOvMCGqLoGGFNvMId6i6hqGJ+ArKrECEDR6jAEKPbTMvGdEIJFRZcU0SUdJ7AFqQyoiroKKoJ+hL8cU0SUQ5AwUJU3wdN1J6D/pSfDEVVFSCSlqDitJFApKNfY/ayRz6FJQCk8QopTMuqB63AbB3r39sdceOHbzmNa/hW9/6VkZQFwsaloMmoJCLMHBOiGCqbhwFVYtmkPC/QdAwNkYROmKjWABTM9GFHs9m3ohOUMI0Eblc7BpUFAcfECgtEa8GFXHUBvidJCCei8+zohNUUhffOBWU4za6qbtRCJVWrBqU48YgqK2voKIgjoJqNBp4nke1WqXRaPDZz36Wt7/97anXkBHUFkE9GLURRYGAP3Ij9kHdqAQF/lmomDWoKPUn8Ak27lTdOAoKgn58MRRUpx1tWGGIuA1jO+1W1503CpquY+TM2AoqSh8+wK9TGVr3cG8UxCEoXdfRdT1eDcptRGpz5McPCCqmiy9qiq+oCTSe/QQVB6dPn+Y1r3kNAI7j8FM/9VO8/OXDWq9GQ0ZQWwTNTrRGsSFKeSPmQd1GtEO6IWKO3Gg60QkK4nc0j01QpVK3+0QU+Cm+6K9/LubIDTviLKhu/GIxls086rDCEFpe6x7ujQLLsiL14QsRd+y76zYxjKlI1wqhxe5o3nA9duVzEeMLyrrWPdy71TCOcRuXXnop9913X+o452OSOklkGIKGFW3URohy3ujWrSIh6rDCEOHIjYiIOk03RCkXU0E1GogIh3RDaOVy7BRfLmKKD/ypup2YNvOoNSgIZ0KNJ8UHIPIGckwKCuJ3NI867j2ErpcSmCSib4cVIxtauBnICGqLoG45kQwSIcqmHv8cVNwUX5walN2M1Cg2RMkoxbaZx1dQ4zFJQPyhhXa7RS5Cm6MQuUIxXqujjhvpkG4IzdRiH9QdK0E5DYyILj4Ixr7H6sXnRmoUG8JXUBlBjRsZQW0RNDtOJIt5CH+qbgwFZcUkqJhj31tOK76CGmeKL66CaruY46xBWdFdfOBbzWOl+DrxUny+ghovQcVrddSINE03hE9Q41NQ5Wxo4aYgI6gtgrrlxqpBxVdQMU0ScWtQMUwSAGWjHLuTRJRGsSG08ngVVC6fQEHFqUEVCjFdfF48ghqzgkpSg4qb4otqkvCkpOl6kRrFhihnQws3BRlBbRE0LCfSqI0Q5SQmCbMa/fq4NSinQdGI3kqlmCtGrkFJKZOl+OL04rOceDWogh65WayUMqhBRX99zEIxsotPuhIcL16KLx99qq7rujiOM7YUn+d1kNKOfFAXwDCip/hanock2qiNEJVsaOGmICOoLYKG5UQaVhiinDei28ylTFaDipjik1KOtQYlOx1w3bHZzF3Hw3NkLBefmTciKyjXtpGeF2mabjd+MQZBxRhWGEKYeuQUX0g0cVx8cQgqTh++ELpejmySaDhBJ3MjXg1KRaujDMOREdQWQaMTzyRRMnXatocbZWy3Y4F046f4nBZ4o/9I224biYyX4suVI9eg4jSKDRFHQcXpwxfCr0FF3OC7nczHk+KL08k8hMjrkVN8cTqZh4hTg3KCVJ2hR3eZ+jbziAQVo5N5iIqhZyaJ87C8vMzrX/96rr76ag4fPszXv/711DGzc1BbAI7r0ba9SLOgQlS6M6EcpgojznfEaRQbon/kRmF66KVxOpmHKOVKtJwWnvTQxPCNoztNtxynBlVGdjpI20bkhr8+vXHv8VJ8ruPhuh76iI2vNwsqZoovoouv28k8Yi8+CFJ8MRXUuGpQIdHEVVBRU3zheaY4Kb6SrlF3MoLqx9ve9jZe/vKX87GPfYxOp0MzRgp9I2QKagsgdOPFOQfVnaob5S64U/P/j3VQN/rIjZbtb6RxU3wSSdsZrRLizIIKEWcmVJxx7yHi9ONLpqCKeK6D69gjr40zaiOEMHVwJTLCJpxUQXmeh+OMTkMnSfEZgYLyp/gMR5xhhSEqukbL83AjxJ80HDlyhMOHD/PzP//zXHvttdx2220De/HFwcrKCl/+8pd5y1veAvi/35mZmdRrzRTUFkBodojl4ut2NI9Qh4ozTTdEjJEbcabphuifqjsqNShjTNMNIfoISp8ergCTpPj6O5oXyiMUWoxhhb34vbHvxerw+N0UXyybeW9ooW4Mv49NSlDh144a0dFTUPFs5lK6eF4HXR9eG6t3CSqOScJ/fZquRzVG7ep8LP/fJ+iciO4mjQJzT5mZH7ts6DWqx2089dRTbN++nZ/5mZ/hvvvu46abbuI973kP5RhZjUHIFNQWQMNKQFBxhhaGBBVD4cQZuRESVDHKKI8A3Y7mEepQSWpQejhyI4JRohO8hlGbxUJcBRU/xZeLMfY9iYKK09E8DUFFqUOFBGXEOQdlRB9a2EhAUOG1W7UOFXXcxr333rvu36BO5o7j8N3vfpd//s//Offccw/lcpl3vetdqdeZKagtgHp31EY8mzkQrd2RlSTFF33se9IaFEQbuZGEoESiFF+8XnwQbSZUqKDinIMK1VYUJ18iF184tDBCHSrONN0QcUZuOIlcfP0dzeeGXpukBhXOhPKdfNF6+A3CKKUzLqget7Fv3z727dvHLbfcAsDrX//6jKAuFjSt6MMKQ3RTfHEUVNxefP1fOwRxpumGiDNVd9wKKqmLD3rqaxhCs0OcFF+uL8U3CqEbL66LD6INLUxqM+//2mHo1aDipfj6v3YYktSgtrqCioI44zZ27drF/v37eeSRR7jqqqv4whe+wDXXXJN6DRlBbQHUY4x7DxGS2STVoGKZJMac4ouloBK4+Lo1qAgpvp6LL76CipTiS6CgNivFF4mgHP89Fs8kESPFFxhBKiNqbf1QObTw2YI/+IM/4E1vehOdTodLL72UP/uzP0sdc1MJSgjxcuA9gA78sZTyXec9fwD4X8BMcM2vSSnv3Mw1TiIaCUwSlTgpvjBNl0hBRU/xlWPUEMJrI6X4GikUVASC6gQ99RK5+KJs8KFJIuLAQujVqzpWhBRfEhdffpJqUMlTfE6EdkcN18UQYEactQZbe2jhOMZtANxwww3cfffdSmKF2DSThBBCB94LvAK4BrhdCHG+Bvw3wEellM8D3gj8981a3yQjrEHFspkH10ZqdxSSzJhqUIlSfAkUlIixwXcVVNQUn4BcjA2+W4OK0DDWbrcQQsMwY6TIArVlR0nxdVxETkNo0TfgUEFFOawbOvE0Lfp2Eq8G1UDXS4gR5+H6ESfFVw+GFUYdBgq9Q71bkaC2EjbTxfcC4HEp5ZNSyg7wEeDV510jgXAq2TRwYhPXN7EIa1BxDuqG10Zqd2TVQWhgRE8xxapBOU0MzcDUo99h99vMR8FrNhGlEiLGBhk2lo0ytNC2XHKmHmuD79WgImzwLb9RbJwN0gxGc0SZCSVjzoKC+CaJOPUniFuDij5NN4QR08UXp4sEXBw1qEnAZhLUXuBo3+fHgsf68e+ANwshjgF3Av9iUCAhxFuFEHcLIe5eWFgYx1onCg3LQQi/fVFU6JqgkNNoRukGEDaKjbFBoumQK/UcgEMQd1ghxFRQjUas9B6AVip2v3YU7Ha8TubQU1tRbeZx0nvQq1dFGbkhO/E6mUM8gorbyRzi1qAasdJ70Jfii0RQbqxO5tDn4stqUGPFpJ2Duh34cynlPuCVwAfEAF0vpXyflPJmKeXN27dv3/RFbjbqlkvZNGLdYYNfh4rm4ovZKDaEWY7s4ouT3gMwdRNDMyIrqLgEJTQNEbEfX9xpun58EXnkRqfdinUGCiAXpAOj2Mw9K96wQgCR00BET/HFJahcLocQInINKk4fPojv4ovj4AMoBWo962g+XmwmQR0H9vd9vi94rB9vAT4KIKX8OlAA5jdldRMMf1hh/NPqJXPcBBVtJlTTacYySISI2tE8CUFB9JlQdtuJraAg+tBCux1v1Ab4BJuLOLQw7rBCACGE39F8TAQlhIjc0TysQcWBphUAbWwpPkMTFDXRPUOVYTzYTIL6NnCFEOKQEMLEN0Hccd41zwD/CEAIcRifoJ79ObwRiDvuPUTJ1KNN1e004hkkQkScqptEQUH0qbqJCSqOgkpCUBHHvvuzoGLU/wKYhUKMGlT8P3VhRutobllWbIKC6CM33JjTdMEnwKhDCxuuSzmGxTxEWc86mo8bm0ZQUkoH+EXgM8DD+G69B4UQvy2EeFVw2b8Gfl4IcR/wYeCnZZRuj89yNCwnlsU8ROQUn1WPZzEPkY+moBp2IxlBGaWxpfjAN0pEJajwXFMc5PJ6JJOE3W53WxfFgVmM1tHc67ix+vCFiNrRvNPpxDZJQEyCiqmgwD8LFcnF58RP8YFvlMgIyscjjzzCDTfc0P03NTXFu9/97tRxY/3VBcpHl1Iman0bnGm687zH3t738UPADyaJ/WxGo+PGspiHKOUNVlqju13TqcPUnvgLM8vQPDfysqbTZLYwGzt8OVeOSFANcrt2xY4fNcXXabtMzcd//c2CEdEk0cQs7IsdP5ePmOJL4OID3ygxrhQfRJ8J5Trxa1Dg9+OLZpKIn+ID/2BvNrTQx1VXXcW9994L+BOW9+7dy2te85rUcSP/VoQQbwNOAo8LIR4WQvxi6u+eIRIalhPLYh6iktdj1KASpvgimCQadiNWF4kQJWOCUnwxTRJAZJOE3W7HrkGB7+SL2osvbg0KghTfmFx8EH0mVJIaFEQfWthwvdguPghSfFtwJtQ4xm304wtf+AKXXXYZl1xySepYI3c9IcR7gO8CbwMOSynPCCG2A+8QQvyOlPLfpl5FhqFImuIrmUb3DNVQdBrJTBIRx763nFZsmzn43c+X68sjr5ONpCaJMvbRYyOvS2ySKOjYC9HPQcWFWSzSXFkeeV0SFx/4KT63NpxApJSpFNTq6urI+ElqUBBtaKErJS3Pi9UoNkRZ11iy0ymoT3/605w6dSpVjPOxa9cuXvGKVwy9RvW4jX585CMf4fbbb0+2+PMQZdf7InAjvpvua0KIVeB7wP3A/yuE+D0p5ZKS1WQYiLrlJq5BRTqo22n0euvFwWYoqKg1qBizoEJEUVBSyuQmibzebZO0YXzPw7bin4MCv91R5/TwzU06HrgyWYrP1Eam+BzHwfO8sZkkPK8FyNgHdcGvQVmd00OvaXbHvSerQR1rR5sKPGmIOm4jarPYEJ1OhzvuuIN3vvOdClYZgaCklH8D/I0Q4oXAv8JP810PPBe/j/3fCiGmpJQXpm/8RYBmx6GcyGau0+y4SCk3PkPleSlt5jWQcsNDvo7nYLlWrFlQIcq58sgUXzi2PamCGlWDcmwPKUlkkjDzxsgUn23FnwXVjV8oYLdGvT7xG8WG0PLGSBdfkk7mIaLUoMJRG0YCgtL10shefElmQYWoKHDxjVI644LqcRshPv3pT3PjjTeyc+dOJeuM81f3C/hnlO7FV0+HgfullLcG5okMY4DnSZqdZAqqnDdwPEnH9chvNPUzJICkB3WlB04bNiCgbifzhOegRikoL/jDSlODGkbgSca9hwht5sPihzbxJDUos1AcaTNPMk03RBQFlaRRbIgoNagkncxD+DWo4e+f0ORQSTAV99nu4kuioD784Q8rS+9BDJOElPIx4BbgY/jnk74HvCZ4bmvq3C2AsJN5knNQoeoa2tE8SSfzEBFGbiRpFBuilCvRclq43sbr7zaKTWgzx/OQQzb5JKM2QuTyOkhwOhtvYr1ZUPFrUP5B3TbDTmIk6WQeQuR1pO0ivY3jpyEo0zSxbRvP2/j16XYyT1KDMiojCSqVgjJ06q479PW/mNBoNPjc5z7Ha1/7WmUxY+16ARF9KviXYRMQ9tJLZJLojtxwmCtvsIEkGVYYYs3IjcEtp0KCSlqDAmi7bcra4K9PMgsqRFi38ppNtA1qQLYVf9RGiG7D2CEmi+403WL89ecKBaT0cDoWufxggpMBOSZL8fkEK+2Ne/mlJSgA27Y3TBGGNvEkNajQxTdMwYYuvGQpPg1XQtuTFPV4bcguJMY1bqNcLnPu3OhjJ3Ewab34MpyH0OSQ5BxUdybUsJEbXQWVsAbVH2MAwhRdEhdfqLqGtTtKRVBhR/MhRok0KT4zwtj37iyohC4+GD600AveP0lcfFEaxiYZ9x4iykyo0CaepAZl6CVABkaLwah3x70nqPFmHc3HjoygJhyNBKM2QpSipPjC9FyiVkejR26E5JI0xQfDO5p3hxWW429gXQU1xCgRdoJI1kli9FTdJOPeQ4RfM6wOJa3kCkpEmKqbxiQRZSZU2KooWQ3Kf087Q9J8zZQmCSDrxzdGZAQ14QjJJanN3I8xTEGlSPGNuwYVYSZUT0ElIKgxK6hcBAXVTfElPKgL0Bni5Ou6+BL04osytFBFim8oQXWn6SboJBGQWmi0GIQ0NahsJtT4kRHUhKORIsVXClTX0Km6nWCeU+oa1GA0nPjj3kNEUlAqalBDFJSqGtRGSDLuPUSooIam+NK4+CKk+MZNUI7rv7eMBO+f3tDCjd8/XRdfwlZHkM2EGicygppwhPWjZDbzYKjaUBdfqKDGVINKoaBCUhuqoAJySXZQd/RU3VQuvkgKKjwHlczF58fYuMbSdfGlIKhxK6ihNahUKb7RBBWqn1Kig7phii9TUONCRlATjtAkkchmno+ioFQQ1MYKJJWLbyIUVIoUXz6CSSJNDaoY1qA2JqiQXEQuoYuP0SYJIQS5XC52/Eg1KLeJECaaFp8Ae1N1N76BqjseeU2Q0+K78ELVlQ0tHB8ygppw9FJ8Sc5BhTWoCCaJpOM2YOjY91D9FPT4CiFaDSpQUAlSZKGxYlgNqtN20TSBnmBeUGisGGqSaLcwciZagjv40Pk31CTRcRE5DZFgA45qkjBNM/a0Z4ia4kvWKBaiKig3Uf0J+l18WYoP4L/9t//Gtddey3XXXcftt99OO8KsslHICGrCUbdchIBSgjvgQk5DE6NMEnXQTTASNAPRTdCM4TUou0HRKKJrCWpoUWzm9QaiUEAY8Qk8VF1DTRJBJ/MkG3BPQW38+tvtVqJZUNBL8Q2bCZW0kzn0CGpUii9Jeg+imiQaiepP0EdQQ25wkox7DxG6+DIFBcePH+f3f//3ufvuu3nggQdwXZePfOQjqeNmBDXhqLf9URtakjtgISibxuhzUEnSe/43GNkwtuk0E52Bgj4FNdRm3kCrJFB/gDBNMIzhKb6EncwBdENDMwSdoQqqnegMFPSbJIan+JISVJQUnwqCGnUOKqmCMoL3jzskxecTVLJtMDRJNLcYQY1r3IbjOLRaLRzHodlssmdPghlz5yH+bWeGTUUj4bj3EOVRU3U7DTATdDIPMWLse9JpugA5PUdOyw1P8dXriQwS4BP4qI7mSTuZhxjVMNYf955MQem5HELTug1nB0EmHLUBIAwNdBEpxZcEuq5jGMaIc1DNRBZzP360FF8SBx+AKQSGSOfie/TR36FWfzjx1w9CtXKYK68cPgVJ9biNvXv38iu/8iscOHCAYrHIbbfdxm233Zb6Z8kIasJRt5xEFvMQpbxOY9jQuTQKCkaOfW/ZrUQGiRCl3PChhV6jgV5OtoFB0DB2qIJKR1C5vD60BmW3W4nOQIFPsGZh+Nh32Uk2TTeElh8+tNCyrESHdEOMGrnhuI2gI0R8aJqJELmhB3X9aboJCVwIKrq+JVN8qsdtLC0t8YlPfIKnnnqKmZkZfuInfoIPfvCD60gvLjKCmnDULIdKIb5DKkTZHKGgrHqyLhIhzPLIc1BJU3zgW82HKSi3UU/URSKEVi5HqEEl/zMJO5pvhE67RSEFweaKxeEuvo6HVky+fmEOH/ve6XSYmppKHH/UyA3XbZDPD+7zGAV+P74hLj7XY6eZ4u8rZUfzUUpnXFA9buPzn/88hw4dYvt2/3f12te+lq997Wtbi6CEEC8H3gPowB9LKd814Jo3AP8OkMB9Usqf2sw1Thr8FF/yO+ByXqc56hxUGgU1qgZlN5ktzCYOP1pBNcnt2pU4/igF1bFcquXkG9iooYV2u01123zi+Ga+MPSgrrQctJnkCkfkRxNU0hQfjFZQaWpQ4PfwG26ScCkncGiGKOt697Dvsw1xFNSBAwf4xje+QbPZpFgs8oUvfIGbb7459Ro2zSQhhNCB9wKvAK4BbhdCXHPeNVcAvw78oJTyWuCXNmt9k4p6O2UNKpJJIo2CilCDSqGgRs2E8ur1xCYJiKCg2k636WsSmKMUVKuFWUj++uQKwxWUtDxELvmfuWYOT/GlJahRM6FcN3kNCvwxHcNqUM0ULj7wFdRWM0mMA7fccguvf/3rufHGG3nOc56D53m89a1vTR13MxXUC4DHpZRPAgghPgK8Gnio75qfB94bjpCXUp7ZxPVNJPwa1DhNEikJakQNquk0U9WgirnicAWVwiQBvoKyl5c3fD6tSSKXN2isbLwB+zWoZC4+8A/rDnfxOWgpUpSjFJRlWakV1LDzMo6TvAYFwVTdEQd1k7r4wHfy1Z2tRVDjGrfxjne8g3e84x1KYoXYTJv5XuBo3+fHgsf6cSVwpRDiq0KIbwQpwYsadcuhmoqgRpgkrJQmiRE1qKbdTOziA78G1RgytttrNNDTKqhxmiQKG5skpJR02q1Effh68QsbHtSVUiItF5FCAQpT39Bm7nketm2nJqiNalCe10HKTqJZUCF0fWMF1XY9OlIylVJBZQd1x4dJM0kYwBXArcA+4MtCiOdIKZf7LxJCvBV4K/i5z2crpJQ00iqoYSYJKcFahULyIvewGpSUMtU5KBheg5KdDrLTSWeSGGIzd10Px/YwU5gMcnmdzgavv+s4eK6b2GYO/lkoewMXn+x4IEFL8f7R8hunKNOM2ggxLMWXZppuCF0vYdtLA5+rBcRSTVGD2qouvq2CzVRQx4H9fZ/vCx7rxzHgDimlLaV8CngUn7DWQEr5PinlzVLKm0PXyLMRluPheJJKihRNKW/Q7Lh4g8Z2O23wHMinIKh81Y/jrt+E224bT3qpFFTJ8Me+D4LbbRQ7Hpu53Uo+CyrEsBpUOCYjVYpvSA1KBuaMVAoqv7GCCpVPIc36h5gkQoJKMqwwhG+SGPz7DVNzVSOtgsoIalzYTIL6NnCFEOKQEMIE3gjccd41f4OvnhBCzOOn/J7cxDVOFGrBBpMqxRecgWnaAzaZsIdePs1B3Y1HbtSDx6q55PHLuXI3zvnodTJPZzOX7TZyQJomdN+ZxXTnoDxH4g6oU3QbxSYY996NX9jYxRe2KNJSpvg2anUUEpSKc1BSrr+BcoI5TmlcfLpR7o6NPx9dBZUqxadnKb4xYtMISkrpAL8IfAZ4GPiolPJBIcRvCyFeFVz2GeCcEOIh4IvA/1dKqXbI/RZCmkaxIbodzQelmdqr/v9pFNSQkRt123+sksKEUc6V6XgdbNde95xX9+OncvEN6cfXI6g0Kb6gYeyATd4KGt3mE3RiD2EWi9hWG+mtJ0AvVFApU3w4EjlAJagiKM/zcJz170/H9W+gDCP5DY5/DmpwCnc16ABRSZPiMzTansQZlKHIkBqbWoOSUt4J3HneY2/v+1gCvxz8u+iRZtRGiN5MKIcd5z9pBQSVqga18dj3UPlUcskJJCS3ml1jTp9b81xXQVXSKSjwCUqvrt0IO62AoFIe1AWf7ArnnacKU3z5BNOAe/GDfnxWe50Sk4oUFPj1LFFcu5GrIKj+kRvnj+xwHBUEVcbzWkjp4p906SFM8U2lTPGBf55qWpu0kv7WR9YsdoKhhKC6U3XHlOIbMvZdhYKqBn0CGwMIMFRQekqTBAweWthRUIMaNhPKClRbmhRfd+TGAKOE1w6HFaaxmftbxKA0X2gPT6ugYHBH83BUu56CoIwh/fhUpPiyjuY9vOc97+G6667j2muv5d3vfreSmBlBTTDqQYomjUkiTPENdPKFCkpJDWr9TKguQaVQUOEZqpq9Pn5PQaWxmW88tFBVDQoGz4TqKag0BBUOLVxfh5LB7zzJuPcQwzqaqzJJwGCC6iqoNAd19bCj+QCCUpDi6ymoi5ugHnjgAd7//vfzrW99i/vuu49PfvKTPP7446njZgQ1wUgz7j1El6AGdZNQYpLYeKpuN8WXRkEFBotBRgk3rEGlUlAbDy3spvhS1KC6QwuH1KDSmSQ2HrkRKiglKb5B61dUg+qP1Q9VKT4/1oD3Z0Aq6UwS4VTdrWOUGMe4jYcffphbbrmFUqmEYRj80A/9EB//+MdTrzVLmk4wVLr4Bk7V7RLUdOL4XYIaluJLo6AChRbG6keYlhufglKY4hukoJrpa1Ddse+t9QQrVZkkGJziC0klbasj2EBBuXVApDqoG5JbaLjox6rjYgpBIUUnibBNUtJ2R//2sWM8UE8/i6kf11WK/M4V+4Zeo3rcxnXXXcdv/uZvcu7cOYrFInfeeaeSXnwZQU0w6gpcfKVhKb6uiy9lqyMY6uJL0+qoq6AGEVSooFKkyIaNfe+0HIQmMMzkG1hokhg0VddqNdENAyPNBh+QmzVg/Z4VjHvX4w+7DNEzSQwmKNM00bTkr8+oFJ9hVBJNMw7RJShnPUHVHDdVeg966cGt1u5I9biNw4cP86u/+qvcdtttlMtlbrjhBvQUyjRERlATjIbl+OPeU8zzqZhhim+QgloFPQ9G8hTNqHNQRaOIkcLdFKYHB6X4vHodUSohUvwh9EwSAxRUy28Um2aDDBXUoKm6nWYjVXoP+glq/frTtjkCutN4B6X42u12qvQejDZJGHqK9DP9BLW67rm666VK70HPJJH0LNQopTMuqB63AfCWt7yFt7zlLQD8xm/8Bvv2pf/ZMoKaYNTaDhXTSLVBlvJhim+DGlQaizlAbmObecNupErvQS89OFBBNRupHHwwQkG13VTpPRhVg2qmSu8BmAHBDiIor+2kanMEo1N8aQwSMLoGlab+BKMVVJouEtBfg9paCioK4igogDNnzrBjxw6eeeYZPv7xj/ONb3wj9RoygppgNCwnlYMPIKdrmIa2MUGlMUgAaJpPUgNqULVOLVV6D8DUTUzN3NAkkcYgAX0Kqr4+fqftpDJIAH56UAwmqE6ruQUUlBHEGpCiTDlNF0bUoJwaupHuBmcoQbluqj58QHdc/MXu4gN43etex7lz58jlcrz3ve9lZmYmdcyMoCYYaUdthJgqGNQ2spmnJSjYcORG3a53zzGlQcWsbGCSaKQySAAIXff78dXXb2CdlpPKYg7+WPCNhhb6CiodQemGgZHPYw1IUXptN9WoDQBhaqD1HIH9UKGgDMPPEGxkkjDN5MMcIXTxiQ0UlMeefPJhlADFLejiG9e4jb//+79XEqcfmc18glG30g0rDFEt5FhtrW8V5CuolCk+2HDkRt2up1ZQ4Kf5BtegGqkVFIA2NYW7OoCgFKT4wK9DDVRQzQZmyhQf+CpqoEmi7XRrSEkhhEArGHit8SgoIcSGDWNVpPiE0DCMysAalIoUnyZE1jB2jMgIaoJRSzlNN8RUwWB10NhxZQQ1eORGvaNOQW10UFcFQenV6hAFlf71NwvGQJu51WqSTzELKkS+WKKzQYovzSHdEKJgdPv69UMFQcHGM6Ecp5bqkG4IQ69umOKrpLCYhyjrGo0t5uLbKsgIaoJRa9tMF9OlIACmihsoqLaiFJ9Z6Z2p6oNKBdWw12/Abm11Xf+8JNhYQaUb9x7CLAxO8XWaTXUKasA5KBUpPgCtaCAHKKh2u506xQd+J4pBBOW69dQKCsDITQ0kqLrjperDF8KfCRUvxTeoe/vFgLg/d0ZQE4zVtsOUgjv4qUKO1fagFJ8igipM985U9aHeqad28YFPULUBrZS81RraVHoFqFeruLX16++01KT4zKKB1Vy7wUspfQWlgqDKZazG2hSoP03XSW2SAL8Txfk1qHCargoFVSgU1o199zwLz+uoIagBCsry/Gm6aVN84BslajEUVKFQ4Ny5cxcdSUkpOXfuXKybmswkMcFYbdlUCyoUlNHtStGFlGps5gDFGTj9wJqHXM+l6TRTtTkKUTHXKyjpef64dyUKqop3Xt8w1/ZwnXTTdEPkSwaN5bUKwbEspOelGvcewiyVWTlzes1j0k4/TTeEVjCwz649J6OizVGIQqFArbaWQLqzoFK6+MB38rWtU2se647aUJDimzL0buPZKNi3bx/Hjh1jYWEh9ffeaigUCrHOR2UENaFo2y6W4zGl4A5+apBJwm6CdBUqqJU1DzWC3meqFNT5JgmvXgcp0abSr1+vTuGet0GqaBQbIl/K0T5PQfVmQalI8ZXW2cxVTNMNIQak+FQSVLFYXLdZ9xrFKlBQRhWn8diax1RM0w0xndN5rLE+RbkRcrkchw4dSv19LwZkKb4JRah4phTVoCzHo90/VVdFo9gQhRk/Xej14ofjMZQQVGAz92QvjRLWjPRqegWoVSt4tdqaoX9dglJwg5AvGnTOJ6igZmSmtJlD6OJbS1DdRrEKTBLaAJOEik7mIQal+HqNYlUoqPU1qFDxqKhBTRt6V5FlUIuMoCYUYc1oSkWKL9hk16T5VDSKDVEIYvSpqNB1pyTFl6sgkbScXprJC2pGqhQUnremm0R3FpSKFF/ZwHU8nL52U71GsWoIyrVtHLunksPWREKFSaKgIzvemqm6KmZBhQgJyuu7QfAbxabrZB7CMCq4bm1NzaemMMU3beisDJgInCE9MoKaUPQUlIIUX6DC1hglVMyCClGc8f9vL3cfCmtGqhQUsMYooVRBBSTn9aX5etN0FaT4gt+h1Zcm66b4impSfMAaq3l4binNqI0QIlh/v1FCdQ0K1naTcBWM2ghhGFWkdNfMhAoVj4oU34xh0PIklpdZzVUjI6gJRVgzUqOgcmtiAj21o8IkMUhBddQpqEEzoUIFpatSULDGam4pmAUVIl/yX/9+J19HcYrPjz+AoBSsP7Sqyz4FPg6C6m9YGqbkdAXnoPQBIzeWA4KaVkBQUzk/RpbmU4+MoCYUodpR5eLzY/alIVpL/v+FmdTxuzH6CEqlggrPUvW3OwrJRInNvKugelbzkExCckkDs2Ssiel/rDDFFxxW7m931COo9OsPCaq/m0SY4lNVg+qPCT0XnyoF5cfsEdRKUI+dUaKg/BjLdkZQqrGpBCWEeLkQ4hEhxONCiF8bct3rhBBSCJF+4tUWxWpLYYpvkIJqLfv/h+m5NAgVVBgTWA1SiCo6SYQx+gmqq6BU2MwHKaim/1rlS2ps5v0x/Y/TT9Ptxi+unwnVIygFJokgRr9RIlQ7RQU2+TDGWoJSZ5LIGVNBzN4NyIrjIlCT4guNFiuZglKOTSMoIYQOvBd4BXANcLsQ4poB11WBtwHf3Ky1TSKUmiQG1aDCepEKBdWtQfUU1GrH3wymzPQKJ4wRkh70KaiUzWJhiIISvfpRGnRrUP0KqlFHCI28AoLqjtxonaegDIHIqWl15MfsbcCtVgvDMDCM9K/PYAW1iq6X0LTkwxxDDFJQy47LtKGjpRhlE2ImI6ixYTMV1AuAx6WUT0opO8BHgFcPuO53gP8EtAc8d9FgtWWjayLVsMIQPQXVn+Jb9ocV5tLfAfdqUMvdh1Y7q+T1PAUjfQpoKugXGJIe+G2OtEol1bDCEGGacK2CcsgXDYSWfgML04Sdvte/Va+Tr1QQKabR9uKvT/HJlqOk/gS9OlZ/DardbitRTzCYoGxnBcNQUB+lrwbVR1CrAUGpwHQuI6hxYTMJai9wtO/zY8FjXQghbgT2Syk/NSyQEOKtQoi7hRB3P1tPY9faDlOFdMMKQxRyGjldrFdQxRlQEB+zAkJfo6BWrBWmTQUWdnoKasXqxffbHClwIAJ6oML6G8a2G7aS9B5srKAKChrdQl8Nao1JwlZOUOen+MZKUPYyudyMkvgDFZTtdoklLaYzBTU2TIxJQgihAb8H/OtR10op3yelvFlKefP27dvHv7gLgNW2reSQLvgjDdZ1k2gtq0nv+d/AV1H9NajOalf5pIWpmxSNIiudHkG5tZoSizmAyOUQxeJ6BaXAIAGg5zSMnLamBtWu1yhU1BBs2C7p/BqUCoMEgDB1EOtNEioMEtBzAq5x8dkrGIaaG5xeDarPJOE4SgwS0FeDsrOzUKqxmQR1HNjf9/m+4LEQVeA64EtCiCPAC4E7LlajhN+HT10nqqlibu1B3VBBqUJxZp2CUlF/CjFlTq2pQXm1mhKDRIjzG8ZaTXUKCnyjRP85qHa9RqGcvn4GoGk6ZrGE1ewzkbRdZQpKaAKR15HttTUoVQpK07R13SRsZ4VcTg1BaVoRIQwcu+/96bhMK6ifAeQ1jaImutb1DOqwmQT1beAKIcQhIYQJvBG4I3xSSrkipZyXUh6UUh4EvgG8Skp59yaucWKw2naUGCRC+DOhxqSgIOjHt9z9dLWzyrSKLhUBpvPT6xSUCot5CG2qijcmBQVglnJrUnztRl2ZggIoVKq0+8bWewprUMC6oYWtVkuZgoL17Y4ce4WcMaMkthACw5jGdpa7jy07LjOKUnwA04aRnYMaAzaNoKSUDvCLwGeAh4GPSikfFEL8thDiVZu1jq2CpWaHGYUb5LqZUKoVVGFmrApqOj+91sW3sqxYQU2tV1BldRt8obR25Ea7XievSEEBFCoV2n3r95qKCaq4th+fSpMErCco21nByKl7/+Rys9iBgpJSsmKrM0mAb5TIalDqsandzKWUdwJ3nvfY2ze49tbNWNOkYrlpM1NKb7ENUS0YnFzpM0a2VtQrqJVj3U9VK6gpc4qnV5/ufu4ur6DPzCiLr01Vcc+eA4JZTU2HglIF1Ru5IT0Pq9GgqMAiH6JYneoqKOmpmwUVQvQpKNd16XQ6YyMo123jeW1lCgogl5vBtv3D6S1P0pFSLUEZevfwbwZ1mBiTRIYePE+y3Owwq1JBFXKshArKc8FageKssvj9NSjbtWk5LeUKKnTxeZaFbDbRZ2eUxdenpnFXgvVbLp4rldegQpu51WoipadYQVVp1X0FJduOPwtKkUkCQCv1CCo0M6hO8YVxHcf/PRiKalDgE1QYN2zsqpygMgWlHBlBTSBqbQdPwqxCBTVbNlludvyOzmEqTnmKbxmk7NaKlNagzOnuOSh3eRlAqYLSZ2a6cXttjhQSVLFXgwqn3yqvQQXNblX24Quhl3J4Df8GJ1Q6KhVUsVjsxg1TcTlFLj4IFdQy0GtJpMpmDj5BZSYJ9cgIagKx1PS7OqtM8c2VTGxXUrcctX34QhSmwe2A0+7WipS6+PJTWK5F22mPh6BmZ/DqdWSno7QPX4jQxSc92U3FqXLxARSrVdrNBp7njoWgtLKB13SQUiptcxSiP8VnB0pH1Tko8MkuJKhQ6cwocvFBNhNqXMgIagIREpTKFF9ouFhq2D23nWqbOUBrqat0VNegwDdfuEvLAOgz6lKUxqwfy11Z6fXhU2iSyJcMkH6X9C5BqaxBVaogJVaj0SMohQpQK+XAk0jLVdooNkSxWMS2bWzbxgmIRFUnCfBNEp7XxnXbXYJSbZJYdVy8vplTGdIjI6gJxHKwQSpVUGU/1lKz01NQKmtQpW3+/81z3VqR6hoU+OaLroJSWYMK1JiztITV8Dd4lSaJYtV//dt1m3bDT8UpTfEFh5ZbtVo3FaeVVdag/Fhewx6LgioF/QSbzeZ4FFQQy3aWOdfxf7/bTHUEPmPoSMjSfIqREdQEYhwKajYgqMVmBxq+W43SvLL4/QTVbRSrqJMEnKegxpLiCxTU8jKtuv/6FyrqXv8wVqtujyXFF6qxdn0VdywEFbQ7ajo0g44VJQWjQkKUg3ZNzWaze6BWVScJACMkKHuZc0HHhzmFNahtOf/1Wcy6SShFRlATiKVAQSk1SQSxlhodaJ71HyxvUxa/S3aNsyy2F/3vWVCn0EIFNTaCCmK5S8u0av7rX6wqVFABQbXrHVrBeSWVCqpYmQri130FJVTXoPz1u02bRqOBEEJpim+NgrKXAU3JqI0QoYJyAoIqaoKygkbDIUI1FqqzDGqQEdQEYrnZQQiU9eID3yQBsNjoQOOs39xVpUmiHBBU8xxL7SUMzehOwlWBucIcAIvWIu7yMqJYRFMwzTVEV0EtLdGu2+TyOobCO+x+BdVaXcEsFjFMdTcgheDQcqu2itew0UpqOrGH6Cqohk2z2aRYLKIp6MQeop+gOvY5THMOvz2nGuRy/u83VFBzObVHQEMFdS5TUEqxqQd1M0TDUrPDdDGHrnCDqRYMdE349S3rrJ+SU9HJPERxFhA+QeUtZvOzSjqxhwgJaqm9hLu8rFQ9QZ+CWl6mZXaUqieAYqVXg2qurlCamlEcP1RQNb+LhML0MIAeKCiv6dBoNLopOVXoJ6hicZFcbk5p/NCybtvLLHbcLqGoQkZQ40FGUBOIpaatNL0HoGmCmWLOr0FZiz3Fo+wb6D5JNc6y6NldQlEFUzep5CosthfHQlBaPo8olXCXlmiVbQoVta+/r8g0WrUOzdUVigr7CII/Ol4IjXa9hlu3ldafIBhaKHoKSmX9CXqGi2aziW6cwzQVpp9Zr6BUGiSAriJb7GQmCZXIUnwTiGXFffhCzJZNvwbVONszNahEaRs0z7FoLSqtP4WYLcz2EZS6AnoIIzis26qpV1Dgp/nadZvWyjKl6RmlsYWmUahU/BRfcwwEpQm/m0RQg1KtoDRNo1gs0mg06HTUKyhdL6BpRWx7kcUxpPgKukZZ1zIFpRgZQU0gFht2t2akErOlnO8QbJ5Vr6DAjxnUoMZBUHOFubEpKPDTfM6yX4MqKnTwhShWTVp1m2ZtlWJVPcGWpmdoLC/jNexuSk4ltFKu6+JTraDAd/L5Jgn1CgrANOfpdM76CkoxQYGf5ssISi0ygppAnK1bbK+qMwCEmC2Z/kHdcSqowMWnOsUHPQXlnDuHsU09weqzsziBi091ig98BdWsdWitrlBSnOIDn6Cay8tjUVDgE5RTt2i1WsoVFPh1qGZzFcepYSpWUOATVN1aouF6Si3mIbbljMzFpxgZQU0YXE+y2OgwX1FPUHNlk+V60+8kofIMVIjSNqzmORp2YywEta2wjVptEa9Ww5gfD0F1luq4jjceBVXJ0VpdxXNd5Sk+8AnKXm2Cp/YMVAitkqNRV38GKkSpVKLT8c/o5caioLZx1vIPGauuQYUxMwWlFhlBTRiWmh1cTzI/hjv47dU8sumfURpLiq+0jSVrGVB7BirEbGEWueh3wTDm1W9gxvw8rdWgEeqYalDhGajilPoUX3l6Bic4ZDwOgtKrJs3gkPG4FJRt++9PMzeeFN9Z2z/jproGBb6Cyg7qqkVGUBOGs3V/ZtD2qrpDkCG2V/PMEAy1G0eKrzzPoub3IpvLq1dQc4U5qjXfJaWPQUEZ27djef6NQXEMNwjFiond9jf40hgIqjQzi+74f9K6wj58IfRKjmagQMZVg3LdZYCx1aCWAv4YZw1KZv34lCEjqAnDQs0nqHEoqB3VPNvEOAlqB0vB6fy54nhqUNNN/4/fmN+uPL6xfR7b9LsXFMagoErTJtLzU2TjUlAF3Vc2WlX9+0ebMmnjK5BxKKhKpYJu+ASo2sUHPkEt47/u82NK8bU9ScP1lMe+WJER1IShp6DU16C2VwvsIGgUW92tPD7VXSzq/ltqNj8eF9+ML0DGk+Lbvp1O0POvNKV+gy9P55EyUCBjUVAzFIP2QPoY1q9XTJrCTyGOg6Cq1Sq5nJ9iHZeCWmYGgF2m+huQnQHpne7YymNfrMgIasLQVVBjIKgd1Tw7RUBQU+MgqN0sBApqvqg+BbetsI2Zhv+xMaf+DtuYn8cyZwCfTFSjNG2C1wg+HoeCmqWgV5AC5Z0kIKhBCQtN08aS4qtWq5hmGzCUjtoI4RPUHGVNUlE4aiPErrz/mp+yMoJShU0lKCHEy4UQjwghHhdC/NqA539ZCPGQEOJ7QogvCCEu2cz1TQLO1jvkDY1qXn0KYns1z06xTEcvQV5dn7wuqjs5oxuURI6Kqa7RZ4gdpR3MNCR2tYhQ2McuhLF9O1Z+mrzhohvq/zTK03mkV8csVtGNcaQQZyjqFTzTU9qHL4QWEFQlX1Lahy9EpVIhbzbRhNo2WSHy5jxLzLHdGI+RISMo9dg0ghJC6MB7gVcA1wC3CyGuOe+ye4CbpZTXAx8D/vNmrW9SsFCzmK/kx/IHWsjp7DWWWTXG4OADyFc5Y+bZoaknD4CZ/AyzDY32lHp1A6BNT9MpzFDUrbHEL1ZySFknV1CvnsBXZUWjgmOMZ4PUKzmaWJQNdXOg+lGtVjHzTTw5ntcnl9vGErNs01pjiR+mDU9lZ6GUYTMV1AuAx6WUT0opO8BHgFf3XyCl/KKUshl8+g1g3yaubyIwrkO6Ifbqyyxq6tNjIU7n8uyU43lbCSGYbxvUquNpISmEwCptI+82xhNfEwjRQDfGoF4B3chRyk3RoT2W+MLQaOgdytp4CMowDAqFNo4zntfHMKosi23MabWxxK8YOmVd43SmoJRhMwlqL3C07/NjwWMb4S3Ap8e6ognEmdXxEtQOljgl1RsYQpzRNXY647uDnK3DUnl8Nl7LnCbfWRlbfOnWQFOf/gxR1Cs0nfFswABNLEpyPO9PKSWm2aDTUV/fCrHELLPy3Nji787nOJWZJJRhIk0SQog3AzcDv7vB828VQtwthLh7YWFhcxc3RkgpOb7cYu/MeO5QkZI57xzHnPGkUDzpcVZ47LDGk0KRnsfUcodT5fEQoOt6dLQiZuPsWOI7nQ6e20JK9Q44AGl75ESeemtpLPEty8LGoeyOJ4XrOKtomkOrOR4CXHZcbHJMe6fGEh9gp5nLalAKsZkEdRzY3/f5vuCxNRBC/DDwm8CrpJQDiwFSyvdJKW+WUt68fbv68zAXCqtth7rljI+gWkvkpM0Ra2oshwkX24s4SHa0azCG+M7CWXRX8kypOZb1N1c6gMBYPKE8NkB9ye+S4Njj+f26Nd8Cvlo/M5b4tZqvzApt9Q44AMvyiaNeH08KNySOqnN0xJXJsSufEZRKbCZBfRu4QghxSAhhAm8E7ui/QAjxPOB/4pPTeP7KJhgnln3lsWdcBFXzN4Dj7gwLdfVGgNPN0wDs6LRhDHfxzkmfOE5VXVYs9Wm4xor/mpgrp3BXV5XHry/6ysyxizhjmBvkrvrrX22eo9NWr2JDgiq2dKSt/jCqZfnvn5VVDc9THz88n1RxnsLzxkMiO80cpzt21k1CETaNoKSUDvCLwGeAh4GPSikfFEL8thDiVcFlvwtUgL8UQtwrhLhjg3DPShxfCglKfZsjAFaDDV7OcmxJ/QZ2puHfU+x0XFg5pjy+fcJf/9lp0SVDlWgs+xt8vrPS/V4qUV/0ax9Cq1BbVG9kcJf89TecFWpn1acpVwPSLsk8zor6G5xQQbVbxe73Uolj7aAPH2exrPHc/+4p5LA8yTk7G1yoAptag5JS3imlvFJKeZmU8j8Ej71dSnlH8PEPSyl3SilvCP69anjEZxdOrPiksXd2TApq6SkAnpE7xkJQp5r+BrPTdWDpiPL49smTAJydYiwEtbrgk0ahfW4sBFULCUpUWD2nnqCcgPR8glK/AS8vLwNQkQXcJfXrbwcKqtMpdr+XSjzdsjCQbOMcbWs8adwDBb8+90x7PEcVLjZMpEniYsXx5RamrjFfHpOLb+kI0iiywAzHlpqjr4+Jo7WjFPQ88643HoI6fgJRqdDKC47V1Cu01bMt8kWdnNPCPrauPJoaK6dPki9XEFqB1QX1NwjOYhtRMfCky+o59QpqcXGRarmKgd5VayrRbj1DLrcDKXWWltSniJ9pd9iT19DwsNonlccHOFD0CerpVmcs8S82ZAQ1QTi+1GL3TAFtDF0AAFg6gpg9yFw5PxYFdbR2lH3V/YjCzNgUlLl3L0WjyNGa+kL3ytkWUztKiGIR+7h6glo+fYrZXXvQcxqrZ8dDUMZcESE0aufUu1uXlpaY2zYHGjhjUFDN1tOUSgcRQoyFoJ5udThY9LMT7fa4FFQ++F6ZglKBjKAmCMeXW+yZHlN6D3zSmD3IvtniWAjqWO0YB6oHYPbgeAjqxAlyu3dzoHqAZ2rPKI+/stBienuR3N492CfGQFCnTjCzazdT2wpjSfG5i21y24pUtm1j5bR6K/Xi4iKzc7PoU3ncZfUbcKv1NOXSQaampsaS4numbXGwVCSXm6PVelp5fICSrrHTNHi6nSkoFcgIaoJw5GyDg/PjOSODlOcRlNoUnyc9jtaOsr+6fywEJT2PzjPPkNu/nwNTB3hmVS1Bea5H/VybqfkiuT176ChWUK5js7qw4BPU9qJyBSUdD3fVQp8rMLt7L4uKCbbT6VCv15mdnUWfzXfrXargOHU6nbMUi5cwOzurXEGtOi6LtsuBgkmpdIhm8yml8ftxSTGfpfgUISOoCcG5usVS0+ay7WMiqMZZ6NRh9iAH5socXWziKJxbs9BcwHKtHkGtHAVPnZPJOXUK2WqRv+xS9lf3c6x+DFdh/PqShedJprcXMQ9cgn3kaaVW4dWFM0jpMbNzN1PbiqwutJTGd5YtkGDMFZjbs4+lk8eUxg8VzdzcHMa2Io5igm21/BuOYmk8BPVMkHK7pJinVLqURvNJpfH7caBgZik+RcgIakLwxILf/+3yHWNqgxMqmrlDXLGjgu1Knl5Up6LClNv+qYCg3A6sqruLt57wNxTz0ks5UD2A4zld16AKrASmhan5IvnLL8NrNnFOqiukL5/yY83s3M309iKdtku7ru4sjnPOX79PUHvptFo0goPBKrC46MeanZ0lt7OE17Bx6+pUQjNIuZUCBVWv17EsdZv8kUDRHCialEuXYtvnsG31VnaAg8U8JywbawxnuS42ZAQ1IXhiwZ/Ed9n2MRHU2Uf8/7ddzhU7/e/x2Gl1PdtC08L+6n7YfrX/4JmHlcXvPPkEAPnLLuPA1AEAnl5VV0dYPu2T9cyOIvnLLwfAeuIJZfGXQoLatZu53b5KPndCXVNaJ1i/saPE3B6/YYvKNN+5c75Ffm5ujtxOf/3OGXUqqtU8AkCxeIAdO3YAcOaMOqv8o00/JXl5yVdQAM0xqajLS3kk8HgzU1FpkRHUhODxM3UKOW18bY7OPAxGEWYPdlXao6frysI/tvQYRaPInvIe2BlMUTn9gLL41pNPoU1Po8/NcWj6EABPLKsjkHMnGuRLBuWZPOZll/nf87HH1cU/+jSFSpXS9AxzewOCOqbu9bdPN9EqOfRyjtk9fg/mxRPqrPhnzpyhWq1SKpUwdvjNXO0z6hR4o/E4eXMnhlFh586d3e+pCo802hwomJR1fewEdU3F/xt+qD6enpQXE8bT9CpDbDyxUOfS+cr4LOZnHoLtV4GmUzJh/1yRx86oJajLZy5H13QoTMP0ATj9kLL4nSeeIH/ppf7IjeI888V5vr/4fWXxF0/UmdtTRgiBMTuLvm0b1hPqCGrhmafYfsC3UJemTIrVHOdOqCSoBrmdPnFUt82TyxdYPKHOin/69OmustGnTYSp4ygkqHrj+1SqvvKenp7GNE1On1Z3GPv7jTZXlf0OLcXifoQwaDTV3eD049JinrwmMoJSgExBTQi+f7LWTb2NBacfgh2Hu59euaOqLMUnpeSRpUe4cvbK3oM7r4HTDyqLbz32GPnLL+s+dvXc1Ty8qCaFKKVk8USDbXt6r3/+8suxHldDUNLzOPvM08xfchDw507N7akoU1DSkzhnmt3UmxCC7Zcc4vSTajZgz/NYWFjoEpQQAmNnCfu0mhSl53VoNJ6gUvHfn5qmsWPHDmUKyvI8nmxaXYLStByV8lXUVtUp/H4YmuCqUoGH6uOZy3UxISOoCcCZ1TanVttcv29mPN9g9STUT8Hu53Yfunp3lcfP1GkpaFp6unmaZWuZK2av6D2481o4+yg46fPw9rFjuCsrFK69rvvY4bnDPLn8JJabPv7KQgur6TC/v0dQhauvwnrkUaSd3siwfPokttVm+4FD3ce27S2zeLKB56V32jlnmsiOR25fb/27Lr+SM089gatgNtfCwgKu67Jr167uY+buMp3jdaSC9TcaTyClTaV8VfexHTt2cPr0aSVOxIfqbWwpeW61N2eqOvUcVmvfQ8rxGBmuqRR5qJEpqLTICGoC8L1jfmfu6/eNZ04Tx+/2/997c/ehmy6ZxfEk9x1bTh3+ewvfA+D6+et7D+66HqQLp+5PHb99vx+j8JweQV09dzWudHl8Kb3KOf2U7+baeWiq+1jxec9Dttu0H06v0k486qcid1/eU5jbD1RxOh6LCowSnWO+Ejb39SbR7rr8SpyOxblj6c+LHTvm17L27esNuDYvmUK2XSVpvpXVewCYnr6h+9iePXtotVpd92Aa3LPqv8bPm+oR1PTUc3Gc1bEd2L22UmSh43DSys5DpUFGUBOAe44uoWuCa/dMjb44CY7dDVoOdj2n+9CNB/yput95Ov15k/sW7iOv57l67ureg5f8gP//ka+kjt+673sI06RwRU+hXTfvk9W9C/emjn/6yCqGqXXddQDF593of+977kkd/+Rj38cslti270D3sT2XzwBw4rH0r3/naA2R1zHmewab3Zf5ZHjq8UdTxz927BjFYpG5ubnuY/lL/Peq9XR6q/bKynfJ5bZRKPTGxV1yySUAPP10egL57mqT+ZzB3nyu+1h1yr+ZWl39Xur4g3DLjP9e+vqyOqfmxYiMoCYAX3/iHNfvm6ZkjsmzcuTvYc/zINcb4zFTMrliR4VvH0l/h/rd09/l2m3XktN7GwCVHTB/lRKCanzzmxSf9zyE2Zvkuqeyh/3V/XzjxDdSxz/x6BI7D02j6b0/h9zOHeT27KH53fQEdfz7D7H7iqsQWi/+1HyR6lyBE48up45vPbFC/tA0os9gM71zF8XqFMcfSW9UOXLkCPv370eIXnx9WwGtkqOjgqCWv8PM9I1r4s/Pz1MqlThy5Eiq2FJKvrZc54Uz5TXxy6XL0fUSyyt3p4q/Ea6tFJk2dL66pO4ox8WIjKAuMOqWw33HVviBy7aN5xu0luDEPXDZS9c9dfPBOb5zZImOkzwPv9Re4sFzD/LCPS9c/+TBF8Mz3wA3eR3EWVrC+v73Kb9offwX7X4R3z79bewUw+caKxbnjjc4cM3cuueKN99E89vfRrrJ63S1c2c5e/RpLrn+eeue23PlDCceX05VZ3GWLZyzLfKXzax5XAjBJdc/j6fu/Q5eio4bi4uLLC0tcdlll615XAhB/pIprCfSrb/ZfIpW+xlm535wXfxLLrmEp59O19HjiZbFCcvmJbPVNY9rmsHc7A9y9uwXxzJcUBeCF82U+eqyOqfmxYiMoC4wvvTIGVxP8g+uGNPo+se/ANKDS9cT1A8f3kHNcvjqE8lHM3z1xFeRSF6858Xrnzz0EujU4JmvJY5f/9LfAVD+wR9c99wL97yQht3g/oXkda6nH/APoO4/vJ6gqv/wH+IuLtL8zncSx3/qXv8O/dBzb1z33L6rZ2nV7G4NLAna3/fXX7hyZt1zl970AlqrK6nSfI8HTsbzCQqgcM023JUOdgo34tlzXwJgftsPrXvu0ksvZWVlJZXd/HNn/df2h+aq656bn/+HWNZJ6o1HEscfhhfPVjnS6vBkdmA3MTKCusC48/6TzFdMnn9w/QapBA/+NVR2wf4XrHvqxVfMU80b3Pm95C197nrqLnYUd3DNtmvWP3nFbWBW4HsfTRy/dtdd5PbsoXDddeuee+HuF2JqJp858pnE8R+/+zRT84U1Dr4QlZe8BFEoUPvMZxPHf+RrX2Z65y627b9k3XOHnrsd3dB49FvJN+DW985i7Ch2D8+ujX8TQtN4/O5vJo7/wAMPsH37drZtW6/wi4fnQBM0H0h+g3P69Kcol6+kWDyw7rlrrrkGTdO4//7kNyB3nFnm+kqRS4rrZ6xt2+bftJ1d+Fzi+MPwo9tn0ICPnVbXcupiQ0ZQFxBn6xaff+gMP/Kc3ejjOKBbOw2PfRauex1o+rqn84bOy67ZyWcePEXDip+GW2gu8NXjX+VHLv0R/4Du+TBLcPhV8NAnwI5vubVPnqT+la8w9SOvXFM/CFE1q7z0wEu586k7E9nNV8+1OPb9Ja64eefA+FqpROUlL2H1rrvwEvSFWzlzmmcevJ9r/sFLB8bPFw0OXr+Nx79zGjdBmtU+28J6coXS9dsHxi9UKhx87o089HdfSGQ3P3v2LM888wzPec5zNnh9cuQvn6F17wIyQePhRuMJVlfvYfeu1wx8vlwuc9lll3H//ffjJehr93C9xT21Jq/eOTvw+Xx+OzMzt3Di5MeQUv2I9l35HC+ZrfKXp5bwxpBGvBiQEdQFxP/62hE6rsc/edHB8XyDb/1PcG14/ls2vORNL7yE1bbDR74dv+vABx7+AB4er7/y9RtfdOM/AWsVvvu/Y8df/N8fACmZ+ck3bnjNG658A8vWMn/92F/Hjn/fF46CEFz7kr0bXjN7+xtxz51j5W8+ETv+3Z/8azRN57qX3rbhNYd/cA+tms0j34zf+Lb+leOgC8q37N7wmhtu+xEay0s8/JUvxY7/ta99DV3XufHG9enJEJUX7sZdsWh+L76KevqZ96FpeXbtfu2G19x4442srq7ywAPxD9X+0dEzFDXBT+3eODuxb9+babePcebMXbHjR8Ebd89xtN3hzoWVscR/tiMjqAuEo4tN/vjvn+JHrt89ng7mi0/B198L170Wtq2vH4S46ZJZfuCybfz+Fx5joRZdJTy9+jQfeuhDvOLQK7rNWwfikh+AS14MX3oX1KJvwtaTT7H0wQ8y/apXYe7bmECev+v5PG/H8/ij+/6I5fZy5PiLJxs88HfHueqFu6jOFTa8rvTCF1J87nNZ+P3fx40xRO/sM0f43uc/zbW3/iOm5jeuLx64Zo4dl1T55ieepFWLfmamc7JB41snKT9/F3rV3PC6QzfcxM5Lr+Cr/+cDtGrRa10nT57knnvu4aabbqJS2fj9Wbh6jtzuMqt3HcFrR1dpq6vf4+TJj7N3z+3kzfkNr7vqqqvYsWMHn//852m1oqvw7642+MtTS/w/e+eZzW3sjt2x/R9TLl/B40/8Lo6j3nH3YztmuKKU53eeOEHdUa/Snu3YVIISQrxcCPGIEOJxIcSvDXg+L4T4P8Hz3xRCHNzM9W0WztUt3vqB72Dogl9/xdWjvyAu6gvwf94MRh5e9tsjL3/Hq66lbbu89QN3R0r1nW2d5Ze++EvkjTy/fNMvj17Pj/43P8X3lz8D7dGbpH3mDMf+5b9AK5fZ/q/+1dBrhRD85i2/yWpnlbd98W20nNGbWGPZ4q7/eT9m0eBFP74xeYfxd7793+KtrnLsX/xLvAibZG3xLHf83jvJlyu8+I3/z8j4L/0nV9Nu2nz2Tx7EjtDZw1m2WPzgQ2jlHFMvW1/bWhNf0/jht/xzmisrfOr3fxfbGt1+Z3l5mY9+9KOUy2VuvfXWEfEFMz9+OW6tw7m/+D7SHp2Ka7WOc/8D/4K8uZ1Dh9429FpN03j1q19NrVbjr//6r7EjdPZ4umXx1gePsDuf45cv2Tl8/ULn6qv+PZZ1ggcf+te4CjqT9EMXgv9y1X6Otjv8y4efyUZwxMSmEZQQQgfeC7wCuAa4XQhxfmX9LcCSlPJy4L8B/2mz1rcZWGnZ/OXdR3nVH36VJxfq/OFP3ci+2fXF7cRoLcE9H4T33QrnnoDX/xlM7xv5ZVfsrPKeN97AfUeX+dE/+Ar/974T1AcQ1Yq1wscf+zg/+cmf5FjtGL936++xo7Rj9Lq2Xwmv/kM4+k14/z+EB/4KrPXOL3d5maWPfpQjr/8J7BMn2fvud5PbOTr+VXNX8c4Xv5N7ztzDG/7vG/jskc/StNd3OGjVOzz498f56Du/TX3J4uVvvY7S1MbqI0Tx2mvZ/R//A81vf5unfuInWP3MZ/Ea6w9gNldXuO9zn+ZDv/6vqC8t8qpf/nVKU6O7g8zvq3LrT13N8UeW+Ni77ubx75zBttYTlduwqX/jBGf+8B7cus22N1+DXs4NiLgWuy6/kh/+uf8PT99/L3/xb36Fx775Nez2eqJqNBp8+9vf5v3vfz/NZpOf/MmfpFQa/f7MXzLF7I9fjvXoEmfeey+tB8/iDSDaTucsR499gG/f/ePY9jLPuf6PyOVGH07fu3cvr3zlK3n00Uf5kz/5Ex5++OGBRLXQsfnjYwu84juPUnc8/vS6Q0wPUU8hZmZu5oor/g1nz36B73znJ1hY+Dyuq66P3i0zFd5x+V7uPLvCj333MT57doW2wmGhz2aIcZwBGPiNhHgR8O+klP84+PzXAaSU7+y75jPBNV8XQhjAKWC7HLLIm2++Wd59d/LDdj/7l7/PmXL6Dg6SQSaH9csefN15iHBJpDgREe0dIAZ+uDaO6H4UKc6QFUX5+aK95kPi9D0V+zXYYEXpfi9rv1Zu9JTsPScHPL1+VRt/Fn6l7DdBSImQMlrwNZG0wCyjBWGk//2ERGouaMFNj51H1Lcj3NHk2r/ajnBp6jae8JekSYEGOJrOaqFIPe879Q4sLfFjDz7IfLMV67dR3v4U26/6KrliHelp2O0KrlXGc3WkZyClNuSXcj7Oe07CdwrP4S+nf4xlfRpdOmxzl5hya5jSISdtdNzzIsjB0aQceM2FwtVnzvC7P/OrqWIIIb4jpbz5/Mc3c9zGXqC/En8MuGWja6SUjhBiBdgGrKnACiHeCrwV4MCBIfWPCFgoVTma3zXyuihvBJVvFqHoxkHpmiK9BlGghg6ixhKRXwI1P9+4XnPZe3DtNZG+3UYX9W124Xsu/H+DH3bYz2d7EiE8NATCpxF/fXYB4ZpoThHh5P3QEfM34TIMDIpeHhsXWzi4QuIhMV2XQ+cWmG01OHTuLDvqNQTQNOS6QMNeqvryfs586yeozJykMnOSfHEVw2yhmRaa1kQIry/U+tgbw7/2hXyBm9p/x/f1q3lUu5rT2g7qRoU2JqsUcEW/E1b0fbU4L1Kkb7pp2FUenwFkS86DklK+D3gf+AoqTaz/+yM/o2RNGTJkyHBx4uVji7yZJonjwP6+z/cFjw28JkjxTQPnNmV1GTJkyJBhorCZBPVt4AohxCEhhAm8EbjjvGvuAP5p8PHrgb8dVn/KkCFDhgzPXmxaii+oKf0i8BlAB/5USvmgEOK3gbullHcAfwJ8QAjxOLCIT2IZMmTIkOEixKbWoKSUdwJ3nvfY2/s+bgM/sZlrypAhQ4YMk4msk0SGDBkyZJhIZASVIUOGDBkmEhlBZciQIUOGiURGUBkyZMiQYSKREVSGDBkyZJhIbFovvnFBCLEAPJ0yzDzntVPaYsjWf2GRrf/CIlv/hYWK9V8ipVw3l2bLE5QKCCHuHtSocKsgW/+FRbb+C4ts/RcW41x/luLLkCFDhgwTiYygMmTIkCHDRCIjKB/vu9ALSIls/RcW2fovLLL1X1iMbf1ZDSpDhgwZMkwkMgWVIUOGDBkmEhlBZciQIUOGiURGUAGEEL8rhPi+EOJ7Qoi/FkLMXOg1jYIQ4uVCiEeEEI8LIX7tQq8nLoQQ+4UQXxRCPCSEeFAI8bYLvaa4EELoQoh7hBCfvNBriQshxIwQ4mPB+/5hIcSLLvSa4kAI8a+C980DQogPCyEKF3pNoyCE+FMhxBkhxAN9j80JIT4nhHgs+H/2Qq5xGDZY/9j2zoygevgccJ2U8nrgUeDXL/B6hkIIoQPvBV4BXAPcLoS45sKuKjYc4F9LKa8BXgj8whb8Gd4GPHyhF5EQ7wHuklJeDTyXLfRzCCH2Av8SuFlKeR3+jLmtMD/uz1k/I/3XgC9IKa8AvhB8Pqn4c9avf2x7Z0ZQAaSUn5VSOsGn38AfST/JeAHwuJTySSllB/gI8OoLvKZYkFKelFJ+N/i4hr9B7r2wq4oOIcQ+4EeAP77Qa4kLIcQ08BL8IaFIKTtSyuULuqj4MICiEMIASsCJC7yekZBSfhl/GGs/Xg38r+Dj/wX8+GauKQ4GrX+ce2dGUIPxs8CnL/QiRmAvcLTv82Nsoc39fAghDgLPA755gZcSB+8G/n+Ad4HXkQSHgAXgz4IU5R8LIcoXelFRIaU8DvwX4BngJLAipfzshV1VYuyUUp4MPj4F7LyQi0kJpXvnRUVQQojPB/nq8/+9uu+a38RPPX3owq304oIQogL8FfBLUsrVC72eKBBC/ChwRkr5nQu9loQwgBuBP5JSPg9oMNmppTUI6jSvxifaPUBZCPHmC7uq9JD+uZ8tefZnHHvnpo58v9CQUv7wsOeFED8N/Cjwj+TkHxA7Duzv+3xf8NiWghAih09OH5JSfvxCrycGfhB4lRDilUABmBJCfFBKuVU2yWPAMSllqFg/xhYiKOCHgaeklAsAQoiPAz8AfPCCrioZTgshdkspTwohdgNnLvSC4mJce+dFpaCGQQjxcvx0zauklM0LvZ4I+DZwhRDikBDCxC8Q33GB1xQLQgiBXwN5WEr5exd6PXEgpfx1KeU+KeVB/Nf+b7cQOSGlPAUcFUJcFTz0j4CHLuCS4uIZ4IVCiFLwPvpHbCGTx3m4A/inwcf/FPjEBVxLbIxz78w6SQQQQjwO5IFzwUPfkFL+vxdwSSMR3L2/G9/B9KdSyv9wYVcUD0KIFwN/D9xPr47zG1LKOy/cquJDCHEr8CtSyh+9wEuJBSHEDfgGDxN4EvgZKeXSBV1UDAgh3gH8JH5a6R7g56SU1oVd1XAIIT4M3Io/ouI08FvA3wAfBQ7gjw56g5TyfCPFRGCD9f86Y9o7M4LKkCFDhgwTiSzFlyFDhgwZJhIZQWXIkCFDholERlAZMmTIkGEikRFUhgwZMmSYSGQElSFDhgwZJhIZQWXIkCFDholERlAZMmTIkGEikRFUhgwTimBW1suCj/+9EOIPLvSaMmTYTFxUvfgyZNhi+C3gt4UQO/A7vb/qAq8nQ4ZNRdZJIkOGCYYQ4u+ACnBrMDMrQ4aLBlmKL0OGCYUQ4jnAbqCTkVOGixEZQWXIMIEIxi58CH/mUT3oGJ0hw0WFjKAyZJgwCCFKwMeBfy2lfBj4Hfx6VIYMFxWyGlSGDBkyZJhIZAoqQ4YMGTJMJDKCypAhQ4YME4mMoDJkyJAhw0QiI6gMGTJkyDCRyAgqQ4YMGTJMJDKCypAhQ4YME4mMoDJkyJAhw0Ti/w9msFrMp6qnTQAAAABJRU5ErkJggg==\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"
|
|
},
|
|
{
|
|
"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 eigenvalues 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
|
|
}
|