Exercise-11.ipynb 38.7 KB
Newer Older
spiasko's avatar
spiasko committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from matplotlib.patches import Rectangle\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Theoretical background\n",
    "\n",
    "$\\Psi_k = \\frac{1}{\\sqrt{N}} \\sum_j e^{(j\\,k\\cdot r_j)} \\, \\phi_j = \\frac{1}{\\sqrt{N}} \\sum_j c_k(r_j) \\, \\phi_j$\n",
    "\n",
    "Notation:\n",
    "$[\\,]_{nm}$ = matrix of dimensions $n\\times m$\n",
    "\n",
    "- h = $[\\phi_0]_{nn}$\n",
    "- t = $[\\phi_{+1}]_{mnn}, \\ m=1$ for first nn hopping\n",
    "\n",
    "For first nn:\n",
    "\n",
    "- $c(k) = e^{(j\\,k\\cdot R)} \\, ,k=(0,0,0)...(2\\pi,0,0) \\, , R=(1,0,0) $\n",
    "\n",
    "- $[h(k)]_{nn} = [h]_{nn} + c(k) \\cdot [t]_{0nn} + (c(k) \\cdot [t]_{0nn})^H$\n",
    "\n",
    "- $E(k)_n=eigvalsh([h(k)]_{nn})$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "def bands(h,t,K):\n",
    "    '''\n",
    "    input:\n",
    "        h = [\\phi_0]_nn\n",
    "        t = [\\phi_1]_mnn \n",
    "    variables:\n",
    "    \n",
    "    '''\n",
    "    kpts = np.linspace(0,K,300)\n",
    "    E = np.zeros((len(kpts),len(h)))\n",
    "    R = [1,0,0]\n",
    "    for k, kpt in enumerate(kpts):\n",
    "        c_k  = np.exp(1j*2*np.pi*np.dot(R,[kpt,0,0]))\n",
    "        h_k = h + np.sum(c_k*t,axis=0) + np.conj(np.sum(c_k*t,axis=0))\n",
    "        E[k] = np.linalg.eigvalsh(h_k)\n",
    "    return kpts,E"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def make_ht(e,tau):\n",
    "    dim = e.ndim\n",
    "    if dim>0:\n",
    "        dim = len(e)\n",
    "        h = np.zeros((dim,dim),complex)\n",
    "        t = np.zeros((dim,dim),complex)\n",
    "        h.flat[::dim+1]=e\n",
    "        h.flat[1::dim+1]=tau[0]\n",
    "        h.flat[dim::dim+1]=np.conj(tau[0])\n",
    "        t[-1,0]=tau[1]\n",
    "    else:\n",
    "        h = np.array(e).reshape(1,1)\n",
    "        t = np.array(tau).reshape(1,1)\n",
    "    return h,np.expand_dims(t,0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def visulize(ax,h,t,replica=5):\n",
    "    \n",
    "    import matplotlib.cm as cm\n",
    "    colors = cm.hot(np.diag(h).real)\n",
    "    colors = np.tile(colors,(replica,1))\n",
    "    \n",
    "    dim   = len(h)\n",
    "    if dim>1:\n",
    "        uc     = np.arange(dim)*1/abs(h[0,1].real)\n",
    "        colors = cm.hot(np.diag(h).real)\n",
    "        colors = np.tile(colors,(replica,1))\n",
    "        a      = 1/abs(t[0,-1,0].real)+1/abs(h[0,1].real)\n",
    "        atoms  = [uc[i]+(j*a) for j in range(replica) for i in range(dim)]\n",
    "    else:\n",
    "        uc    = 0\n",
    "        a     = 1/abs(t[0,-1,0].real)\n",
    "        atoms = [uc+(j*a) for j in range(replica)]\n",
    "    rect = Rectangle((-1/abs(2*t[0,-1,0].real),-0.25),a,0.5,\n",
    "             linewidth=1,edgecolor='r',facecolor='none')\n",
    "    ax.add_patch(rect)\n",
    "    ax.set_ylim((-1,1))\n",
    "    ax.scatter(atoms,np.zeros(dim*5),100,c=colors)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Do not run\n",
    "\n",
    "example 0:\n",
    "\n",
    "        0.1   0.1   \n",
    "... | x  |  x  |  x | ...\n",
    "   \n",
    "tau=np.array((0.2)), 0.2 = inter-cell hopping term <br>\n",
    "e=np.array((0.1)),   0.1 = energy of atom <br>\n",
    "\n",
    "example 1:\n",
    "\n",
    "        0.2  0.1  0.2  0.1  0.2   \n",
    "... |  x   x  |  x   x  |  x   x  |...\n",
    "   \n",
    "tau=np.array((0.2,0.1)) 0.2 = intra-cell hopping term, 0.1 = inter-cell hopping term <br>\n",
    "e=np.array((0.1,0.1))   0.1 = energy of atom , 0.1 = energy of atom <br>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [],
   "source": [
    "tau = np.array((0.00005,-0.2))\n",
    "e   = np.array((-0.1,-0.2))\n",
    "h, t = make_ht(e,tau)\n",
    "kpts,E = bands(h,t,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f6584052ac8>,\n",
       " <matplotlib.lines.Line2D at 0x7f658405b390>]"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axs = plt.subplots(1,2,figsize=(15,5))\n",
    "visulize(axs[0],h,t)\n",
    "axs[1].plot(kpts,E)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "one hopping term has to be nearly zero I guess.\n"
   ]
  }
 ],
 "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.6.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}