Hi Adel > I am testing the module wraparound and trying to understand how to match > the numerical results with the well known formula from literature. > > I look at the example of graphene given in the module's test [1]: the > overall band structure seems fine, but when I try to check a set of > eigenvalues for a given (kx,ky) and compare it with the exact formula > enclosed below, I fail whatever the parameter 'a' that I choose! > > The command I use is straightforward: > > kx,ky=pi/4,pi/6 > np.sort(np.linalg.eigvalsh(syst.hamiltonian_submatrix( args + (kx, ky), > sparse=False)).real)
The reason that this does not give the result you expect is because the symmetry vectors for graphene are not orthogonal. The k parameters expected by the wrapped around system are actually the quasimomenta *in the direction of the reciprocal symmetry vectors*, so in this case calling them 'kx' and 'ky' is a bit of a misnomer. This is why we only test @ k=(0, 0) for the graphene case, to avoid having to do this transformation. To get what you want you will need to transform kx and ky into the basis of reciprocal symmetry vectors. The function 'plot_2d_bands' in the wraparound module includes code to do this. Check it out, and if it is not clear post back to this thread and we'll give you a hand. Happy Kwanting, Joe
signature.asc
Description: PGP signature
