Kwant scattering wave function vs Green's function comparison
![](https://secure.gravatar.com/avatar/56c25fca349a068bea6559d29fcbe0a4.jpg?s=120&d=mm&r=g)
Hello Kwant users, I am trying to compare the retarded Green's function of a simple 1D wire attached to two leads using two different methods: (I) Using scattering wave function obtained from the Kwant software and using Eq. 25 in energy domain of "Numerical simulations of time resolved quantum electronics (https://arxiv.org/abs/1307.6419) written by Kwant authors. (II) Direct computation of the retarded Green's function by inverting device Hamiltonian with self energies of the attached leads (again computed from the Kwant software): G^r(E) = [E+\i*\eta - H- \Sigma^r_{leads}]^{-1} for a relatively small system size (5 sites in the attached example). Here both H and \Sigma^r are computed from the Kwant software. However, I find that these two results do not agree even in a simple 1D example when on-site potential is present in the few sites of device or scattering region only. I have attached the Python script with this email. Does anyone know the reason behind the discrepancy between the two methods?I would greatly appreciate any comments/suggestions on how we can resolve this error? Thanks!
![](https://secure.gravatar.com/avatar/32271152e36eabad61942566538dfabf.jpg?s=120&d=mm&r=g)
Dear Amrit, You wrote: " this is based on Eq. 25 in energy domain of https://arxiv.org/pdf/1307.6419.pdf " and deduced that G^r(E) = -i*\Psi(E)*\Psi^\dag(E). Your deduction must be wrong. I suggest to you to do the calculation for a simple case and test your formula in a clean 1D system. G^r=1/(EE-H+i eta) ==> G^r_ij= Sum_k Psi_ik 1/(EF-E_k+i eta) Psi_kj The sum over k can be changed to a an integral over energy G^r_ij= Integral Psi_i(E) 1/(EF-E_k+i eta) Psi_j(E)^dagger * dk/dE *dE when you carry on the calculation,you see that there is a term which is missing in your formula which is dk/dE. This term is the inverse of the velocity. If you carry the calculation for the 1D case, you will find the correct form known in literature. I want to bring to your attention that for Greens energy calculation, the evanescent modes are also taken into account and not only the propagating ones (the one obtained by kwant. wavefuntion are propagating) . I hope this helps, Regards, Adel On Sat, Sep 14, 2019 at 9:59 PM Amrit Poudel <quantum.apg@gmail.com> wrote:
Hello Kwant users,
I am trying to compare the retarded Green's function of a simple 1D wire attached to two leads using two different methods:
(I) Using scattering wave function obtained from the Kwant software and using Eq. 25 in energy domain of "Numerical simulations of time resolved quantum electronics (https://arxiv.org/abs/1307.6419) written by Kwant authors.
(II) Direct computation of the retarded Green's function by inverting device Hamiltonian with self energies of the attached leads (again computed from the Kwant software): G^r(E) = [E+\i*\eta - H- \Sigma^r_{leads}]^{-1} for a relatively small system size (5 sites in the attached example). Here both H and \Sigma^r are computed from the Kwant software.
However, I find that these two results do not agree even in a simple 1D example when on-site potential is present in the few sites of device or scattering region only.
I have attached the Python script with this email.
Does anyone know the reason behind the discrepancy between the two methods?I would greatly appreciate any comments/suggestions on how we can resolve this error?
Thanks!
-- Abbout Adel
![](https://secure.gravatar.com/avatar/ae9e7af372e9e3da16f145c2789d2069.jpg?s=120&d=mm&r=g)
Hi Adel, Thanks a lot for your quick response. I appreciate it. Please note that I have carefully tested the two approaches (see below) in a clean 1D system without random onsite potential. Only in that case, two approaches match, so my equations are correct. However, when on-site potential is present, then two approaches do not match at all. I just want to clarify a few things: First, in 1D, there is only one mode present, so both wave function and Greens function approaches take into account the same number of modes. There are no additional modes that Greens function somehow finds and takes into account. This cannot be the reason for discrepancy. Second clarification is, my approach (I) is direct inversion: G^{r}(E) = [E+i\eta - H - \Sigma^r_{leads}]^{-1} . I can directly invert a small matrix to compute G^{r}. I don’t use this formula to derive my wave function approach. This is used to test whether Greens function computed using scattering wave function is accurate or not. My approach (II) is based on *scattering wave function* (note the emphasis on scattering, these are not eigen modes!!) of the scattering region of the system. The connection between the scattering wave function and retarded Green’s function is provided in Eq. 25 of the reference I quoted earlier. Please check the reference before you do your derivation, which I believe is incorrect. You are using equations that is neither related to Eq 25, nor related to what I am using. In that reference, Green’s function is given in time domain (t, t’). It is a straightforward task to write that in frequency or energy domain since the system is time independent, so G is time translationally invariant (t-t’). The energy domain expression is: G^r(E) = -i \Psi_{\alpha}(E)*\Psi^\dag_{\alpha}(E). Here \Psi_{\alpha}(E) is a *scattering wave function* at arbitrary energy E. Again, I want to emphasize that these are scattering states not some eigenmodes. I would appreciate if you could start your own derivation for Greens function using *scattering wave function* (please not that our system is open system) starting from Eq. 25 of the reference I mentioned. You will end up with -i \Psi_{\alpha}(E)*\Psi^\dag_{\alpha}(E) for a stationary or time independent system. If you run my Python example file, which I included in my previous email, by removing the on-site potential (comment out that line), you will see that two approaches exactly match and both give the same Greens function. If I had missed a velocity or something like you said, then two quantities would not have matched in a clean 1D system. Please try my code yourself and see for yourself (a small typo in the code in the if statement for onsite potential, instead of “or” use “and”). I would really appreciate if we could resolve this discrepancy. I look forward to any suggestions. Thanks for your time! On Sun, Sep 15, 2019 at 7:27 AM Abbout Adel <abbout.adel@gmail.com> wrote:
Dear Amrit,
You wrote: " this is based on Eq. 25 in energy domain of https://arxiv.org/pdf/1307.6419.pdf " and deduced that G^r(E) = -i*\Psi(E)*\Psi^\dag(E).
Your deduction must be wrong. I suggest to you to do the calculation for a simple case and test your formula in a clean 1D system. G^r=1/(EE-H+i eta) ==> G^r_ij= Sum_k Psi_ik 1/(EF-E_k+i eta) Psi_kj
The sum over k can be changed to a an integral over energy G^r_ij= Integral Psi_i(E) 1/(EF-E_k+i eta) Psi_j(E)^dagger * dk/dE *dE
when you carry on the calculation,you see that there is a term which is missing in your formula which is dk/dE. This term is the inverse of the velocity. If you carry the calculation for the 1D case, you will find the correct form known in literature.
I want to bring to your attention that for Greens energy calculation, the evanescent modes are also taken into account and not only the propagating ones (the one obtained by kwant. wavefuntion are propagating) .
I hope this helps, Regards, Adel
On Sat, Sep 14, 2019 at 9:59 PM Amrit Poudel <quantum.apg@gmail.com> wrote:
Hello Kwant users,
I am trying to compare the retarded Green's function of a simple 1D wire attached to two leads using two different methods:
(I) Using scattering wave function obtained from the Kwant software and using Eq. 25 in energy domain of "Numerical simulations of time resolved quantum electronics (https://arxiv.org/abs/1307.6419) written by Kwant authors.
(II) Direct computation of the retarded Green's function by inverting device Hamiltonian with self energies of the attached leads (again computed from the Kwant software): G^r(E) = [E+\i*\eta - H- \Sigma^r_{leads}]^{-1} for a relatively small system size (5 sites in the attached example). Here both H and \Sigma^r are computed from the Kwant software.
However, I find that these two results do not agree even in a simple 1D example when on-site potential is present in the few sites of device or scattering region only.
I have attached the Python script with this email.
Does anyone know the reason behind the discrepancy between the two methods?I would greatly appreciate any comments/suggestions on how we can resolve this error?
Thanks!
-- Abbout Adel
![](https://secure.gravatar.com/avatar/32271152e36eabad61942566538dfabf.jpg?s=120&d=mm&r=g)
Dear Amrit, The reason I said your deduction of the Greenfunction formula should be wrong is simple: if for example you have the simple case of only one site as a scatterer, you formula " i psi psi^\dagger" will give you a greens function pure imaginary, which is of course incorrect since you can get the exact result analytically and check that. The procedure I was mentioning, is the standard method that you can find in the book of Economou for example, where the integration from k to E will involve the density dk/dE (which is the inverse of a velocity.) Now. If your aim is to calculate the exact Greens function with kwant, the method is as follows: Kwant calculates the greens function solely between the sites connected to leads kwant.greensfunction(syst, out_leads=[0], in_leads=[0]) will give you the subblock of greens function between the sites connected to lead "0" If you want the greens function at a given site, you can do that as suggested by Viacheslav Ostrouk [1], by mounting a virtual lead with a self energy 0 to your site. If this virtual lead is number 3 than g= kwant.greensfunction(syst, out_leads=[3], in_leads=[3]). If your intention is to check the formula 25 in the reference you shared, that probably needs more thinking and reading of the details in the reference. I hope this helps Adel [1] https://mailman-mail5.webfaction.com/pipermail/kwant-discuss/2016-January/00... On Mon, Sep 16, 2019 at 9:51 AM Amrit Poudel <ap.amritpoudel@gmail.com> wrote:
Hi Adel,
Thanks a lot for your quick response. I appreciate it.
Please note that I have carefully tested the two approaches (see below) in a clean 1D system without random onsite potential. Only in that case, two approaches match, so my equations are correct. However, when on-site potential is present, then two approaches do not match at all.
I just want to clarify a few things: First, in 1D, there is only one mode present, so both wave function and Greens function approaches take into account the same number of modes. There are no additional modes that Greens function somehow finds and takes into account. This cannot be the reason for discrepancy.
Second clarification is, my approach (I) is direct inversion: G^{r}(E) = [E+i\eta - H - \Sigma^r_{leads}]^{-1} . I can directly invert a small matrix to compute G^{r}. I don’t use this formula to derive my wave function approach. This is used to test whether Greens function computed using scattering wave function is accurate or not.
My approach (II) is based on *scattering wave function* (note the emphasis on scattering, these are not eigen modes!!) of the scattering region of the system. The connection between the scattering wave function and retarded Green’s function is provided in Eq. 25 of the reference I quoted earlier. Please check the reference before you do your derivation, which I believe is incorrect. You are using equations that is neither related to Eq 25, nor related to what I am using.
In that reference, Green’s function is given in time domain (t, t’). It is a straightforward task to write that in frequency or energy domain since the system is time independent, so G is time translationally invariant (t-t’). The energy domain expression is:
G^r(E) = -i \Psi_{\alpha}(E)*\Psi^\dag_{\alpha}(E).
Here \Psi_{\alpha}(E) is a *scattering wave function* at arbitrary energy E. Again, I want to emphasize that these are scattering states not some eigenmodes.
I would appreciate if you could start your own derivation for Greens function using *scattering wave function* (please not that our system is open system) starting from Eq. 25 of the reference I mentioned. You will end up with -i \Psi_{\alpha}(E)*\Psi^\dag_{\alpha}(E) for a stationary or time independent system.
If you run my Python example file, which I included in my previous email, by removing the on-site potential (comment out that line), you will see that two approaches exactly match and both give the same Greens function. If I had missed a velocity or something like you said, then two quantities would not have matched in a clean 1D system. Please try my code yourself and see for yourself (a small typo in the code in the if statement for onsite potential, instead of “or” use “and”).
I would really appreciate if we could resolve this discrepancy. I look forward to any suggestions.
Thanks for your time!
On Sun, Sep 15, 2019 at 7:27 AM Abbout Adel <abbout.adel@gmail.com> wrote:
Dear Amrit,
You wrote: " this is based on Eq. 25 in energy domain of https://arxiv.org/pdf/1307.6419.pdf " and deduced that G^r(E) = -i*\Psi(E)*\Psi^\dag(E).
Your deduction must be wrong. I suggest to you to do the calculation for a simple case and test your formula in a clean 1D system. G^r=1/(EE-H+i eta) ==> G^r_ij= Sum_k Psi_ik 1/(EF-E_k+i eta) Psi_kj
The sum over k can be changed to a an integral over energy G^r_ij= Integral Psi_i(E) 1/(EF-E_k+i eta) Psi_j(E)^dagger * dk/dE *dE
when you carry on the calculation,you see that there is a term which is missing in your formula which is dk/dE. This term is the inverse of the velocity. If you carry the calculation for the 1D case, you will find the correct form known in literature.
I want to bring to your attention that for Greens energy calculation, the evanescent modes are also taken into account and not only the propagating ones (the one obtained by kwant. wavefuntion are propagating) .
I hope this helps, Regards, Adel
On Sat, Sep 14, 2019 at 9:59 PM Amrit Poudel <quantum.apg@gmail.com> wrote:
Hello Kwant users,
I am trying to compare the retarded Green's function of a simple 1D wire attached to two leads using two different methods:
(I) Using scattering wave function obtained from the Kwant software and using Eq. 25 in energy domain of "Numerical simulations of time resolved quantum electronics (https://arxiv.org/abs/1307.6419) written by Kwant authors.
(II) Direct computation of the retarded Green's function by inverting device Hamiltonian with self energies of the attached leads (again computed from the Kwant software): G^r(E) = [E+\i*\eta - H- \Sigma^r_{leads}]^{-1} for a relatively small system size (5 sites in the attached example). Here both H and \Sigma^r are computed from the Kwant software.
However, I find that these two results do not agree even in a simple 1D example when on-site potential is present in the few sites of device or scattering region only.
I have attached the Python script with this email.
Does anyone know the reason behind the discrepancy between the two methods?I would greatly appreciate any comments/suggestions on how we can resolve this error?
Thanks!
-- Abbout Adel
-- Abbout Adel
![](https://secure.gravatar.com/avatar/56c25fca349a068bea6559d29fcbe0a4.jpg?s=120&d=mm&r=g)
Hi Adel, Thanks a lot for your quick response. I appreciate it. Please note that I have carefully tested the two approaches (see below) in a clean 1D system without random onsite potential. Only in that case, two approaches match, so my equations are correct. However, when on-site potential is present, then two approaches do not match at all. I just want to clarify a few things: First, in 1D, there is only one mode present, so both wave function and Greens function approaches take into account the same number of modes. There are no additional modes that Greens function somehow finds and takes into account. This cannot be the reason for discrepancy. Second clarification is, my approach (I) is direct inversion: G^{r}(E) = [E+i\eta - H - \Sigma^r_{leads}]^{-1} . I can directly invert a small matrix to compute G^{r}. I don’t use this formula to derive my wave function approach. This is used to test whether Greens function computed using scattering wave function is accurate or not. My approach (II) is based on *scattering wave function* (note the emphasis on scattering, these are not eigen modes!!) of the scattering region of the system. The connection between the scattering wave function and retarded Green’s function is provided in Eq. 25 of the reference I quoted earlier. Please check the reference before you do your derivation, which I believe is incorrect. You are using equations that is neither related to Eq 25, nor related to what I am using. In that reference, Green’s function is given in time domain (t, t’). It is a straightforward task to write that in frequency or energy domain since the system is time independent, so G is time translationally invariant (t-t’). The energy domain expression is: G^r(E) = -i \Psi_{\alpha}(E)*\Psi^\dag_{\alpha}(E). Here \Psi_{\alpha}(E) is a *scattering wave function* at arbitrary energy E. Again, I want to emphasize that these are scattering states not some eigenmodes. I would appreciate if you could start your own derivation of retarded Greens function using *scattering wave function* (please not that our system is open system) starting from Eq. 25 of the reference I mentioned. You will end up with : G^{r} (E) = -i \Psi_{\alpha}(E)*\Psi^\dag_{\alpha}(E) for a stationary or time independent system. If you run my Python example file, which I included in my previous email, by removing the on-site potential (comment out that line), you will see that two approaches exactly match and both give the same Greens function. If I had missed a velocity or something like you said, then two quantities would not have matched in a clean 1D system. Please try my code yourself and see for yourself (a small typo in the code in the if statement for onsite potential, instead of “or” use “and”). Thanks a lot! On Sunday, September 15, 2019, Abbout Adel <abbout.adel@gmail.com> wrote:
Dear Amrit,
You wrote: " this is based on Eq. 25 in energy domain of https://arxiv.org/pdf/1307. 6419.pdf " and deduced that G^r(E) = -i*\Psi(E)*\Psi^\dag(E).
Your deduction must be wrong. I suggest to you to do the calculation for a simple case and test your formula in a clean 1D system. G^r=1/(EE-H+i eta) ==> G^r_ij= Sum_k Psi_ik 1/(EF-E_k+i eta) Psi_kj
The sum over k can be changed to a an integral over energy G^r_ij= Integral Psi_i(E) 1/(EF-E_k+i eta) Psi_j(E)^dagger * dk/dE *dE
when you carry on the calculation,you see that there is a term which is missing in your formula which is dk/dE. This term is the inverse of the velocity. If you carry the calculation for the 1D case, you will find the correct form known in literature.
I want to bring to your attention that for Greens energy calculation, the evanescent modes are also taken into account and not only the propagating ones (the one obtained by kwant. wavefuntion are propagating) .
I hope this helps, Regards, Adel
On Sat, Sep 14, 2019 at 9:59 PM Amrit Poudel <quantum.apg@gmail.com> wrote:
Hello Kwant users,
I am trying to compare the retarded Green's function of a simple 1D wire attached to two leads using two different methods:
(I) Using scattering wave function obtained from the Kwant software and using Eq. 25 in energy domain of "Numerical simulations of time resolved quantum electronics (https://arxiv.org/abs/1307.6419) written by Kwant authors.
(II) Direct computation of the retarded Green's function by inverting device Hamiltonian with self energies of the attached leads (again computed from the Kwant software): G^r(E) = [E+\i*\eta - H- \Sigma^r_{leads}]^{-1} for a relatively small system size (5 sites in the attached example). Here both H and \Sigma^r are computed from the Kwant software.
However, I find that these two results do not agree even in a simple 1D example when on-site potential is present in the few sites of device or scattering region only.
I have attached the Python script with this email.
Does anyone know the reason behind the discrepancy between the two methods?I would greatly appreciate any comments/suggestions on how we can resolve this error?
Thanks!
-- Abbout Adel
![](https://secure.gravatar.com/avatar/ae9e7af372e9e3da16f145c2789d2069.jpg?s=120&d=mm&r=g)
The reason for discrepancy between the scattering wave function and Greens function is extremely subtle. I have now figured out the reason and it is most definitely not due to missing velocity like you suggested. Essentially, Psi Psi^\dag boils down to the imaginary part of the Greens function for *incoming mode from the left lead only*. Thanks for your input. I appreciate it. On Sun, Sep 15, 2019 at 4:53 PM Amrit Poudel <quantum.apg@gmail.com> wrote:
Hi Adel,
Thanks a lot for your quick response. I appreciate it.
Please note that I have carefully tested the two approaches (see below) in a clean 1D system without random onsite potential. Only in that case, two approaches match, so my equations are correct. However, when on-site potential is present, then two approaches do not match at all.
I just want to clarify a few things: First, in 1D, there is only one mode present, so both wave function and Greens function approaches take into account the same number of modes. There are no additional modes that Greens function somehow finds and takes into account. This cannot be the reason for discrepancy.
Second clarification is, my approach (I) is direct inversion: G^{r}(E) = [E+i\eta - H - \Sigma^r_{leads}]^{-1} . I can directly invert a small matrix to compute G^{r}. I don’t use this formula to derive my wave function approach. This is used to test whether Greens function computed using scattering wave function is accurate or not.
My approach (II) is based on *scattering wave function* (note the emphasis on scattering, these are not eigen modes!!) of the scattering region of the system. The connection between the scattering wave function and retarded Green’s function is provided in Eq. 25 of the reference I quoted earlier. Please check the reference before you do your derivation, which I believe is incorrect. You are using equations that is neither related to Eq 25, nor related to what I am using.
In that reference, Green’s function is given in time domain (t, t’). It is a straightforward task to write that in frequency or energy domain since the system is time independent, so G is time translationally invariant (t-t’). The energy domain expression is:
G^r(E) = -i \Psi_{\alpha}(E)*\Psi^\dag_{\alpha}(E).
Here \Psi_{\alpha}(E) is a *scattering wave function* at arbitrary energy E. Again, I want to emphasize that these are scattering states not some eigenmodes.
I would appreciate if you could start your own derivation of retarded Greens function using *scattering wave function* (please not that our system is open system) starting from Eq. 25 of the reference I mentioned. You will end up with : G^{r} (E) = -i \Psi_{\alpha}(E)*\Psi^\dag_{\alpha}(E) for a stationary or time independent system.
If you run my Python example file, which I included in my previous email, by removing the on-site potential (comment out that line), you will see that two approaches exactly match and both give the same Greens function. If I had missed a velocity or something like you said, then two quantities would not have matched in a clean 1D system. Please try my code yourself and see for yourself (a small typo in the code in the if statement for onsite potential, instead of “or” use “and”).
Thanks a lot!
On Sunday, September 15, 2019, Abbout Adel <abbout.adel@gmail.com> wrote:
Dear Amrit,
You wrote: " this is based on Eq. 25 in energy domain of https://arxiv.org/pdf/1307.6419.pdf " and deduced that G^r(E) = -i*\Psi(E)*\Psi^\dag(E).
Your deduction must be wrong. I suggest to you to do the calculation for a simple case and test your formula in a clean 1D system. G^r=1/(EE-H+i eta) ==> G^r_ij= Sum_k Psi_ik 1/(EF-E_k+i eta) Psi_kj
The sum over k can be changed to a an integral over energy G^r_ij= Integral Psi_i(E) 1/(EF-E_k+i eta) Psi_j(E)^dagger * dk/dE *dE
when you carry on the calculation,you see that there is a term which is missing in your formula which is dk/dE. This term is the inverse of the velocity. If you carry the calculation for the 1D case, you will find the correct form known in literature.
I want to bring to your attention that for Greens energy calculation, the evanescent modes are also taken into account and not only the propagating ones (the one obtained by kwant. wavefuntion are propagating) .
I hope this helps, Regards, Adel
On Sat, Sep 14, 2019 at 9:59 PM Amrit Poudel <quantum.apg@gmail.com> wrote:
Hello Kwant users,
I am trying to compare the retarded Green's function of a simple 1D wire attached to two leads using two different methods:
(I) Using scattering wave function obtained from the Kwant software and using Eq. 25 in energy domain of "Numerical simulations of time resolved quantum electronics (https://arxiv.org/abs/1307.6419) written by Kwant authors.
(II) Direct computation of the retarded Green's function by inverting device Hamiltonian with self energies of the attached leads (again computed from the Kwant software): G^r(E) = [E+\i*\eta - H- \Sigma^r_{leads}]^{-1} for a relatively small system size (5 sites in the attached example). Here both H and \Sigma^r are computed from the Kwant software.
However, I find that these two results do not agree even in a simple 1D example when on-site potential is present in the few sites of device or scattering region only.
I have attached the Python script with this email.
Does anyone know the reason behind the discrepancy between the two methods?I would greatly appreciate any comments/suggestions on how we can resolve this error?
Thanks!
-- Abbout Adel
participants (3)
-
Abbout Adel
-
Amrit Poudel
-
Amrit Poudel