Hi Everyone, I am searching for a way to calculate the energy spectrum of a system without translational invariance using Kwant. I am familiar with how to calculate E-k relationships for systems with translational invariance (such as a lead) using Kwant's infinite systems. What is unclear to me is how to approach doing this for a system which breaks this invariance, by for example, applying an electric field via a gate or source-drain bias. In the tutorial section I have gone through the tutorial for calculating the magnetic flux vs. energy spectrum for a quantum dot, but it is unclear to me how one would modify this example to investigate the E-k relationship. I have seen a few examples of this type of calculation performed in the literature, but often the numerical details are left to the reader. A few of these are below: (1) http://arxiv.org/abs/cond-mat/0610237 - This paper shows several figures for differently shaped quantum wells formed along the transport direction in a graphene ribbon. (2) http://arxiv.org/abs/1512.02144 - It appears to me that the lower panel of Fig. 1 essentially has an electric field, although I could be wrong. This example was actually done with Kwant. (3) http://arxiv.org/abs/cond-mat/0603594 - Their Fig. 1 shows the spectrum in the quantum hall regime w/o an electric field applied (this I am able to reproduce w/Kwant). In their Fig. 2 an electric field is applied in the x-direction of a graphene ribbon- this in particular I would like to be able to implement- in general, not necessarily for graphene. I have attached a code I am working on which generates a square lattice ribbon with leads on the left/right sides. A potential well is formed in the ribbon in a similar fashion to (1) above. I can extract the Hamiltonian of the channel and calculate its eigenvalues, but it is unclear to me how to get the E-k relationship. I believe I need to add some phase factor across the Hamiltonian which accounts for different k values. I apologize if this is more of a physics question than a Kwant question. Indeed, Kwant trivializes what I imagine is the hard part- generating the lattice and turning that into a tight binding Hamiltonian. Hopefully this topic is of interest to the readers of the mailing list- I believe it would be an interesting addition to the Kwant tutorials in the future! Thanks so much! Sam LaGasse
Hi Sam,
There is no meaningful band structure if an electric field is applied
parallel to the wire (and none of the references introduces such an
electric field). If the field is actually perpendicular to the wire,
you can just add it to the Hamiltonian.
Best,
Anton
On Thu, Jun 9, 2016 at 10:47 PM, LaGasse, Samuel
Hi Everyone,
I am searching for a way to calculate the energy spectrum of a system without translational invariance using Kwant.
I am familiar with how to calculate E-k relationships for systems with translational invariance (such as a lead) using Kwant's infinite systems. What is unclear to me is how to approach doing this for a system which breaks this invariance, by for example, applying an electric field via a gate or source-drain bias. In the tutorial section I have gone through the tutorial for calculating the magnetic flux vs. energy spectrum for a quantum dot, but it is unclear to me how one would modify this example to investigate the E-k relationship.
I have seen a few examples of this type of calculation performed in the literature, but often the numerical details are left to the reader. A few of these are below:
(1) http://arxiv.org/abs/cond-mat/0610237 - This paper shows several figures for differently shaped quantum wells formed along the transport direction in a graphene ribbon.
(2) http://arxiv.org/abs/1512.02144 - It appears to me that the lower panel of Fig. 1 essentially has an electric field, although I could be wrong. This example was actually done with Kwant.
(3) http://arxiv.org/abs/cond-mat/0603594 - Their Fig. 1 shows the spectrum in the quantum hall regime w/o an electric field applied (this I am able to reproduce w/Kwant). In their Fig. 2 an electric field is applied in the x-direction of a graphene ribbon- this in particular I would like to be able to implement- in general, not necessarily for graphene.
I have attached a code I am working on which generates a square lattice ribbon with leads on the left/right sides. A potential well is formed in the ribbon in a similar fashion to (1) above. I can extract the Hamiltonian of the channel and calculate its eigenvalues, but it is unclear to me how to get the E-k relationship. I believe I need to add some phase factor across the Hamiltonian which accounts for different k values.
I apologize if this is more of a physics question than a Kwant question. Indeed, Kwant trivializes what I imagine is the hard part- generating the lattice and turning that into a tight binding Hamiltonian. Hopefully this topic is of interest to the readers of the mailing list- I believe it would be an interesting addition to the Kwant tutorials in the future!
Thanks so much!
Sam LaGasse
Hi Anton,
Thank you for your quick response!
In the paper by Lukose et al (http://arxiv.org/abs/cond-mat/0603594) it seems that the electric field in their Fig. 2 is applied along the x-direction, which appears in the diagonal of the Hamiltonian as an x-dependent shift in the on-site energy, resulting in the shifted E-k spectrum. Am I misunderstanding this?
I guess I am also still unclear even if I wanted to look at a potential energy shift caused perpendicular electric field, such as the potential well in (1) below. I understand how to generate that Hamiltonian using Kwant, but not how to calculate the E-k spectrum of the well itself.
I apologize again that this is more of a physics question than the mechanics of Kwant. I must admit that some of my interest in this calculation stems from some of the E-k relationships in two of your own papers, Anton! (http://journals.aps.org/prl/abstract/10.1103/PhysRevLett.98.157003 and http://journals.aps.org/prb/abstract/10.1103/PhysRevB.76.035411)
Thanks you again,
Sam
________________________________________
From: anton.akhmerov@gmail.com
Hi Everyone,
I am searching for a way to calculate the energy spectrum of a system without translational invariance using Kwant.
I am familiar with how to calculate E-k relationships for systems with translational invariance (such as a lead) using Kwant's infinite systems. What is unclear to me is how to approach doing this for a system which breaks this invariance, by for example, applying an electric field via a gate or source-drain bias. In the tutorial section I have gone through the tutorial for calculating the magnetic flux vs. energy spectrum for a quantum dot, but it is unclear to me how one would modify this example to investigate the E-k relationship.
I have seen a few examples of this type of calculation performed in the literature, but often the numerical details are left to the reader. A few of these are below:
(1) http://arxiv.org/abs/cond-mat/0610237 - This paper shows several figures for differently shaped quantum wells formed along the transport direction in a graphene ribbon.
(2) http://arxiv.org/abs/1512.02144 - It appears to me that the lower panel of Fig. 1 essentially has an electric field, although I could be wrong. This example was actually done with Kwant.
(3) http://arxiv.org/abs/cond-mat/0603594 - Their Fig. 1 shows the spectrum in the quantum hall regime w/o an electric field applied (this I am able to reproduce w/Kwant). In their Fig. 2 an electric field is applied in the x-direction of a graphene ribbon- this in particular I would like to be able to implement- in general, not necessarily for graphene.
I have attached a code I am working on which generates a square lattice ribbon with leads on the left/right sides. A potential well is formed in the ribbon in a similar fashion to (1) above. I can extract the Hamiltonian of the channel and calculate its eigenvalues, but it is unclear to me how to get the E-k relationship. I believe I need to add some phase factor across the Hamiltonian which accounts for different k values.
I apologize if this is more of a physics question than a Kwant question. Indeed, Kwant trivializes what I imagine is the hard part- generating the lattice and turning that into a tight binding Hamiltonian. Hopefully this topic is of interest to the readers of the mailing list- I believe it would be an interesting addition to the Kwant tutorials in the future!
Thanks so much!
Sam LaGasse
In the paper by Lukose et al (http://arxiv.org/abs/cond-mat/0603594) it seems that the electric field in their Fig. 2 is applied along the x-direction, which appears in the diagonal of the Hamiltonian as an x-dependent shift in the on-site energy, resulting in the shifted E-k spectrum. Am I misunderstanding this?
But then they study dispersion as a function of k_y, so the field is perpendicular to the momentum.
I guess I am also still unclear even if I wanted to look at a potential energy shift caused perpendicular electric field, such as the potential well in (1) below. I understand how to generate that Hamiltonian using Kwant, but not how to calculate the E-k spectrum of the well itself.
Do you mean something like this: import kwant lat = kwant.lattice.square() syst = kwant.Builder(kwant.TranslationalSymmetry((1, 0))) syst[(lat(0, i) for i in range(10))] = lambda site: 0.1 * site.pos[1] - 3 syst[lat.neighbors()] = -1 kwant.plotter.bands(syst.finalized()) here I plot the dispersion of an infinite system with E-field applied in its transverse direction. Or do you want to do something else?
I apologize again that this is more of a physics question than the mechanics of Kwant. I must admit that some of my interest in this calculation stems from some of the E-k relationships in two of your own papers, Anton! (http://journals.aps.org/prl/abstract/10.1103/PhysRevLett.98.157003 and http://journals.aps.org/prb/abstract/10.1103/PhysRevB.76.035411)
Heh, cool :) Should be doable. Cheers, Anton
Thanks you again,
Sam ________________________________________ From: anton.akhmerov@gmail.com
on behalf of Anton Akhmerov Sent: Thursday, June 9, 2016 4:52 PM To: LaGasse, Samuel Cc: kwant-discuss@kwant-project.org Subject: Re: [Kwant] Energy spectrum w/o translational invariance Hi Sam,
There is no meaningful band structure if an electric field is applied parallel to the wire (and none of the references introduces such an electric field). If the field is actually perpendicular to the wire, you can just add it to the Hamiltonian.
Best, Anton
On Thu, Jun 9, 2016 at 10:47 PM, LaGasse, Samuel
wrote: Hi Everyone,
I am searching for a way to calculate the energy spectrum of a system without translational invariance using Kwant.
I am familiar with how to calculate E-k relationships for systems with translational invariance (such as a lead) using Kwant's infinite systems. What is unclear to me is how to approach doing this for a system which breaks this invariance, by for example, applying an electric field via a gate or source-drain bias. In the tutorial section I have gone through the tutorial for calculating the magnetic flux vs. energy spectrum for a quantum dot, but it is unclear to me how one would modify this example to investigate the E-k relationship.
I have seen a few examples of this type of calculation performed in the literature, but often the numerical details are left to the reader. A few of these are below:
(1) http://arxiv.org/abs/cond-mat/0610237 - This paper shows several figures for differently shaped quantum wells formed along the transport direction in a graphene ribbon.
(2) http://arxiv.org/abs/1512.02144 - It appears to me that the lower panel of Fig. 1 essentially has an electric field, although I could be wrong. This example was actually done with Kwant.
(3) http://arxiv.org/abs/cond-mat/0603594 - Their Fig. 1 shows the spectrum in the quantum hall regime w/o an electric field applied (this I am able to reproduce w/Kwant). In their Fig. 2 an electric field is applied in the x-direction of a graphene ribbon- this in particular I would like to be able to implement- in general, not necessarily for graphene.
I have attached a code I am working on which generates a square lattice ribbon with leads on the left/right sides. A potential well is formed in the ribbon in a similar fashion to (1) above. I can extract the Hamiltonian of the channel and calculate its eigenvalues, but it is unclear to me how to get the E-k relationship. I believe I need to add some phase factor across the Hamiltonian which accounts for different k values.
I apologize if this is more of a physics question than a Kwant question. Indeed, Kwant trivializes what I imagine is the hard part- generating the lattice and turning that into a tight binding Hamiltonian. Hopefully this topic is of interest to the readers of the mailing list- I believe it would be an interesting addition to the Kwant tutorials in the future!
Thanks so much!
Sam LaGasse
But then they study dispersion as a function of k_y, so the field is
Hi Anton,
perpendicular to the momentum.
This is a very good point... I guess that I had the wrong picture in my head as to how the paper by Lukose et al was set up. I went ahead and modified one of my graphene calculations (code attached below for anyone interested) to be similar to the code snippet you attached, except w/a magnetic field applied in the z-direction. To my surprise, this immediately shows the result of Lukose et al. Upon closer inspection of the Pereira et al paper I realize the method to implement their problem is nearly identical.
That answers part of my question- I guess my question is developing alongside my understanding.
What I would also like to figure out is how to approach Fig. 4 in http://journals.aps.org/prb/abstract/10.1103/PhysRevB.76.035411. I believe I understand the analytical methods used in http://journals.aps.org/prl/abstract/10.1103/PhysRevLett.98.157003 for the analogous Andreev reflection problem and have plotted several of the results for myself, but I do not see how you would numerically implement this type of problem (N-S or p-n interface) using Kwant. I would really appreciate any advice you have to offer regarding this!
Perhaps these papers would have been better examples to start with, although I am very happy to have been able to capture the result in the Lukose paper! It is kind of amazing to me how easy Kwant can make it to replicate results in PRL.
Thanks so much!
Sam
Code (note it is not too big of a problem but those on laptops may have memory issues):
from __future__ import division
import kwant
import numpy as np
from matplotlib import pyplot as plt
from numpy import pi, exp
class SimpleNamespace(object):
def __init__(self, **kwargs):
self.__dict__.update(kwargs)
# System creation
def make_lead(a, t0, S): # (lattice constant in nm, hopping parameter in eV, square size in nm)
lat = kwant.lattice.honeycomb(a) # Create a honeycomb lattice
def leadshape0(pos): # Left lead
x, y = pos
return 0 <= y <= 5 * S
def onsite_lead0(site): # Left lead
xi, yi = site.pos
return 0 + par.E_field*yi # + #par.disorder*kwant.digest.uniform(repr(site),salt = par.salt)
def hopping(sitei, sitej):
xi, yi = sitei.pos
xj, yj = sitej.pos
# convert to meters
# conv = 1e-9
conv = 1e-9
xi *= conv
yi *= conv
xj *= conv
yj *= conv
return -t0 * exp(-1j * (pi / phi_0) * par.B * (xi - xj) * (yi + yj) * 0.5)
sym0 = kwant.TranslationalSymmetry((-a, 0))
sym0.add_site_family(lat.sublattices[0], other_vectors=[(-1, 2)])
sym0.add_site_family(lat.sublattices[1], other_vectors=[(-1, 2)])
lead0 = kwant.Builder(sym0)
lead0[lat.shape(leadshape0, (0.5, 0.5))] = onsite_lead0
lead0[lat.neighbors()] = hopping
lead0.eradicate_dangling()
#kwant.plot(lead0,num_lead_cells=4)
return lead0
a_s = 0.142
t_s = 3.0
S = 10 # square size
h = 1.05457173e-34 # plancks constant
e_charge = 1.602e-19
phi_0 = h / e_charge
par = SimpleNamespace(B=40.,
E_field=0.01) # disorder = 0.15
lead = make_lead(a_s, t_s, S).finalized()
kwant.plotter.bands(lead,momenta = np.linspace(1.8,5.7,200), show=False,dpi=150,)
plt.xlabel("momentum [(lattice constant)^-1]")
plt.ylabel("energy (eV)")
plt.ylim((-0.4,0.8))
plt.show()
________________________________________
From: anton.akhmerov@gmail.com
In the paper by Lukose et al (http://arxiv.org/abs/cond-mat/0603594) it seems that the electric field in their Fig. 2 is applied along the x-direction, which appears in the diagonal of the Hamiltonian as an x-dependent shift in the on-site energy, resulting in the shifted E-k spectrum. Am I misunderstanding this?
But then they study dispersion as a function of k_y, so the field is perpendicular to the momentum.
I guess I am also still unclear even if I wanted to look at a potential energy shift caused perpendicular electric field, such as the potential well in (1) below. I understand how to generate that Hamiltonian using Kwant, but not how to calculate the E-k spectrum of the well itself.
Do you mean something like this: import kwant lat = kwant.lattice.square() syst = kwant.Builder(kwant.TranslationalSymmetry((1, 0))) syst[(lat(0, i) for i in range(10))] = lambda site: 0.1 * site.pos[1] - 3 syst[lat.neighbors()] = -1 kwant.plotter.bands(syst.finalized()) here I plot the dispersion of an infinite system with E-field applied in its transverse direction. Or do you want to do something else?
I apologize again that this is more of a physics question than the mechanics of Kwant. I must admit that some of my interest in this calculation stems from some of the E-k relationships in two of your own papers, Anton! (http://journals.aps.org/prl/abstract/10.1103/PhysRevLett.98.157003 and http://journals.aps.org/prb/abstract/10.1103/PhysRevB.76.035411)
Heh, cool :) Should be doable. Cheers, Anton
Thanks you again,
Sam ________________________________________ From: anton.akhmerov@gmail.com
on behalf of Anton Akhmerov Sent: Thursday, June 9, 2016 4:52 PM To: LaGasse, Samuel Cc: kwant-discuss@kwant-project.org Subject: Re: [Kwant] Energy spectrum w/o translational invariance Hi Sam,
There is no meaningful band structure if an electric field is applied parallel to the wire (and none of the references introduces such an electric field). If the field is actually perpendicular to the wire, you can just add it to the Hamiltonian.
Best, Anton
On Thu, Jun 9, 2016 at 10:47 PM, LaGasse, Samuel
wrote: Hi Everyone,
I am searching for a way to calculate the energy spectrum of a system without translational invariance using Kwant.
I am familiar with how to calculate E-k relationships for systems with translational invariance (such as a lead) using Kwant's infinite systems. What is unclear to me is how to approach doing this for a system which breaks this invariance, by for example, applying an electric field via a gate or source-drain bias. In the tutorial section I have gone through the tutorial for calculating the magnetic flux vs. energy spectrum for a quantum dot, but it is unclear to me how one would modify this example to investigate the E-k relationship.
I have seen a few examples of this type of calculation performed in the literature, but often the numerical details are left to the reader. A few of these are below:
(1) http://arxiv.org/abs/cond-mat/0610237 - This paper shows several figures for differently shaped quantum wells formed along the transport direction in a graphene ribbon.
(2) http://arxiv.org/abs/1512.02144 - It appears to me that the lower panel of Fig. 1 essentially has an electric field, although I could be wrong. This example was actually done with Kwant.
(3) http://arxiv.org/abs/cond-mat/0603594 - Their Fig. 1 shows the spectrum in the quantum hall regime w/o an electric field applied (this I am able to reproduce w/Kwant). In their Fig. 2 an electric field is applied in the x-direction of a graphene ribbon- this in particular I would like to be able to implement- in general, not necessarily for graphene.
I have attached a code I am working on which generates a square lattice ribbon with leads on the left/right sides. A potential well is formed in the ribbon in a similar fashion to (1) above. I can extract the Hamiltonian of the channel and calculate its eigenvalues, but it is unclear to me how to get the E-k relationship. I believe I need to add some phase factor across the Hamiltonian which accounts for different k values.
I apologize if this is more of a physics question than a Kwant question. Indeed, Kwant trivializes what I imagine is the hard part- generating the lattice and turning that into a tight binding Hamiltonian. Hopefully this topic is of interest to the readers of the mailing list- I believe it would be an interesting addition to the Kwant tutorials in the future!
Thanks so much!
Sam LaGasse
participants (2)
-
Anton Akhmerov
-
LaGasse, Samuel