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 <[email protected]> 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 <[email protected]> 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

Reply via email to