Ynt: Re: Ynt: Re: Datta’s ballistic transport formalism vs KWANT
Dear Adel, � Thank you for the additional remark. Yes, for near zero energies this "arcos formula" gives the same with Datta's simple expression. However, since you said it is exact for KWANT's discrete model, I tried to compare it with KWANT's results and I found discrepancy. Please see the attached figure. � In the Figure, you will see that I reduced "a" from 1 to 0.1 and KWANT results (blue curve) and it gave much closer to Datta's expression (yellow curve) now, as Joe predicted in the previous message. However, this "arcos expression" (green curve) does not give the same results with KWANT. And the results do not change much when decrease the lattice parameter a much lower like 0.00001. Am I doing sth wrong here or did I misinterpret your point? � Best, Ran � � Dear Mutcran, � I would like just to make an additional remark. Indeed, the formula in Datta's book is for a continuous model where the maximum number of modes is given by� M=2 W/ \lambda_f�� (\lambda_f is the Fermi wavelength). � In the case of a discrete model, like in Kwant, you can deduce M from the band structure. In fact, we have: E=4t -2t cos(kx)-2t cos(m pi/(N+1)), where N is the number of sites for one transversal cell. The maximum number of transmitted modes is obtained when the longitudinal kinetic energy is 0 (kx~0). so we get M= (N+1)/pi��� arcos((E-2t)/(-2t))������ (you need to take the integer part of this expression). This result is exact for a discrete square lattice model. A simple Taylor expansion around E~0 will give you the Datta's formula��� (where W=(N+1)a). � As a conclusion, the number of transmitted modes for a given discrete model is obtained from the form of the Band structure. This allows you to calculate it for any complex lattice (as long as you can get analytically the band structure). � I hope this helps, Adel � � � � On Tue, Jan 22, 2019 at 11:22 PM mutcran <mutcran@mynet.com> wrote: Thanks Joe! That was indeed the case! It became much closer with small a. Best, Ran � Hi Ran, > I tried to compare KWANT’s results for transmission with Datta’s ballistic transport formalism where total transmission is written as > > Ttot=T(E)M(E) > > Here Datta takes T(E)=1 for ballistic transport (please see: J. Appl. Phys. 105, 034506, 2009) and M(E) is the number of modes in transverse direction. When I compared KWANT's results with Datta’s expression, for the system given in “quantum_wire_revisited.py”, I found different results (please see the attached figure where I tried to put every relevant thing in the calculation). Since the reflectance is zero for that system and so transmission is 1 for each mode, shouldn’t it give the same results with Datta’s transmission expression? > Nice question! Looking at your results it seems that the energies at which new modes open is shifted with respect to Datta's result. I believe that this is simply due to the fact that your discretization is not fine enough. Datta's result is valid in the continuum limit, whereas the Kwant simulation (in the case presented) uses a finite-difference discretization to render the problem discrete. If you decrease the 'a' parameter, you should see the discrepancy between the two result decrease. Happy Kwanting, Joe -- Abbout Adel
Hi Mutcran, I just checked it and it works fine. import kwant from math import floor from numpy import arccos ,pi from matplotlib import pyplot def make_system(a=1, t=1.0, W=10, L=3): lat = kwant.lattice.square(a) syst = kwant.Builder() syst[(lat(x, y) for x in range(L) for y in range(W))] = 4 * t syst[lat.neighbors()] = -t lead = kwant.Builder(kwant.TranslationalSymmetry((-a, 0))) lead[(lat(0, j) for j in range(W))] = 4 * t lead[lat.neighbors()] = -t syst.attach_lead(lead) syst.attach_lead(lead.reversed()) return syst def plot_conductance(syst, energies): # Compute conductance data = [] for energy in energies: smatrix = kwant.smatrix(syst, energy) data.append(smatrix.transmission(1, 0)) pyplot.figure() pyplot.plot(energies, data) pyplot.xlabel("energy [t]") pyplot.ylabel("conductance [e^2/h]") ###pyplot.show() def M(E,W): N=W t=1. m=(N+1)/pi *arccos((E-2*t)/(-2*t)) return floor(m) W=10 syst = make_system(W=W) kwant.plot(syst) syst = syst.finalized() energies=[0.01 * i for i in range(1,100,2)] plot_conductance(syst, energies) pyplot.plot(energies,[M(E,W) for E in energies],'ro') pyplot.show() On Wed, Jan 23, 2019 at 5:47 PM mutcran <mutcran@mynet.com> wrote:
Dear Adel,
Thank you for the additional remark. Yes, for near zero energies this "arcos formula" gives the same with Datta's simple expression. However, since you said it is exact for KWANT's discrete model, I tried to compare it with KWANT's results and I found discrepancy. Please see the attached figure.
In the Figure, you will see that I reduced "a" from 1 to 0.1 and KWANT results (blue curve) and it gave much closer to Datta's expression (yellow curve) now, as Joe predicted in the previous message. However, this "arcos expression" (green curve) does not give the same results with KWANT. And the results do not change much when decrease the lattice parameter a much lower like 0.00001. Am I doing sth wrong here or did I misinterpret your point?
Best,
Ran
Dear Mutcran,
I would like just to make an additional remark. Indeed, the formula in Datta's book is for a continuous model where the maximum number of modes is given by M=2 W/ \lambda_f (\lambda_f is the Fermi wavelength).
In the case of a discrete model, like in Kwant, you can deduce M from the band structure. In fact, we have: E=4t -2t cos(kx)-2t cos(m pi/(N+1)), where N is the number of sites for one transversal cell. The maximum number of transmitted modes is obtained when the longitudinal kinetic energy is 0 (kx~0). so we get M= (N+1)/pi arcos((E-2t)/(-2t)) (you need to take the integer part of this expression). This result is exact for a discrete square lattice model. A simple Taylor expansion around E~0 will give you the Datta's formula (where W=(N+1)a).
As a conclusion, the number of transmitted modes for a given discrete model is obtained from the form of the Band structure. This allows you to calculate it for any complex lattice (as long as you can get analytically the band structure).
I hope this helps, Adel
On Tue, Jan 22, 2019 at 11:22 PM mutcran <mutcran@mynet.com> wrote:
Thanks Joe! That was indeed the case! It became much closer with small a.
Best,
Ran
Hi Ran,
I tried to compare KWANT’s results for transmission with Datta’s ballistic transport formalism where total transmission is written as
Ttot=T(E)M(E)
Here Datta takes T(E)=1 for ballistic transport (please see: J. Appl. Phys. 105, 034506, 2009) and M(E) is the number of modes in transverse direction. When I compared KWANT's results with Datta’s expression, for the system given in “quantum_wire_revisited.py”, I found different results (please see the attached figure where I tried to put every relevant thing in the calculation). Since the reflectance is zero for that system and so transmission is 1 for each mode, shouldn’t it give the same results with Datta’s transmission expression?
Nice question!
Looking at your results it seems that the energies at which new modes open is shifted with respect to Datta's result.
I believe that this is simply due to the fact that your discretization is not fine enough. Datta's result is valid in the continuum limit, whereas the Kwant simulation (in the case presented) uses a finite-difference discretization to render the problem discrete. If you decrease the 'a' parameter, you should see the discrepancy between the two result decrease.
Happy Kwanting,
Joe
-- Abbout Adel
-- Abbout Adel
participants (2)
-
Abbout Adel
-
mutcran