Commit 932155c6 authored by psd's avatar psd
Browse files

Added_plt_sol_11

parent a4b05839
%% Cell type:code id: tags:
``` python
import numpy as np
from matplotlib.patches import Rectangle
import matplotlib.pyplot as plt
```
%% Cell type:markdown id: tags:
## Theoretical background
$\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$
Notation:
$[\,]_{nm}$ = matrix of dimensions $n\times m$
- h = $[\phi_0]_{nn}$
- t = $[\phi_{+1}]_{mnn}, \ m=1$ for first nn hopping
For first nn:
- $c(k) = e^{(j\,k\cdot R)} \, ,k=(0,0,0)...(2\pi,0,0) \, , R=(1,0,0) $
- $[h(k)]_{nn} = [h]_{nn} + c(k) \cdot [t]_{0nn} + (c(k) \cdot [t]_{0nn})^H$
- $E(k)_n=eigvalsh([h(k)]_{nn})$
%% Cell type:code id: tags:
``` python
def bands(h,t,K):
'''
input:
h = [\phi_0]_nn
t = [\phi_1]_mnn
variables:
'''
kpts = np.linspace(0,K,300)
E = np.zeros((len(kpts),len(h)))
R = [1,0,0]
for k, kpt in enumerate(kpts):
c_k = np.exp(1j*2*np.pi*np.dot(R,[kpt,0,0]))
h_k = h + np.sum(c_k*t,axis=0) + np.conj(c_k)*np.sum(np.swapaxes(t,1,2),axis=0)
E[k] = np.linalg.eigvalsh(h_k)
return kpts,E
```
%% Cell type:code id: tags:
``` python
def make_ht(e,tau):
dim = e.ndim
if dim>0:
dim = len(e)
h = np.zeros((dim,dim),complex)
t = np.zeros((dim,dim),complex)
h.flat[::dim+1]=e
h.flat[1::dim+1]=tau[0]
h.flat[dim::dim+1]=np.conj(tau[0])
t[-1,0]=tau[1]
else:
h = np.array(e).reshape(1,1)
t = np.array(tau).reshape(1,1)
return h,np.expand_dims(t,0)
```
%% Cell type:code id: tags:
``` python
def visulize(ax,h,t,replica=5):
import matplotlib.cm as cm
colors = cm.hot(np.diag(h).real)
colors = np.tile(colors,(replica,1))
dim = len(h)
if dim>1:
uc = np.arange(dim)*1/abs(h[0,1].real)
colors = cm.hot(np.diag(h).real)
colors = np.tile(colors,(replica,1))
a = 1/abs(t[0,-1,0].real)+1/abs(h[0,1].real)
atoms = [uc[i]+(j*a) for j in range(replica) for i in range(dim)]
else:
uc = 0
a = 1/abs(t[0,-1,0].real)
atoms = [uc+(j*a) for j in range(replica)]
rect = Rectangle((-1/abs(2*t[0,-1,0].real),-0.25),a,0.5,
linewidth=1,edgecolor='r',facecolor='none')
ax.add_patch(rect)
ax.set_ylim((-1,1))
ax.scatter(atoms,np.zeros(dim*5),100,c=colors)
```
%% Cell type:code id: tags:
``` python
tau = np.array((0.2,-0.2))
e = np.array((-0.25,-0.1))
h, t = make_ht(e,tau)
kpts,E = bands(h,t,1)
```
%% Cell type:code id: tags:
``` python
fig, axs = plt.subplots(1,2,figsize=(15,5))
visulize(axs[0],h,t)
axs[1].plot(kpts,E)
```
%%%% Output: execute_result
[<matplotlib.lines.Line2D at 0x7fd41a787278>,
<matplotlib.lines.Line2D at 0x7fd418708e80>]
%%%% Output: display_data
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA3wAAAEzCAYAAABqhQGyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xd8VFXex/HPL50UekAEQkdBRZAACorSsQEiCioKiiIo67Prs7u69tVn7avs2iiCIqKA2FBZERAsIEpABAHpLQISirQAaef5445ujAkEksxNJt/363Vfmbn3zMx3Z6/M/Oace4455xAREREREZHQE+Z3ABERERERESkZKvhERERERERClAo+ERERERGREKWCT0REREREJESp4BMREREREQlRKvhERERERERCVLEUfGY23sx2mtn3BRw3M/u3ma0zs2Vmdk6uY4PMbG1gG1QceURERERERKT4evheBXoe4/jFQJPANhR4CcDMqgIPAu2AtsCDZlalmDKJiIiIiIiUa8VS8DnnPgf2HKNJb+A151kIVDazWkAPYJZzbo9zbi8wi2MXjiIiIiIiIlJIwbqGrzawNdf91MC+gvaLiIiIiIhIEUUE6XUsn33uGPt//wRmQ/GGgxIXF9f69NNPL750IiJSKi1evHiXcy7R7xxlRfXq1V39+vX9jiEiIkFQ2M/IYBV8qUDdXPfrANsC+y/Ks39efk/gnBsDjAFITk52KSkpJZFTRERKETPb7HeGsqR+/fro81FEpHwo7GdksIZ0TgduCMzWeS6wzzm3HZgJdDezKoHJWroH9omIiIiIiEgRFUsPn5m9iddTV93MUvFm3owEcM6NAmYAlwDrgHTgxsCxPWb2CLAo8FQPO+eONfmLiIiIiIiIFFKxFHzOuWuOc9wBtxdwbDwwvjhyiIiIiIiIyH8Fa0iniIiIiIiIBJkKPhERERERkRClgk9ERERERCREqeATEREREREJUSr4REREREREQpQKPhERERERkRBVLMsyiIiIiIgUu5wcOLoPjuTe9kN2BuRkQ04W5GR6bcOjISIq8DcaYipBhSreFlMZwtTPIeWTCj4RERER8YdzsP9H2LUWdq+DPRu9+we2w/5t3t+crKK/joVBhapQqTZUqhvY6kDVBpB4OlSpD2HhRX8dkVJIBZ+IiIiIlLzM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)
%% Cell type:code id: tags:
``` python
```
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment