6
$\begingroup$

When drawing the band structure, I need to transform the coordinate of k-points into a k-path, but I am not sure what the formula is.

I checked the result of siesta, Here is the coordinates of some k-points

siesta: Band k vectors (Bohr**-1):
  ik            k
   1    -0.158058    -0.000000     0.000000
   2    -0.152790    -0.000000     0.000000
   3    -0.147521    -0.000000     0.000000
   4    -0.142253    -0.000000     0.000000
   5    -0.136984    -0.000000     0.000000
   6    -0.131715    -0.000000     0.000000
   7    -0.126447    -0.000000     0.000000
   8    -0.121178    -0.000000     0.000000
   9    -0.115910    -0.000000     0.000000

Here is the range of the k-path

# k_min, k_max      =     0.0000    0.3722

My question is:
What is the formula I should use to transform k-points coordinates into k-path?

$\endgroup$
1
  • 1
    $\begingroup$ It would be helpful if you provide more information. For example: (i) k-points have three components (in 3D), so what are k_min and k_max, that only appear to have one component? Do you provide an initial and final point for the path segment? Do you provide the number of points along a path segment? In what format are the points given, fractional or absolute coordinates? $\endgroup$
    – ProfM
    Jun 15, 2022 at 9:30

1 Answer 1

4
$\begingroup$

In SIESTA, what I used to do is:

  • Select the high symmetry points
  • Define de number of k points between them
  • Wrote the k path

For example, take a look at the Brillouin zone bellow: enter image description here

In the recommended path, lets take only the first four points $\Gamma$-X-M-$\Gamma$. The corresponding coordinates for $\Gamma$, X and M are:

Gamma: 0 0 0
X: 0 1/2 0
M: 1/2 1/2 0

So, in SIESTA, you add lines like:

1  0.0  0.0  0.0  \Gamma
4  0.0  0.5  0.0  X
4  0.5  0.5  0.0  M
4  0.0  0.0  0.0  \Gamma

This means that the bands will be calculated with only 4 points between (0,0,0) and (0,0.5,0) (for the first segment $\Gamma$-X), 4 points between (0,0.5,0) and (0.5,0.5,0), etc. The points for the first segment will be:

0.0 0.0 0.0
0.0 0.1 0.0
0.0 0.2 0.0
0.0 0.3 0.0
0.0 0.4 0.0
0.0 0.5 0.0

Of course that using only 4 points is an example here to play with the numbers. Using 4 points will give you a segmented band structures, so you need to use more (I usually use 200 and got a smooth curve)

$\endgroup$
6
  • $\begingroup$ After the process in your answer, I need to draw the band line, so I have to transform the K vector into a scalar, what formula should I use? $\endgroup$
    – Jack
    Jun 15, 2022 at 13:46
  • $\begingroup$ You don't need to draw the band lines by hand. SIESTA will return a data file (SystemLabel.bands) with all the results from the band calculation. After that, you can use GNUBANDS (distributed with SIESTA) that will process that file, and then will produce a data file suitable for plotting with GNUPLOT, for example (simple data file with three columns: k, bands for spin up, bands for spin down). $\endgroup$
    – Camps
    Jun 15, 2022 at 13:59
  • 1
    $\begingroup$ The scalar values are simply the distances between the k-points in reciprocal space. So nothing special here. $\endgroup$
    – nickpapior
    Jun 15, 2022 at 18:10
  • $\begingroup$ @Camps shouldn't the high symmetry point $X$ be $0, 1/2, 0$ instead of $0, 1/2, 1/2$? And if the $\Gamma$-point is the origin in the BZ, why coordinates of the high symmetry points are 1/2 instead of unit scales. I mean why the $M$ point, for example, is not $(1, 1, 0)$ instead of $(1/2, 1/2, 0)$? $\endgroup$
    – Sha
    Sep 6, 2022 at 10:56
  • $\begingroup$ Yes, you are right, sorry for my mistake. I will fix the answer, but the idea remains valid, ok? $\endgroup$
    – Camps
    Sep 6, 2022 at 18:23

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .