Jerry xhm wrote: > sym.add_site_family(lat, other_vectors=[v]) with v orthogonal to the > translation symmetry vector places the lead in the way I expected. > Still, there are one supercell's extra sites added in blue connecting > the original central region and the lead.
All you can do with ‘add_site_family’ and its ‘other_vectors’ parameter is change the orientation of the interface between unit cells. It will always remain straight and its particular rasterization will be according to the lattice module’s own idea. For example, if you had a round central region and you insisted that ‘attach_lead’ adds no additional sites, that would mean that the delimitation between lead unit cells would have to be round and not straight. While this is supported by Kwant’s data structures it’s not something that the builder module can do currently. You would have to build your low-level system manually instead of finalizing a builder. > If I put disorder in the central region, I presume these added sites > although in blue color will be the same as the lead Hamiltonian and > thus do not have disorder? If so, I guess it might only very slightly > affect the physics once the central region is not too small. The physics should be absolutely identical since the Hamiltonian of the added sites is taken verbatim from the corresponding sites of the lead. > And these extra sites are currently unavoidable? Everything is possible... The fundamental problem is that the code that finalizes a lead (kwant.builder.InfiniteSystem.__init__) insists on modeling the unit cell of the finalized lead after the fundamental domain of the translational symmetry. (See, both concepts are in principle unrelated, but we thought back then that it was a nice simplification to do it this way, since the shape of the unit cell has no physical consequence.) One way to resolve this would be to enhance said constructor (and the related ‘BuilderLead’) to support arbitrary user-specified shapes of unit cells. Another way would be to add a custom symmetry (an alternative to ‘kwant.TranslationalSymmetry’) whose fundamental domain has the shape that you would like to have. But both are not easy and require a good understanding of the internals of Kwant. Perhaps in your particular case the best is to embrace the imposed shape of the unit cell and simply lay out your central system such that no padding is added. Christoph
smime.p7s
Description: S/MIME cryptographic signature