Hi, You might test it with Wilson correction.
### ----------------- Wilson correction ------------------------ def onsite_Wilson(site, A): return -(2*A)*sigma_z def hopping_Wilson(site_1, site_2, A): d_projection_xy = site_2.pos - site_1.pos d_12 =d_projection_xy/np.linalg.norm(d_projection_xy) return 1j*A/2*(τ*sigma_x*d_12[0] + sigma_y*d_12[1]) + (A/2)*sigma_z In my case 1j d_12[0] stands for "kx" in *kwant**.**continuum**.* *discretize* and 1j d_12[1] stands for "ky". Ham_wilson = ("A/2 * (k_x * sigma_x + k_y * sigma_y)""+ (-2*A) * sigma_z" You have also to adjust it to your case (A=! depending on your Hamiltonian). See ref1. I don't know what would happen if we used a honeycomb lattice. For sure if you want to test it, we will do it without kwant.continuum.discretize modules. ref1*. Beenakker,et al. Ann. Phys. *(*Berlin*) *2023*, 2300081. *DOI: 10.1002/andp.202300081* I hope this will help. best Le jeu. 20 juin 2024 à 06:45, <ac76...@sjtu.edu.cn> a écrit : > Thank you for your answer. If we use a honeycomb lattice to discretize the > Hamiltonian, can this solve the problem? How should we modify > landau_levels.py accordingly? I would appreciate your general suggestions > on this matter. Best regards. >