band-unfolding / banduppy

Python version ofthe BandUP code
GNU General Public License v3.0
21 stars 9 forks source link

Banduppy for non-orthogonal system #21

Open SamforD95 opened 1 year ago

SamforD95 commented 1 year ago

To whom it may concern

Firstly, thank you for this designed routin in retail. I am trying to use the program in QE for an hexagonal lattice system, which features fractional coefficient in the supercell section.

The program complains directly, as follow:

unfolding_path.py", line 129, in init super(UnfoldingPath,self).init(supercell,kpointsPBZ)

unfolding_path.py", line 23, in init assert np.linalg.norm(np.array(supercell)-supercell_int)<1e-14 , AssertionError: supercell should consist of integers, found [[1, 0, 0], [-0.5, 0.8660254037844386, 0], [0, 0, 1.22924106]]

Have I plugged in smth wrong or is there a work around for this? Thank you in advance Samuele

stepan-tsirkin commented 1 year ago

Hi @SamforD95

The supercell should be composed of an integer number of primitive cells, i.e the lattice vectors of the supercell should be expressed in the basis of the primitive cell with integer coefficients. This is a fundamental condition for unfolding to be mathematically defined.

Those coefficients are those that should be introduced as a supercell parameter of UnfoldingPath .