Skip to content

'BCONNECT = 1' fails at path break #309

@irrotational

Description

@irrotational

Dear Dr. Tadano,

I'm running a simple test calculation on PbTe (no LO/TO splitting included here).

A calculation of the harmonic bands (2x2x2 supercell) gives the following dispersion, when BCONNECT = 1 is used:

Image

There is a path break between U and K. As can be seen, the band-ordering algorithm swaps the order of bands at the U/K break; I have separately done a harmonic calculation with Quantum Espresso and also CASTEP, and both suggest that the bands should be connected across the U/K break. Note that within each path segment (notably along the X-U line), band crossings are indeed correctly detected. The &kpoint field for this calculation was:

&kpoint
  1  # KPMODE = 1: line mode
  G 0.000  0.000  0.000    X 0.500  0.000  0.500    200
  X 0.500  0.000  0.500    U 0.625  0.250  0.625    71
  K 0.375  0.375  0.750    G 0.000  0.000  0.000    212
  G 0.000  0.000  0.000    L 0.500  0.500  0.500    173
  L 0.500  0.500  0.500    W 0.500  0.250  0.750    141
  W 0.500  0.250  0.750    X 0.500  0.000  0.500    100
/

Now, if I repeat the calculation with the exact same input, but instead of a break, create a very short path between U and K (so no longer a true break), like:

&kpoint
  1  # KPMODE = 1: line mode
  G 0.000  0.000  0.000    X 0.500  0.000  0.500    200
  X 0.500  0.000  0.500    U 0.625  0.250  0.625    71
  U 0.625  0.250  0.625    K 0.375  0.375  0.750    3
  K 0.375  0.375  0.750    G 0.000  0.000  0.000    212
  G 0.000  0.000  0.000    L 0.500  0.500  0.500    173
  L 0.500  0.500  0.500    W 0.500  0.250  0.750    141
  W 0.500  0.250  0.750    X 0.500  0.000  0.500    100
/

I get:

Image

(the U and K labels are now overlapping, as there is no longer a true break there)

This perfectly matches the band-connected dispersions I get from Quantum Espresso and CASTEP.

If I set BCONNECT = 2 for the first case, I can see at the U and K points in the .connection file:

#  G X U K G L W X
# 0.000000 0.505969 0.684856 0.684856 1.221517 1.659699 2.017473 2.270458
# k-axis, mapping
...
...
0.684856    2    3    1    6    5    4
0.684856    1    2    3    4    6    5
...
...

(where I've omitted irrelevant lines). As can be seen, the algorithm seems to be incorrectly reordering the bands across the break.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions