[Kwant] Attaching two different lattice

2019-11-13 Thread tavakkolidjawad
Hello everyone 

I'm Javad Tavakkoli and I'm a master student in condensed matter
physics. 

I recently received a thesis that I want to use Kwant for its
simulations. I have a question : 

Can I use this package to attaching two different system with different
structure and different dimension? 
Can you explain briefly? 

Thank you.

Re: [Kwant] Non-equilibrium Green's functions and Current in tkwant

2019-11-13 Thread Joseph Weston
Hi Rudolf,


> The kwant documentation on kwant.solvers.common.GreensFunction() states
> that calling this method will return the retarded Green's function. Does
> this method evaluate the equilibrium or non-equilibrium retarded Green's
> function? I am interested in the time-dependent non-equilibrium density
> matrix, which can be written as the kinetic lesser NE Green's function
> G_<(t,t')
>
> rho_neq (t) = -iG_<(t,t')|t=t'.


'kwant.greens_function' essentially gives you a few matrix elements of
the following quantity: Gᴿ(E) = (H + Σ(E))⁻¹ where Σ is the self-energy
of the leads at energy E. Specifically it gives you the matrix elements
that connect the interface sites of the different leads; these are the
matrix elements needed to calculate transport quantities (like conductance).

In order to calculate the lesser Green's function for the
time-independent, nonequilibrium case (i.e. different chemical
potentials / temperatures in different leads) you would need to take a
different approach I think.

One way to do so would be to apply eq. 22 of
https://arxiv.org/abs/1307.6419 to the special case where Ψ_αE(t) has
trivial time dependence: Ψ_αE(t) = exp(-iEt) Ψ_αE where Ψ_αE is the
scattering state corresponding to incoming mode α at energy E (i.e. what
kwant.wave_function gives you).

If your system is *time-dependent* then you will need to calculate the
time-evolved scattering states, which Kwant cannot give you directly.

Indeed I did some work on calculating such quantities during my PhD.,
and one of the outputs was a code "tkwant", which is essentially a
solver for  working with Kwant systems that include time-dependence. It
essentially does the time evolution and energy integration for you.

tkwant is still actively developed, but I am no longer directly
involved; you can check it out here:
https://gitlab.kwant-project.org/kwant/tkwant/ there's also links to the
documentation which includes some examples which should help you get
started if this is the direction you want to go.


Happy (t)kwanting,

Joe




signature.asc
Description: OpenPGP digital signature


Re: [Kwant] Josephson Junctions using tkwant

2019-11-13 Thread Joseph Weston
Hi again Denise,

I'm just writing again to clarify something I wrote in my previous reply:

> Unfortunately tkwant does not presently have a maintainer, and no
> developer time has been allocated to it. This may change in the future,
> but at this point we cannot provide any promises. tkwant was anyway an
> experimental code that is not "production ready" in the same way that
> kwant is.


This is not actually true; there has recently been quite a bit of work
on tkwant recently, and Thomas Kloss is the current maintainer. I was
aware of this, but have been out of the loop on tkwant development,
which lead to me writing the misleading statement quoted above.

If the tutorials do not work with the current version of tkwant then
this is a bug (either in the documentation or tkwant itself), and I
would encourage you to open an issue on the tkwant issue tracker [1].

Sorry again for the misleading message.

Happy tkwanting,

Joe


[1]: https://gitlab.kwant-project.org/kwant/tkwant/issues/new




signature.asc
Description: OpenPGP digital signature


Re: [Kwant] Josephson Junctions using tkwant

2019-11-13 Thread Joseph Weston
Hi Denise,

>
> Has anyone recently tried to simulate Josephson Junctions using tkwant?
> I tried to follow the examples and tutorials, but several of them do
> not work in the last tkwant version.


Unfortunately tkwant does not presently have a maintainer, and no
developer time has been allocated to it. This may change in the future,
but at this point we cannot provide any promises. tkwant was anyway an
experimental code that is not "production ready" in the same way that
kwant is.


> I am sending attached and you can find below the code that I am
> running but the current does not oscillate as a function of time and
> the IV curve is linear. Any suggestions on what may be wrong? Any help
> or comment is appreciated.

Just skimming your code I notice the following:


>    
>     ### add JJ phase
>     syst[(lat(-1,0),lat(0,0))] =  -t*np.exp(1j*phase(time))*c_e
> -t*np.exp(-1j*phase(time))*c_h  ### JJ phase
>    


Here you are assigning a *constant value* to the hopping. Presumably you
would like instead to have a *function* that depends on time. You should
instead write something like:


    def hopping(site_a, site_b, time):

        return -t*np.exp(1j*phase(time))*c_e -t*np.exp(-1j*phase(time))*c_h


    syst[(lat(-1,0),lat(0,0))] = hopping


Happy (t)kwanting,


Joe





signature.asc
Description: OpenPGP digital signature