Dear all, I am trying to implement a transport calculation for the Haldane model on armchair and zig-zag graphene nanoribbons (with open boundary conditions along the y-direction and periodic boundary conditions along the x-direction, i.e., the transport direction). In particular, my system consists of a finite-sized scatterer attached to two semi-infinite leads. The system is "homogeneous," meaning that all three components (left lead, scatterer, and right lead) share the same Haldane Hamiltonian (https://doi.org/10.1103/PhysRevLett.61.2015). I am writing to seek assistance because I am encountering two major problems when extracting the eigenstates of the scatterer at a fixed energy:
1)When the system is constructed with zig-zag edges, I find a limit on the width of the sample in the y-direction, beyond which the wave functions cannot be calculated using the kwant.wave_function() method. Specifically, if the ribbon exceeds this width, for certain energy values, calling kwant.wave_function(sys, energy) produces the following error: "RuntimeError: Numbers of left- and right-propagating modes differ, possibly due to a numerical instability." This appears to result from an accumulation of lead bands, which makes the identification of propagating modes inaccurate. 2)When the system is constructed with armchair edges, the kwant.wave_function(system, energy) method again fails to properly return the eigenstates of the scatterer. However, in this case, the error occurs for all ribbon widths (in the y-direction) and seems unrelated to the energy value. The error is: "LinAlgError: Reordering failed; problem is very ill-conditioned." I have not been able to resolve these issues and would greatly appreciate any insights or suggestions you might have for addressing them. Thank you for your time. Best regards, Lorenzo Cavicchi