Dear Kwang users,
I have recently started using Kwant for making model Hamiltonian. It is really very good python package. I have started learning some tutorials. I would like to know if making tight-binding Hamiltonian with multi atom and multi orbital basis possible using Kwant. I can not find such example in documentation. I would like to then try to make a honeycomb lattice with two atoms and each atom with two basis, e.g., px, py.
Please help me to know about this in more detail. Thanking you,
Santu B
Sent from my iPad
Dear Santu,
Yes you can easily do that with Kwant.
- An example of 2 atoms per unit cell is given in https://kwant-project.org/doc/1/tutorial/graphene https://kwant-project.org/doc/1/tutorial/graphene
- An example of multiorbital (in this case it is spin but orbitals are totally equivalent) is given in https://kwant-project.org/doc/1/tutorial/spin_potential_shape https://kwant-project.org/doc/1/tutorial/spin_potential_shape
Best regards,
Xavier
Le 22 janv. 2018 à 11:15, Santu Baidya santubaidya2009@gmail.com a écrit :
Dear Kwang users,
I have recently started using Kwant for making model Hamiltonian. It is really very good python package. I have started learning some tutorials. I would like to know if making tight-binding Hamiltonian with multi atom and multi orbital basis possible using Kwant. I can not find such example in documentation. I would like to then try to make a honeycomb lattice with two atoms and each atom with two basis, e.g., px, py.
Please help me to know about this in more detail. Thanking you,
Santu B
Sent from my iPad
Santu,
Take a look at the graphene tutorial for honeycomb: https://kwant-project.org/doc/1/tutorial/graphene
In order to add orbital degrees of freedom you need to introduce a spinor notation as the superconducting example: https://kwant-project.org/doc/1/tutorial/superconductors
Best,
Em seg, 22 de jan de 2018 08:15, Santu Baidya santubaidya2009@gmail.com escreveu:
Dear Kwang users,
I have recently started using Kwant for making model Hamiltonian. It is really very good python package. I have started learning some tutorials. I would like to know if making tight-binding Hamiltonian with multi atom and multi orbital basis possible using Kwant. I can not find such example in documentation. I would like to then try to make a honeycomb lattice with two atoms and each atom with two basis, e.g., px, py.
Please help me to know about this in more detail. Thanking you,
Santu B
Sent from my iPad
First of all thank you very much for your reply. I have been trying to follow your suggestions. Somehow I can not get it. Sorry for this. However, according to the manual, the Hopping kind is defined only between sites, (not orbitals !) as mentioned on page no. 28.
" A hopping is defined using two sites. If several hoppings are added at once, these two sites should be encapsulated in a tuple. In particular, one must write: syst[((lat(0,j+1), lat(0, j)) for j in range(W-1)] = ... " To make a multi-orbital Hamiltonian one needs hopping from more than two orbital of one site to more than two orbital of another site. Please give me one small documentation of such situation. For example A site (px) to B site ( py) and B site (px) to A site (py).
The example you gave about spin_orbit.py, there is the definition of sigma_0,1,2 Pauli spin matrix only 2by2 matrices. If I want 4 orbital tight binding Hamiltonian what about then.
Please tell me about this.
Thanking you,
Santu Baidya
On 22 January 2018 at 19:30, Antonio Lucas Rigotti Manesco < antoniolrm@usp.br> wrote:
Santu,
Take a look at the graphene tutorial for honeycomb: https://kwant-project.org/doc/1/tutorial/graphene
In order to add orbital degrees of freedom you need to introduce a spinor notation as the superconducting example: https://kwant-project.org/doc/ 1/tutorial/superconductors
Best,
Em seg, 22 de jan de 2018 08:15, Santu Baidya santubaidya2009@gmail.com escreveu:
Dear Kwang users,
I have recently started using Kwant for making model Hamiltonian. It is really very good python package. I have started learning some tutorials. I would like to know if making tight-binding Hamiltonian with multi atom and multi orbital basis possible using Kwant. I can not find such example in documentation. I would like to then try to make a honeycomb lattice with two atoms and each atom with two basis, e.g., px, py.
Please help me to know about this in more detail. Thanking you,
Santu B
Sent from my iPad
Dear Santu,
Simply use 4 x 4 matrices instead of 2 x 2 matrices and it shall work.
Best, Xavier
Le 24 janv. 2018 à 03:42, Santu Baidya santubaidya2009@gmail.com a écrit :
First of all thank you very much for your reply. I have been trying to follow your suggestions. Somehow I can not get it. Sorry for this. However, according to the manual, the Hopping kind is defined only between sites, (not orbitals !) as mentioned on page no. 28.
" A hopping is defined using two sites. If several hoppings are added at once, these two sites should be encapsulated in a tuple. In particular, one must write: syst[((lat(0,j+1), lat(0, j)) for j in range(W-1)] = ... " To make a multi-orbital Hamiltonian one needs hopping from more than two orbital of one site to more than two orbital of another site. Please give me one small documentation of such situation. For example A site (px) to B site ( py) and B site (px) to A site (py).
The example you gave about spin_orbit.py, there is the definition of sigma_0,1,2 Pauli spin matrix only 2by2 matrices. If I want 4 orbital tight binding Hamiltonian what about then.
Please tell me about this.
Thanking you,
Santu Baidya
On 22 January 2018 at 19:30, Antonio Lucas Rigotti Manesco <antoniolrm@usp.br mailto:antoniolrm@usp.br> wrote: Santu,
Take a look at the graphene tutorial for honeycomb: https://kwant-project.org/doc/1/tutorial/graphene https://kwant-project.org/doc/1/tutorial/graphene In order to add orbital degrees of freedom you need to introduce a spinor notation as the superconducting example: https://kwant-project.org/doc/1/tutorial/superconductors https://kwant-project.org/doc/1/tutorial/superconductors Best,
Em seg, 22 de jan de 2018 08:15, Santu Baidya <santubaidya2009@gmail.com mailto:santubaidya2009@gmail.com> escreveu: Dear Kwang users,
I have recently started using Kwant for making model Hamiltonian. It is really very good python package. I have started learning some tutorials. I would like to know if making tight-binding Hamiltonian with multi atom and multi orbital basis possible using Kwant. I can not find such example in documentation. I would like to then try to make a honeycomb lattice with two atoms and each atom with two basis, e.g., px, py.
Please help me to know about this in more detail. Thanking you,
Santu B
Sent from my iPad
Thank you for your suggestion. Understanding the way you said, I made the tutorial code for band_structure.py with 4 x 4 Hamiltonian (attached to this mail). I have defined tau_x and tau_z as 4 x 4 Hamiltonian as done in superconductivity.py tutorial. I do not know whether that is the right way to make multiorbital code here or not. So, please tell me looking at the attached code. But the problem is how to specify which two orbitals belong to one site and other two orbitals belong to another site (suppose there are two sites)? Also if there is any way to give orbital symmetry specifically, like px, py or dxy etc. Even If eigenstate of the Hamiltonian can be plotted in real-space ?
Thanking you,
Santu B
On 24 January 2018 at 16:50, Xavier Waintal xavier.waintal@cea.fr wrote:
Dear Santu,
Simply use 4 x 4 matrices instead of 2 x 2 matrices and it shall work.
Best, Xavier
Le 24 janv. 2018 à 03:42, Santu Baidya santubaidya2009@gmail.com a écrit :
First of all thank you very much for your reply. I have been trying to follow your suggestions. Somehow I can not get it. Sorry for this. However, according to the manual, the Hopping kind is defined only between sites, (not orbitals !) as mentioned on page no. 28.
" A hopping is defined using two sites. If several hoppings are added at once, these two sites should be encapsulated in a tuple. In particular, one must write: syst[((lat(0,j+1), lat(0, j)) for j in range(W-1)] = ... " To make a multi-orbital Hamiltonian one needs hopping from more than two orbital of one site to more than two orbital of another site. Please give me one small documentation of such situation. For example A site (px) to B site ( py) and B site (px) to A site (py).
The example you gave about spin_orbit.py, there is the definition of sigma_0,1,2 Pauli spin matrix only 2by2 matrices. If I want 4 orbital tight binding Hamiltonian what about then.
Please tell me about this.
Thanking you,
Santu Baidya
On 22 January 2018 at 19:30, Antonio Lucas Rigotti Manesco < antoniolrm@usp.br> wrote:
Santu,
Take a look at the graphene tutorial for honeycomb: https://kwant-project.org/doc/1/tutorial/graphene
In order to add orbital degrees of freedom you need to introduce a spinor notation as the superconducting example: https://kwant-project.org/doc/ 1/tutorial/superconductors
Best,
Em seg, 22 de jan de 2018 08:15, Santu Baidya santubaidya2009@gmail.com escreveu:
Dear Kwang users,
I have recently started using Kwant for making model Hamiltonian. It is really very good python package. I have started learning some tutorials. I would like to know if making tight-binding Hamiltonian with multi atom and multi orbital basis possible using Kwant. I can not find such example in documentation. I would like to then try to make a honeycomb lattice with two atoms and each atom with two basis, e.g., px, py.
Please help me to know about this in more detail. Thanking you,
Santu B
Sent from my iPad
Hi,
Thank you for your suggestion. Understanding the way you said, I made the tutorial code for band_structure.py with 4 x 4 Hamiltonian (attached to this mail). I have defined tau_x and tau_z as 4 x 4 Hamiltonian as done in superconductivity.py tutorial. I do not know whether that is the right way to make multiorbital code here or not. So, please tell me looking at the attached code.
Your script correctly constructs a multi-orbital system. I am not sure what this system corresponds to physically, but this is a question that only you can answer because it is your model.
But the problem is how to specify which two orbitals belong to one site and other two orbitals belong to another site (suppose there are two sites)?
I am not sure what you mean. When you write a line like
syst[lat(i, j)] = tau_z
you are saying that the Hamiltonian on site 'lat(i, j)' is the (matrix) value 'tau_z'. This implies that you have several orbitals (4 in your case) on site 'lat(i, j)'. There is no longer the concept of your 4 orbitals being "built" from others (e.g. s & p orbitals "outer producted" with spin up & spin down); you have to keep track of what your orbitals mean.
Also if there is any way to give orbital symmetry specifically, like px, py or dxy etc.
You will have to specify this symmetry yourself by making sure that your matrix elements satisfy the appropriate symmetry.
Even If eigenstate of the Hamiltonian can be plotted in real-space ?
You can plot, for example, the square magnitude of a wavefunction using 'kwant.plotter.map'; is this what you mean?
I'm not sure if I clarified anything for you, but if you still have doubts don't hesitate to post back in this thread.
Happy Kwanting,
Joe