Re: [Kwant] Coupling Matrix between Lead and Conductor

2018-06-11 Thread Shivang Agarwal
Thanks a lot Joseph. That really helps a lot! I now get what I need to do.

On Mon, Jun 11, 2018 at 10:14 PM Joseph Weston 
wrote:

> Hi,
>
>
> >
> > I have a matrix giving me the complex wave function at each site. How
> > do I know which mode (m/n) do the amplitudes correspond to?
>
> Where did you get this matrix from? Is this the wavefunction of a mode
> in a lead, from 'kwant.modes', or of a scattering wavefunction, from
> 'kwant.wave_function'? Bear in mind that a mode wavefunction and a
> scattering wavefunction are defined in different places: a mode
> wavefunction is defined in the lead only (i.e. over a single unit cell,
> and you use Bloch's theorem to get the wavefunction in neighboring unit
> cells), whereas the scattering wavefunction may only be queried in the
> scattering region itself (even though it extends infinitely far into the
> leads, Kwant does not allow you to query the amplitude of a scattering
> wavefunction on sites the leads).
>
> > Also, I am not aware of the method to get wavenumbers k_m. Could you
> > kindly help me out with that as well?
> >
> You can get the wavenumbers by calling 'kwant.modes' on a lead and
> querying the propagating modes. This contains the wavefunctions for the
> modes of the provided lead, as well as the wavenumbers and velocities.
>
> Happy Kwanting,
>
> Joe
>
>

-- 
*Shivang Agarwal*
Junior Undergraduate
Discipline of Electrical Engineering
IIT Gandhinagar

Contact: +91-9869321451


Re: [Kwant] Coupling Matrix between Lead and Conductor

2018-06-11 Thread Joseph Weston
Hi,


>
> I have a matrix giving me the complex wave function at each site. How
> do I know which mode (m/n) do the amplitudes correspond to?

Where did you get this matrix from? Is this the wavefunction of a mode
in a lead, from 'kwant.modes', or of a scattering wavefunction, from
'kwant.wave_function'? Bear in mind that a mode wavefunction and a
scattering wavefunction are defined in different places: a mode
wavefunction is defined in the lead only (i.e. over a single unit cell,
and you use Bloch's theorem to get the wavefunction in neighboring unit
cells), whereas the scattering wavefunction may only be queried in the
scattering region itself (even though it extends infinitely far into the
leads, Kwant does not allow you to query the amplitude of a scattering
wavefunction on sites the leads).

> Also, I am not aware of the method to get wavenumbers k_m. Could you
> kindly help me out with that as well?
>
You can get the wavenumbers by calling 'kwant.modes' on a lead and
querying the propagating modes. This contains the wavefunctions for the
modes of the provided lead, as well as the wavenumbers and velocities.

Happy Kwanting,

Joe



Re: [Kwant] Coupling Matrix between Lead and Conductor

2018-06-10 Thread Abbout Adel
Hi Shivang,

The transmitted wave function  transmitted in the mode m (and coming from
the mode n) is:

t_mn exp(i k_m).
>

Since you have the transmitted amplitudes and the wavenumbers k_m, you have
everything for your request.


I hope this helps.
Adel



On Fri, Jun 8, 2018 at 11:09 PM, Shivang Agarwal <
shivang.agar...@iitgn.ac.in> wrote:

> Hi,
>
> I had one more query. Would it be possible to calculate and plot the
> magnitude and phase of the complex wave function of each transmission mode
> separately?
>
> Regards,
> Shivang
>
> On Thu, Jun 7, 2018 at 8:29 PM Shivang Agarwal <
> shivang.agar...@iitgn.ac.in> wrote:
>
>> Hi Abbout,
>>
>> Thanks for swift response.
>> Indeed, the kwant.wavefunction module gives me a complex number. I had
>> been working on probability (wavefunction squared) and had overlooked the
>> phase part. A noob mistake.
>>
>> Appreciate your help!
>>
>> Shivang
>>
>> On Thu, Jun 7, 2018 at 11:53 AM Abbout Adel 
>> wrote:
>>
>>> Dear Shivang,
>>>
>>> To get the matrix Gamma you can do:
>>>
>>> sys=  sys.finalized()
>>> lead_L   =  sys.leads[0]
>>> Sigma_L=  lead_L.selfenergy(energy)
>>> Gamma_L  =  -2*imag(Sigma_L)
>>>
>>> You can find the details in this answer by Joseph [1].
>>> To get directly the transmission matrix t you can do:
>>> t=kwant.smatrix(sys,energy, *out_leads=[1]*, *in_leads=[0]*).data
>>>#I suppose you have just two leads.
>>>
>>> Now, since your aim is to get the wave function, the module
>>> kwant.wavefunction gives you the wavefunction as a complex number (module
>>> and *phase*). So, your claim that you are unable to get the phase is
>>> confusing!
>>>
>>> I hope this helps.
>>> Adel
>>>
>>> [1] https://mailman-mail5.webfaction.com/pipermail/
>>> kwant-discuss/2015-May/000355.html
>>>
>>>
>>>
>>> Abbout Adel
>>>
>>> On Wed, Jun 6, 2018 at 11:53 PM, Shivang Agarwal <
>>> shivang.agar...@iitgn.ac.in> wrote:
>>>
 Hello authors,

 I am trying to perform an eigenchannel analysis of a graphene
 nanoribbon. For that I will be using the formula :
 *T(E) = ГL(E)½ GC†(E) ГR(E) GC(E) ГL(E)½ *
 where *ГL(E)* is the coupling matrix between the left lead and the
 conductor, *GC(E)* is the greens function matrix of the conductor
 (system) and '†' is the dagger operator. The equation is from the
 following paper: https://journals.aps.org/prb/pdf/10.1103/PhysRevB.
 73.075429

 (1) Now as far as I know, Kwant allows us to calculate transmission as
 a number T(E). What I need for my code is 't' where Trace(t*†*t) =
 T(E). Could somebody let me know how can I get the desired quantity 't'?.
 But I don't know how I can get the coupling matrix *ГL(E) between the
 left (or right) lead and the conductor*

 (2) Also, we know that t = *ГL(E)½ GC(E) ГR(E)½ .But I don't know how
 I can get the coupling matrix ГL(E) between the left (or right) lead and
 the conductor. Is it possible to get too?*

 *PS - My aim is to find the wavefunctions inside the nanoribbon (which
 Kwant can do very conveniently) and also their phases! I have found the
 wavefunctions but am unable to find their phases. If there's any other way
 to find it that would also be extremely helpful.*

 *Any help would be greatly appreciated.*

 *Thanks and Regards,*
 *Shivang Agarwal*
 --
 *Shivang Agarwal*
 Junior Undergraduate
 Discipline of Electrical Engineering
 IIT Gandhinagar

 Contact: +91-9869321451

>>>
>>>
>>>
>>> --
>>> Abbout Adel
>>>
>>
>>
>> --
>> *Shivang Agarwal*
>> Junior Undergraduate
>> Discipline of Electrical Engineering
>> IIT Gandhinagar
>>
>> Contact: +91-9869321451
>>
>
>
> --
> *Shivang Agarwal*
> Junior Undergraduate
> Discipline of Electrical Engineering
> IIT Gandhinagar
>
> Contact: +91-9869321451
>



-- 
Abbout Adel


Re: [Kwant] Coupling Matrix between Lead and Conductor

2018-06-08 Thread Shivang Agarwal
Hi,

I had one more query. Would it be possible to calculate and plot the
magnitude and phase of the complex wave function of each transmission mode
separately?

Regards,
Shivang

On Thu, Jun 7, 2018 at 8:29 PM Shivang Agarwal 
wrote:

> Hi Abbout,
>
> Thanks for swift response.
> Indeed, the kwant.wavefunction module gives me a complex number. I had
> been working on probability (wavefunction squared) and had overlooked the
> phase part. A noob mistake.
>
> Appreciate your help!
>
> Shivang
>
> On Thu, Jun 7, 2018 at 11:53 AM Abbout Adel  wrote:
>
>> Dear Shivang,
>>
>> To get the matrix Gamma you can do:
>>
>> sys=  sys.finalized()
>> lead_L   =  sys.leads[0]
>> Sigma_L=  lead_L.selfenergy(energy)
>> Gamma_L  =  -2*imag(Sigma_L)
>>
>> You can find the details in this answer by Joseph [1].
>> To get directly the transmission matrix t you can do:
>> t=kwant.smatrix(sys,energy, *out_leads=[1]*, *in_leads=[0]*).data
>>#I suppose you have just two leads.
>>
>> Now, since your aim is to get the wave function, the module
>> kwant.wavefunction gives you the wavefunction as a complex number (module
>> and *phase*). So, your claim that you are unable to get the phase is
>> confusing!
>>
>> I hope this helps.
>> Adel
>>
>> [1]
>> https://mailman-mail5.webfaction.com/pipermail/kwant-discuss/2015-May/000355.html
>>
>>
>>
>> Abbout Adel
>>
>> On Wed, Jun 6, 2018 at 11:53 PM, Shivang Agarwal <
>> shivang.agar...@iitgn.ac.in> wrote:
>>
>>> Hello authors,
>>>
>>> I am trying to perform an eigenchannel analysis of a graphene
>>> nanoribbon. For that I will be using the formula :
>>> *T(E) = ГL(E)½ GC†(E) ГR(E) GC(E) ГL(E)½ *
>>> where *ГL(E)* is the coupling matrix between the left lead and the
>>> conductor, *GC(E)* is the greens function matrix of the conductor
>>> (system) and '†' is the dagger operator. The equation is from the
>>> following paper:
>>> https://journals.aps.org/prb/pdf/10.1103/PhysRevB.73.075429
>>>
>>> (1) Now as far as I know, Kwant allows us to calculate transmission as a
>>> number T(E). What I need for my code is 't' where Trace(t*†*t) = T(E).
>>> Could somebody let me know how can I get the desired quantity 't'?. But I
>>> don't know how I can get the coupling matrix *ГL(E) between the left
>>> (or right) lead and the conductor*
>>>
>>> (2) Also, we know that t = *ГL(E)½ GC(E) ГR(E)½ .But I don't know how I
>>> can get the coupling matrix ГL(E) between the left (or right) lead and the
>>> conductor. Is it possible to get too?*
>>>
>>> *PS - My aim is to find the wavefunctions inside the nanoribbon (which
>>> Kwant can do very conveniently) and also their phases! I have found the
>>> wavefunctions but am unable to find their phases. If there's any other way
>>> to find it that would also be extremely helpful.*
>>>
>>> *Any help would be greatly appreciated.*
>>>
>>> *Thanks and Regards,*
>>> *Shivang Agarwal*
>>> --
>>> *Shivang Agarwal*
>>> Junior Undergraduate
>>> Discipline of Electrical Engineering
>>> IIT Gandhinagar
>>>
>>> Contact: +91-9869321451
>>>
>>
>>
>>
>> --
>> Abbout Adel
>>
>
>
> --
> *Shivang Agarwal*
> Junior Undergraduate
> Discipline of Electrical Engineering
> IIT Gandhinagar
>
> Contact: +91-9869321451
>


-- 
*Shivang Agarwal*
Junior Undergraduate
Discipline of Electrical Engineering
IIT Gandhinagar

Contact: +91-9869321451


Re: [Kwant] Coupling Matrix between Lead and Conductor

2018-06-07 Thread Shivang Agarwal
Hi Abbout,

Thanks for swift response.
Indeed, the kwant.wavefunction module gives me a complex number. I had been
working on probability (wavefunction squared) and had overlooked the phase
part. A noob mistake.

Appreciate your help!

Shivang

On Thu, Jun 7, 2018 at 11:53 AM Abbout Adel  wrote:

> Dear Shivang,
>
> To get the matrix Gamma you can do:
>
> sys=  sys.finalized()
> lead_L   =  sys.leads[0]
> Sigma_L=  lead_L.selfenergy(energy)
> Gamma_L  =  -2*imag(Sigma_L)
>
> You can find the details in this answer by Joseph [1].
> To get directly the transmission matrix t you can do:
> t=kwant.smatrix(sys,energy, *out_leads=[1]*, *in_leads=[0]*).data
>#I suppose you have just two leads.
>
> Now, since your aim is to get the wave function, the module
> kwant.wavefunction gives you the wavefunction as a complex number (module
> and *phase*). So, your claim that you are unable to get the phase is
> confusing!
>
> I hope this helps.
> Adel
>
> [1]
> https://mailman-mail5.webfaction.com/pipermail/kwant-discuss/2015-May/000355.html
>
>
>
> Abbout Adel
>
> On Wed, Jun 6, 2018 at 11:53 PM, Shivang Agarwal <
> shivang.agar...@iitgn.ac.in> wrote:
>
>> Hello authors,
>>
>> I am trying to perform an eigenchannel analysis of a graphene nanoribbon.
>> For that I will be using the formula :
>> *T(E) = ГL(E)½ GC†(E) ГR(E) GC(E) ГL(E)½ *
>> where *ГL(E)* is the coupling matrix between the left lead and the
>> conductor, *GC(E)* is the greens function matrix of the conductor
>> (system) and '†' is the dagger operator. The equation is from the
>> following paper:
>> https://journals.aps.org/prb/pdf/10.1103/PhysRevB.73.075429
>>
>> (1) Now as far as I know, Kwant allows us to calculate transmission as a
>> number T(E). What I need for my code is 't' where Trace(t*†*t) = T(E).
>> Could somebody let me know how can I get the desired quantity 't'?. But I
>> don't know how I can get the coupling matrix *ГL(E) between the left (or
>> right) lead and the conductor*
>>
>> (2) Also, we know that t = *ГL(E)½ GC(E) ГR(E)½ .But I don't know how I
>> can get the coupling matrix ГL(E) between the left (or right) lead and the
>> conductor. Is it possible to get too?*
>>
>> *PS - My aim is to find the wavefunctions inside the nanoribbon (which
>> Kwant can do very conveniently) and also their phases! I have found the
>> wavefunctions but am unable to find their phases. If there's any other way
>> to find it that would also be extremely helpful.*
>>
>> *Any help would be greatly appreciated.*
>>
>> *Thanks and Regards,*
>> *Shivang Agarwal*
>> --
>> *Shivang Agarwal*
>> Junior Undergraduate
>> Discipline of Electrical Engineering
>> IIT Gandhinagar
>>
>> Contact: +91-9869321451
>>
>
>
>
> --
> Abbout Adel
>


-- 
*Shivang Agarwal*
Junior Undergraduate
Discipline of Electrical Engineering
IIT Gandhinagar

Contact: +91-9869321451


Re: [Kwant] Coupling Matrix between Lead and Conductor

2018-06-07 Thread Shivang Agarwal
Thanks Xavier. I now have a clearer picture.

Regards,
Shivang

On Thu, Jun 7, 2018 at 11:33 AM Xavier Waintal 
wrote:

> Hi Shivang,
>
>
> Le 6 juin 2018 à 22:53, Shivang Agarwal  a
> écrit :
>
> Hello authors,
>
> I am trying to perform an eigenchannel analysis of a graphene nanoribbon.
> For that I will be using the formula :
> *T(E) = ГL(E)½ GC†(E) ГR(E) GC(E) ГL(E)½ *
> where *ГL(E)* is the coupling matrix between the left lead and the
> conductor, *GC(E)* is the greens function matrix of the conductor
> (system) and '†' is the dagger operator. The equation is from the
> following paper:
> https://journals.aps.org/prb/pdf/10.1103/PhysRevB.73.075429
>
> (1) Now as far as I know, Kwant allows us to calculate transmission as a
> number T(E). What I need for my code is 't' where Trace(t*†*t) = T(E).
> Could somebody let me know how can I get the desired quantity 't'?. But I
> don't know how I can get the coupling matrix *ГL(E) between the left (or
> right) lead and the conductor*
>
>
> The scattering matrix is actually the basic object that Kwant calculate
> directly.
> You can access it through
>
> kwant.solvers.default
> s.smatrix(
> …)
>
> The smatrix between two different leads is your transmission matrix t. For
> the same lead it is the reflexion matrix r.
>
> see: https://kwant-project.org/doc/1/reference/kwant.solvers
>
> You could also calculate the Green function and the Gamma matrix that you
> mention, but I see
> no point in doing it.
>
> That would be  kwant.solvers.default
> .greens_function()
> for G(E)
> And
> kwant.physic
> 
> s.selfenergy
> ()
> for the lead self energy S(E)
> with Gamma(E) = i [ S(E) - S(E)^dagger]
>
> Best regards,
> Xavier
>
>
>
> (2) Also, we know that t = *ГL(E)½ GC(E) ГR(E)½ .But I don't know how I
> can get the coupling matrix ГL(E) between the left (or right) lead and the
> conductor. Is it possible to get too?*
>
> *PS - My aim is to find the wavefunctions inside the nanoribbon (which
> Kwant can do very conveniently) and also their phases! I have found the
> wavefunctions but am unable to find their phases. If there's any other way
> to find it that would also be extremely helpful.*
>
> *Any help would be greatly appreciated.*
>
> *Thanks and Regards,*
> *Shivang Agarwal*
> --
> *Shivang Agarwal*
> Junior Undergraduate
> Discipline of Electrical Engineering
> IIT Gandhinagar
>
> Contact: +91-9869321451
>
>
>

-- 
*Shivang Agarwal*
Junior Undergraduate
Discipline of Electrical Engineering
IIT Gandhinagar

Contact: +91-9869321451


Re: [Kwant] Coupling Matrix between Lead and Conductor

2018-06-07 Thread Xavier Waintal
Hi Shivang,


> Le 6 juin 2018 à 22:53, Shivang Agarwal  a écrit 
> :
> 
> Hello authors,
> 
> I am trying to perform an eigenchannel analysis of a graphene nanoribbon. For 
> that I will be using the formula :
> T(E) = ГL(E)½ GC†(E) ГR(E) GC(E) ГL(E)½ 
> where ГL(E) is the coupling matrix between the left lead and the conductor, 
> GC(E) is the greens function matrix of the conductor (system) and '†' is the 
> dagger operator. The equation is from the following paper: 
> https://journals.aps.org/prb/pdf/10.1103/PhysRevB.73.075429 
> 
> 
> (1) Now as far as I know, Kwant allows us to calculate transmission as a 
> number T(E). What I need for my code is 't' where Trace(t†t) = T(E). Could 
> somebody let me know how can I get the desired quantity 't'?. But I don't 
> know how I can get the coupling matrix ГL(E) between the left (or right) lead 
> and the conductor
> 

The scattering matrix is actually the basic object that Kwant calculate 
directly.
You can access it through 

kwant.solvers.default 
s.smatrix(
 …)

The smatrix between two different leads is your transmission matrix t. For the 
same lead it is the reflexion matrix r.

see: https://kwant-project.org/doc/1/reference/kwant.solvers

You could also calculate the Green function and the Gamma matrix that you 
mention, but I see
no point in doing it.

That would be  kwant.solvers.default 
.greens_function()
 for G(E)
And 
kwant.physic 
s.selfenergy
 
()
 for the lead self energy S(E)
with Gamma(E) = i [ S(E) - S(E)^dagger]

Best regards,
Xavier



> (2) Also, we know that t = ГL(E)½ GC(E) ГR(E)½ .But I don't know how I can 
> get the coupling matrix ГL(E) between the left (or right) lead and the 
> conductor. Is it possible to get too?
> 
> PS - My aim is to find the wavefunctions inside the nanoribbon (which Kwant 
> can do very conveniently) and also their phases! I have found the 
> wavefunctions but am unable to find their phases. If there's any other way to 
> find it that would also be extremely helpful.
> 
> Any help would be greatly appreciated.
> 
> Thanks and Regards,
> Shivang Agarwal
> -- 
> Shivang Agarwal
> Junior Undergraduate
> Discipline of Electrical Engineering
> IIT Gandhinagar
> 
> Contact: +91-9869321451



smime.p7s
Description: S/MIME cryptographic signature


Re: [Kwant] Coupling Matrix between Lead and Conductor

2018-06-07 Thread Abbout Adel
Dear Shivang,

To get the matrix Gamma you can do:

sys=  sys.finalized()
lead_L   =  sys.leads[0]
Sigma_L=  lead_L.selfenergy(energy)
Gamma_L  =  -2*imag(Sigma_L)

You can find the details in this answer by Joseph [1].
To get directly the transmission matrix t you can do:
t=kwant.smatrix(sys,energy, *out_leads=[1]*, *in_leads=[0]*).data
#I suppose you have just two leads.

Now, since your aim is to get the wave function, the module
kwant.wavefunction gives you the wavefunction as a complex number (module
and *phase*). So, your claim that you are unable to get the phase is
confusing!

I hope this helps.
Adel

[1]
https://mailman-mail5.webfaction.com/pipermail/kwant-discuss/2015-May/000355.html



Abbout Adel

On Wed, Jun 6, 2018 at 11:53 PM, Shivang Agarwal <
shivang.agar...@iitgn.ac.in> wrote:

> Hello authors,
>
> I am trying to perform an eigenchannel analysis of a graphene nanoribbon.
> For that I will be using the formula :
> *T(E) = ГL(E)½ GC†(E) ГR(E) GC(E) ГL(E)½ *
> where *ГL(E)* is the coupling matrix between the left lead and the
> conductor, *GC(E)* is the greens function matrix of the conductor
> (system) and '†' is the dagger operator. The equation is from the
> following paper: https://journals.aps.org/prb/pdf/10.1103/PhysRevB.
> 73.075429
>
> (1) Now as far as I know, Kwant allows us to calculate transmission as a
> number T(E). What I need for my code is 't' where Trace(t*†*t) = T(E).
> Could somebody let me know how can I get the desired quantity 't'?. But I
> don't know how I can get the coupling matrix *ГL(E) between the left (or
> right) lead and the conductor*
>
> (2) Also, we know that t = *ГL(E)½ GC(E) ГR(E)½ .But I don't know how I
> can get the coupling matrix ГL(E) between the left (or right) lead and the
> conductor. Is it possible to get too?*
>
> *PS - My aim is to find the wavefunctions inside the nanoribbon (which
> Kwant can do very conveniently) and also their phases! I have found the
> wavefunctions but am unable to find their phases. If there's any other way
> to find it that would also be extremely helpful.*
>
> *Any help would be greatly appreciated.*
>
> *Thanks and Regards,*
> *Shivang Agarwal*
> --
> *Shivang Agarwal*
> Junior Undergraduate
> Discipline of Electrical Engineering
> IIT Gandhinagar
>
> Contact: +91-9869321451
>



-- 
Abbout Adel


Re: [Kwant] Coupling Matrix between Lead and Conductor

2018-06-06 Thread Shivang Agarwal
Just a correction:

I am interested in finding the transmission matrix 't' from the following:

t†t = *ГL(E)½ GC†(E) ГR(E) GC(E) ГL(E)½ *

Best Regards,
Shivang

On Thu, Jun 7, 2018 at 2:23 AM, Shivang Agarwal  wrote:

> Hello authors,
>
> I am trying to perform an eigenchannel analysis of a graphene nanoribbon.
> For that I will be using the formula :
> *T(E) = ГL(E)½ GC†(E) ГR(E) GC(E) ГL(E)½ *
> where *ГL(E)* is the coupling matrix between the left lead and the
> conductor, *GC(E)* is the greens function matrix of the conductor
> (system) and '†' is the dagger operator. The equation is from the
> following paper: https://journals.aps.org/prb/pdf/10.1103/PhysRevB.
> 73.075429
>
> (1) Now as far as I know, Kwant allows us to calculate transmission as a
> number T(E). What I need for my code is 't' where Trace(t*†*t) = T(E).
> Could somebody let me know how can I get the desired quantity 't'?. But I
> don't know how I can get the coupling matrix *ГL(E) between the left (or
> right) lead and the conductor*
>
> (2) Also, we know that t = *ГL(E)½ GC(E) ГR(E)½ .But I don't know how I
> can get the coupling matrix ГL(E) between the left (or right) lead and the
> conductor. Is it possible to get too?*
>
> *PS - My aim is to find the wavefunctions inside the nanoribbon (which
> Kwant can do very conveniently) and also their phases! I have found the
> wavefunctions but am unable to find their phases. If there's any other way
> to find it that would also be extremely helpful.*
>
> *Any help would be greatly appreciated.*
>
> *Thanks and Regards,*
> *Shivang Agarwal*
> --
> *Shivang Agarwal*
> Junior Undergraduate
> Discipline of Electrical Engineering
> IIT Gandhinagar
>
> Contact: +91-9869321451
>



-- 
*Shivang Agarwal*
Junior Undergraduate
Discipline of Electrical Engineering
IIT Gandhinagar

Contact: +91-9869321451