Dear Hu, The article you are mentioning is discussing the recursive algorithm for the calculation of the Green's function. Using this method to obtain the self energy may be unstable because it is difficult to choose the correct small imaginary part (i*epsilon) to start with.
If your goal is just to use the self energy in a correct way I suggest for you to see this very instructive example by Joseph [1]. If you want to know the exact and general solution of the fixed point method (the solution giving the self energy from the recursive algorithm) I suggest for you this very good paper [2]. You can also find a different (and very simple method) in this paper [3]. For the numerical subtilities, I suggest for you to have a look at Wimmer's thesis (chapter: Lead Green's function ) which is very interesting to attack the stability problem. [4] I hope that this helps. Adel [1] https://mailman-mail5.webfaction.com/pipermail/kwant-discuss/2015-May/000350.html [2] Exact solution for the resolvent matrix of a generalized tridiagonal Hamiltonian, PRB 20, 4237 [3] J. Phys. Soc. Jpn 77, 025003 (2008) [4] https://epub.uni-regensburg.de/12142/ On Mon, Apr 10, 2017 at 3:51 AM, 胡 勇亮 <[email protected]> wrote: > Dear Mr. Akhmerov and Kwant-team, > > > Thank you for your email. > > > I have learned how to calculate Green Function through reading Kwant > codes(/Kwant/solvers/commom.py), and I have learned basic principles of > Green Function method before. As I want to write a program all by myself > to calculate transmission of a simple 2-D system of electrons and phonons > by using the Green Function method, I need to know the procedures to get > every element in the lhs(left-hand-side of (H + Sigma_L + Sigma_R - e) G > = - I ). > > It is easy to get the Hamiltonian of the central region and the > excitation energy matrix. Yet I don't know the detailed procedures to > calculate lead self-energy in Kwant. > > > Summary: > > 1. To sharpen my Python skills and increase Physics comprehension, I want > to write a program to calculate Green Function all by myself. > > > 2. Exactly speaking, I know how to calculate the lead self-energy by > iteration *[1]*. However, my code is slow and not stable. So I want to > know the calculation procedures of lead self-energy in Kwant. > > > > [1] M P Lopez Sancho, J M Lopez Sancho, J M L Sancho, and J Rubio. Highly > convergent schemes for the calculation of bulk and surface green functions. > J. Phys. F: Metal Physics, 15(4):851–858, 1985. > > > Sincerely, > > Hu Yongliang > > > > > > ------------------------------ > *发件人:* [email protected] <[email protected]> 代表 Anton > Akhmerov <[email protected]> > *发送时间:* 2017年4月9日 22:58 > *收件人:* 胡 勇亮 > *抄送:* [email protected] > *主题:* Re: [Kwant] Lead self-energy in Green Function method > > Dear Hu Yongliang, > > > Hello, I am interested in Green Function, so I read related Kwant codes > > (kwant.solver.greens_function, make_linear_system, solve_linear_system, > > etc.). I found a lot of optimizations in Kwant, such as LU Decomposition > and > > Matrix Partition, which make Kwant more efficient. To calculate Green > > Function, we need to calculate the self-energy of leads. Though I know > how > > to get self-energy by using command "lead.selfenergy(energy)". I want to > > know how this command works, the codes in "leads.py" are too diffcult to > me. > > The inverse of the left-hand side matrix produced by > make_linear_system in Kwant is the Green's function, i.e. it already > includes the relevant self-energy. However computing the complete > Green's function is extremely inefficient. Can you please be more > specific: do you perhaps need only some matrix elements of the Green's > function? What observable is your final goal? > > Best, > Anton > > > > > > > Sincerely, > > > > > > Hu Yongliang > > > > > > > > > -- Abbout Adel
