Dear kwant community: I am investigating the `kwant.greens_function`。 I would like to get the lead self-energies and add to the original system Hamiltonian and then inverse it, thus obtaining the retarded green's function. I tested, but the resulted green's function is not identical to the one kwant calculated. I want to know the reason. Is it because what I describe in the title?
Below is a minimal code example: ``` lat = kwant.lattice.square() def make_system(r=20, t=-1): def circle(pos): x, y = pos return x**2 + y**2 < r**2 syst = kwant.Builder() syst[lat.shape(circle, (0, 0))] = 0 syst[lat.neighbors()] = t syst.eradicate_dangling() def lead_shape(pos): return -12 < pos[0] < 12 lead = kwant.Builder( kwant.TranslationalSymmetry((0, 1))) lead[lat.shape(lead_shape, (0, 0))] = 0 lead[lat.neighbors()] = -t syst.attach_lead(lead) return syst syst = make_system() fsyst = syst.finalized() kwant.plot(fsyst) greens_function=kwant.greens_function(fsyst) Hc = fsyst.hamiltonian_submatrix(sparse=False) index = fsyst.lead_interfaces[0] Hc[np.ix_(index, index)] += greens_function.lead_info[0] Gr = np.linalg.inv(-Hc) Gr[np.ix_(index, index)]-greens_function.submatrix(0, 0) # should be a zero matrix ``` Bests, Wilson