molecule.py
molecule.py
—
Python Source,
0Kb
File contents
# -*- coding: utf-8 -*-
"""
Created on Thu Jun 25 16:44:46 2015
@author: walt
"""
import numpy as np
import pylab as plt
eps0 = -0.25
eps1 = 0.25
tau = 0.5
eta = 0.25
eta = 0.00001
H = np.array([[eps0, tau], [tau, eps1]])
E = np.linspace(-1, 1, 501)
D = np.empty((len(E), 2))
for i, e in enumerate(E):
G = np.linalg.inv((e + 1j * eta) * np.eye(2) - H)
A = 1j * (G - G.conj().T)
D[i, 0] = A[0, 0].real
D[i, 1] = A[1, 1].real
D = D.T
plt.plot(E, D[0], label='LDOS(0)', color='r')
plt.plot(E, D[1], label='LDOS(1)', color='b')
# self energy treatment
Sigma = tau**2 / (E - eps1 + 1j * eta)
g = 1.0 / (E + 1j * eta - eps0 - Sigma)
a = 1j * (g - g.conj())
plt.plot(E, a.real, '--', label='g(0)', color='r', lw=2)
plt.legend()
plt.xlabel('energy [eV]')
plt.ylabel('LDOS')
plt.show()