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*
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 <shivang.agarwal@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
Hi Shivang,
Le 6 juin 2018 à 22:53, Shivang Agarwal shivang.agarwal@iitgn.ac.in 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 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 https://kwant-project.org/doc/1/reference/kwant.solvers#module-kwant.solvers.defaults.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 https://kwant-project.org/doc/1/reference/kwant.solvers#module-kwant.solvers.default.greens_function() for G(E) And kwant.physic https://kwant-project.org/doc/1/reference/kwant.physics#module-kwant.physicss.selfenergy https://kwant-project.org/doc/1/reference/generated/kwant.physics.selfenergy.html#kwant.physics.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
Thanks Xavier. I now have a clearer picture.
Regards, Shivang
On Thu, Jun 7, 2018 at 11:33 AM Xavier Waintal xavier.waintal@cea.fr wrote:
Hi Shivang,
Le 6 juin 2018 à 22:53, Shivang Agarwal shivang.agarwal@iitgn.ac.in 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 https://kwant-project.org/doc/1/reference/kwant.solvers#module-kwant.solvers.defaults.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 https://kwant-project.org/doc/1/reference/kwant.solvers#module-kwant.solvers.default.greens_function() for G(E) And kwant.physic https://kwant-project.org/doc/1/reference/kwant.physics#module-kwant.physics s.selfenergy https://kwant-project.org/doc/1/reference/generated/kwant.physics.selfenergy.html#kwant.physics.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
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...
Abbout Adel
On Wed, Jun 6, 2018 at 11:53 PM, Shivang Agarwal < shivang.agarwal@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
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 abbout.adel@gmail.com 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...
Abbout Adel
On Wed, Jun 6, 2018 at 11:53 PM, Shivang Agarwal < shivang.agarwal@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
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.agarwal@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 abbout.adel@gmail.com 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...
Abbout Adel
On Wed, Jun 6, 2018 at 11:53 PM, Shivang Agarwal < shivang.agarwal@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
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.agarwal@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.agarwal@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 abbout.adel@gmail.com 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.agarwal@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
Hi Abbout,
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? Also, I am not aware of the method to get wavenumbers k_m. Could you kindly help me out with that as well?
Thanks for the help!
On Sun, Jun 10, 2018 at 1:45 PM Abbout Adel abbout.adel@gmail.com wrote:
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.agarwal@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.agarwal@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 abbout.adel@gmail.com 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...
Abbout Adel
On Wed, Jun 6, 2018 at 11:53 PM, Shivang Agarwal < shivang.agarwal@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
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
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 joseph.weston08@gmail.com 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