Band Structure in an Electric Field (Lead vs System)
![](https://secure.gravatar.com/avatar/84126d668eee34438515acc60ef01c37.jpg?s=120&d=mm&r=g)
Hello All, I am trying to calculate the band structure of my system in the presence of an external electric field. From what I understand, I need to add the electric field as a potential in the onsite energy for the Hamiltonian. Now when I calculate the band structure, I have to use kwant.plotter.bands(sys.leads[0]) to avoid the code throwing up an error. Whereas what I want to be plotting is kwant.plotter.bands(sys), i.e. the band structure of the system and not the leads. The latter method gives an error (code pasted below) of the following kind. TypeError: Expecting an instance of InfiniteSystem. I have also gone through the answer at https://mailman-mail5.webfaction.com/pipermail/kwant-discuss/2016-June/00090... . That code by Anton changes the band structure for different values of electric fields (which is what one would expect), whereas the band structure of sys.leads[0] (in my code) does not change at all even on significantly changing the field. I have a few questions if someone can help me with them. 1) What is the difference between plotting a band structure for sys and sys.leads[0]? 2) How can I plot the band structure of my system (and not its leads) from the code below? Where am I going wrong? How do I avoid the error? *import kwant* *a = 2.46* *lat = kwant.lattice.honeycomb(a = a)* *p, q = lat.sublattices* *def hopping(sitei, sitej):* * return -2.8* *def onsite(site):* * x, y = site.pos* * return -0 + 1*(y)* *def central_region(pos):* * x, y = pos* * return abs(x) < 5*a + 1e-8 and abs(y) < 5*a + 1e-8* *sys = kwant.Builder()* *sys[lat.shape(central_region, (0, 0))] = onsite* *sys[lat.neighbors()] = hopping* *sym = kwant.TranslationalSymmetry((-a, 0))* *lead = kwant.Builder(sym)* *lead[lat.shape(lambda s: abs(s[1]) < 5*a + 1e-8, (0, 0))] = 0* *lead[lat.neighbors()] = hopping* *sys.attach_lead(lead)* *sys.attach_lead(lead.reversed())* *kwant.plotter.bands(sys.finalized().leads[1]) # This works fine* *#kwant.plotter.bands(sys.finalized()) # This throws up an error* Any help would be greatly appreciated! Shivang Agarwal
![](https://secure.gravatar.com/avatar/cfab7abb22a56e6c7e3b3980cb0c50b7.jpg?s=120&d=mm&r=g)
Shivang Agarwal wrote:
1) What is the difference between plotting a band structure for sys and sys.leads[0]?
The difference is that plotting the band structure for sys.leads[0] will work and for sys it won't.
2) How can I plot the band structure of my system (and not its leads) from the code below? Where am I going wrong? How do I avoid the error?
Band structures only make sense for spatially periodic systems where it is possible to define a momentum. What is it that you would like to plot for your system? Christoph
![](https://secure.gravatar.com/avatar/84126d668eee34438515acc60ef01c37.jpg?s=120&d=mm&r=g)
Thanks for the quick reply. I want to plot the band structure for my system, i.e. a quantum dot. I am still confused as to what code I need to write to plot that, or whether sys.leads[0] is actually correct for what I need. On Mon, Jun 25, 2018 at 4:46 PM Christoph Groth <christoph.groth@cea.fr> wrote:
Shivang Agarwal wrote:
1) What is the difference between plotting a band structure for sys and sys.leads[0]?
The difference is that plotting the band structure for sys.leads[0] will work and for sys it won't.
2) How can I plot the band structure of my system (and not its leads) from the code below? Where am I going wrong? How do I avoid the error?
Band structures only make sense for spatially periodic systems where it is possible to define a momentum. What is it that you would like to plot for your system?
Christoph
-- *Shivang Agarwal* Junior Undergraduate Discipline of Electrical Engineering IIT Gandhinagar Contact: +91-9869321451
![](https://secure.gravatar.com/avatar/8c242917680bffd3a50af4ae0f1b6c1d.jpg?s=120&d=mm&r=g)
Hi,
I want to plot the band structure for my system, i.e. a quantum dot. I am still confused as to what code I need to write to plot that, or whether sys.leads[0] is actually correct for what I need.
Calculating a band structure for a quantum dot is not mathematically well-defined. A quantum dot does not have translational symmetry, so momentum is not a good quantum number. You cannot label the eigenstates of your Hamiltonian with a unique momentum 'k', so plotting the associated eigenvalues as a function of 'k' (i.e. the band structure) is not possible. Even if you attach leads to your quantum dot you'll still have the same problem. While the leads *individually* have translational symmetry, the combination of leads and quantum dot does not, because the quantum dot breaks the translational symmetry. Given this, it is difficult for us to interpret what you mean when you say you want to plot "the band structure for your system". If you provide more context for what your end goal is, we may be able to help more. Happy Kwanting, Joe
![](https://secure.gravatar.com/avatar/84126d668eee34438515acc60ef01c37.jpg?s=120&d=mm&r=g)
Thank you Joesph. That clarifies my understanding of band structure and translational symmetry. My end goal is to see changes in the band structure as the electric field is varied. For an external magnetic field (wherein I modify the hopping parameter only) the band structure changes as the field is changed. I want to be able to see changes with an electric field as well. What should be my approach for this. Thank you for the help! Shivang On Tue, Jun 26, 2018 at 3:32 AM Joseph Weston <joseph.weston08@gmail.com> wrote:
Hi,
I want to plot the band structure for my system, i.e. a quantum dot. I am still confused as to what code I need to write to plot that, or whether sys.leads[0] is actually correct for what I need.
Calculating a band structure for a quantum dot is not mathematically well-defined. A quantum dot does not have translational symmetry, so momentum is not a good quantum number. You cannot label the eigenstates of your Hamiltonian with a unique momentum 'k', so plotting the associated eigenvalues as a function of 'k' (i.e. the band structure) is not possible.
Even if you attach leads to your quantum dot you'll still have the same problem. While the leads *individually* have translational symmetry, the combination of leads and quantum dot does not, because the quantum dot breaks the translational symmetry.
Given this, it is difficult for us to interpret what you mean when you say you want to plot "the band structure for your system". If you provide more context for what your end goal is, we may be able to help more.
Happy Kwanting,
Joe
-- *Shivang Agarwal* Junior Undergraduate Discipline of Electrical Engineering IIT Gandhinagar Contact: +91-9869321451
![](https://secure.gravatar.com/avatar/8c242917680bffd3a50af4ae0f1b6c1d.jpg?s=120&d=mm&r=g)
Thank you Joesph. That clarifies my understanding of band structure and translational symmetry.
My end goal is to see changes in the band structure as the electric field is varied. For an external magnetic field (wherein I modify the hopping parameter only) the band structure changes as the field is changed. I want to be able to see changes with an electric field as well. What should be my approach for this.
As previously stated, a system without translational symmetry *does not have a band structure*, so asking to calculate it is a task that is doomed to fail. It is analogous to someone asking what the color of an electron is: the question is predicated on a false assumption, so there is no correct answer! I would recommend reading a book on quantum transport to get a good grasp of the fundamentals. The book by S. Datta [1] is quite reasonable. Happy Kwanting, Joe [1]: https://doi.org/10.1017/CBO9781139164313
![](https://secure.gravatar.com/avatar/d40d35463c8a57ae9ce3b5cd8b2b5f9a.jpg?s=120&d=mm&r=g)
Hi, If you really want to see the effects of an electric field or a magnetic field on a band structure, you need to construct the same thing as your quantum dot, but with translationnal symmetry in at least one direction. Then you can see the band structure, and you can consider that adding boundaries (thus breaking your translationnal invariance) will discretize your spectrum in a certain way. In the process, you need to make sure that your electric potential gradient respects the translationnal symmetry, which is ok if you take it to be orthogonal to your translation symmetry vector(s). For the magnetic field, you need to find a way to include the Aharonov-Bohm geometric phase in your tight-binding model. You can look for "Peierls substitution" if you want to see how it is done. For your information, you should note that the purpose of this mailing list is to help with issues related to Kwant, but not really related to physics itself. Best regards, Alexandre BERNARD
![](https://secure.gravatar.com/avatar/84126d668eee34438515acc60ef01c37.jpg?s=120&d=mm&r=g)
Thank you Alexandre for the help! I will keep the purpose of the mailing list in mind for future. On Wed, Jun 27, 2018 at 4:11 AM <alexandre.bernard1@u-psud.fr> wrote:
Hi,
If you really want to see the effects of an electric field or a magnetic field on a band structure, you need to construct the same thing as your quantum dot, but with translationnal symmetry in at least one direction. Then you can see the band structure, and you can consider that adding boundaries (thus breaking your translationnal invariance) will discretize your spectrum in a certain way.
In the process, you need to make sure that your electric potential gradient respects the translationnal symmetry, which is ok if you take it to be orthogonal to your translation symmetry vector(s). For the magnetic field, you need to find a way to include the Aharonov-Bohm geometric phase in your tight-binding model. You can look for "Peierls substitution" if you want to see how it is done.
For your information, you should note that the purpose of this mailing list is to help with issues related to Kwant, but not really related to physics itself.
Best regards,
Alexandre BERNARD
-- *Shivang Agarwal* Junior Undergraduate Discipline of Electrical Engineering IIT Gandhinagar Contact: +91-9869321451
participants (4)
-
alexandre.bernard1@u-psud.fr
-
Christoph Groth
-
Joseph Weston
-
Shivang Agarwal