Thank you, Pablo and Joe,
Yes, KPM method did help, but I want to mention that
energy_resolution parameter can be a bit misleading and for sharp DOS
features one really needs to set it to notably lower value than naively
expected.
Here is a bit of my code:
def compute_ldos4(sys, phi, depth, width, gap, epoints):
print("computing LDOS for fi=" +str(phi))
siteA = sys.id_by_site[a(0,0)]
siteB = sys.id_by_site[b(0,0)]
where =lambda s: (s.tag == numpy.array([0,0]))and ((s.family == a)or
(s.family == b))
vector_factory = kwant.kpm.LocalVectors(sys, where)
local_dos = kwant.kpm.SpectralDensity(sys,params={'phi': phi,'depth':
depth,'width': width,'gap': gap},
num_vectors=None,
vector_factory=vector_factory,
mean=False,num_moments=10000)
densities = local_dos(epoints)
return densities
Best wishes,
Sergey
On 20/08/2020 16:58, Joseph Weston (Aquent LLC - Canada) wrote:
Hi Sergey
Pablo already said a few words about using KPM
Does kwant ldos function work correctly if all the leads are insulating for a
given energy? Does it correctly catch the localized states in the scattering
region?
kwant.ldos can only give the contribution to the ldos from the continuous part
of the spectrum (i.e. the contribution from the *scattering* states).
If, as you indicate, none of your leads have open propagating modes at the
energy that you are looking at then kwant.ldos will give 0.
Calculating the bound state spectrum for an open system (i.e. in the presence
of leads) is not completely trivial.
This paper [1] outlines an algorithm to do so, but it's not foolproof
(especially in the presence of almost-degeneracies).
I attempted to implement this algorithm in Kwant [2], but didn't finish due to
time constraints.
If I understand your problem correctly you would actually like to study an
*infinite* 2D sheet?
As you have discovered this is not really possible in current Kwant and you
have to resort to using approximations (e.g. attaching many leads).
The good news is that there is work afoot to enable these kinds of calculations
in Kwant, based on the approach outlined in this paper [3].
The bad news is that these things tend to move slowly and implementing [3] in a
way that is robust remains a challenge.
On balance I would suggest a large finite sample and use of KPM may be your
best bet for now.
Happy Kwanting,
Joe
[1]: https://arxiv.org/abs/1711.08250
[2]: https://gitlab.kwant-project.org/kwant/kwant/-/merge_requests/320
[3]: https://arxiv.org/abs/1906.09210