1

I'm currently working on a project involving the calculation of band structures for a 2D hexagonal lattice, and I need some guidance on how to properly parametrize a path that covers the high-symmetry points in the Brillouin zone.

Specifically, I am interested in understanding the most effective way to define a continuous path that connects these key points. The path should ideally start at one high-symmetry point and move smoothly through others before returning to the initial point, thus forming a closed loop. The high-symmetry points I am considering include $\Gamma\Gamma$ (the center of the Brillouin zone), KK and MM points.

My main questions are:

  1. What is the best practice for parametrizing such a path in the Brillouin zone of a hexagonal lattice?

  2. Are there specific mathematical formulas or techniques that are commonly used to ensure the path effectively captures the necessary symmetry properties and physical characteristics of the lattice?

  3. How can I ensure that my parametrization is both efficient and covers the essential aspects of the band structure analysis?

Any insights, references, or examples you could share would be greatly appreciated. I'm looking for both theoretical advice and practical tips on how to implement this in computational simulations (using tools like MATLAB, Python, etc.).

What I have now in python for the square lattice is the next parametrization:

cond = [k <= (np.pi / a), (k > (np.pi / a) and k <= (2 * np.pi / a)), k > (2 * np.pi /a)];
    int1 = [np.pi / a - k, np.pi / a - k];
    int2 = [k - np.pi / a, 0];
    int3 = [np.pi / a, k - 2 * np.pi / a];

bloch = [np.array(int1), np.array(int2), np.array(int3)]

for i in range(len(cond)): if cond[i]: return bloch[i]

And is working very good. I tried a similar procedure with the hexagonal lattice but I cannot reproduce the graph on this paper: PhysRevB.67.245107

Thank you in advance for your help!

Best regards,

Felipe C.

0 Answers0