help on constructing a one-dimensional tight-binding chain using kwant
Dear kwant developers, I am a new user of kwant package. I just tried to build a very simple 10-site one-dimensional chain using kwant. It seems OK to assign the Hamiltonian matrix’s on-site elements, while the assignment of the matrix’s off-site elements is always problematic. Below is my first kwant script: alpha = 0 beta = -1 a = 1 lat = kwant.lattice.chain(a=1,name='10_site_1D_chain',norbs=1) L = 10 for i in range(L): for j in range(L): if (i == j): syst[lat(i)]=alpha print("ON-SITE HAMILTONIAN MATRIX ELEMENT: ",i," ",j," ",syst[lat(i)]) else: syst[lat(i),lat(j)]=beta print("OFF-SITE HAMILTONIAN MATRIX ELEMENT: ",i," ",j," ",syst[lat(i),lat(j)]); syst[lat(j),lat(i)]=beta print("OFF-SITE HAMILTONIAN MATRIX ELEMENT: ",j," ",i," ",syst[lat(j),lat(i)]); Please let me know how to fix this seemly simple problem. Thank you very much for your help in advance. Hanning Chen, Ph.D. Assistant Professor Department of Chemistry George Washington University Washington, DC 20052 http://www.chenlagbwu.net
Dear Chen,
1) You need to define your system: syst=kwant.Builder()
2) You need to define your sites before the hoppings: syst[(lat(i) for i in
range(L))]=alpha
then you can put your hoppings and then play with your system.
Please check the documentation. You will find a lot of very helpful and
clear examples.
I hope this helps.
Regards,
Adel
On Mon, Mar 18, 2019 at 11:03 AM Hanning Chen
Dear kwant developers,
I am a new user of kwant package.
I just tried to build a very simple 10-site one-dimensional chain using kwant. It seems OK to assign the Hamiltonian matrix’s on-site elements, while the assignment of the matrix’s off-site elements is always problematic.
Below is my first kwant script:
alpha = 0 beta = -1
a = 1 lat = kwant.lattice.chain(a=1,name='10_site_1D_chain',norbs=1)
L = 10
for i in range(L): for j in range(L):
if (i == j): syst[lat(i)]=alpha print("ON-SITE HAMILTONIAN MATRIX ELEMENT: ",i," ",j," ",syst[lat(i)]) else: syst[lat(i),lat(j)]=beta print("OFF-SITE HAMILTONIAN MATRIX ELEMENT: ",i," ",j," ",syst[lat(i),lat(j)]); syst[lat(j),lat(i)]=beta print("OFF-SITE HAMILTONIAN MATRIX ELEMENT: ",j," ",i," ",syst[lat(j),lat(i)]);
Please let me know how to fix this seemly simple problem.
Thank you very much for your help in advance.
Hanning Chen, Ph.D. Assistant Professor Department of Chemistry George Washington University Washington, DC 20052 http://www.chenlagbwu.net
-- Abbout Adel
participants (2)
-
Abbout Adel
-
Hanning Chen