band-unfolding / banduppy

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

Tutorial for VASP bandstructure with k-points for hybrid functional #10

Open alpinnovianus opened 2 years ago

alpinnovianus commented 2 years ago

Dear @stepan-tsirkin ,

Unlike for LDA/GGA functional, VASP hybrid functional band calculation has the K-points file made of weighted (from IBZKPTS file) and non-weighted parts (the band structure we want to plot).

e.g. the Kpoints file of procedure 2 in the VASP wiki page below: https://www.vasp.at/wiki/index.php/Si_HSE_bandstructure#Hybrid_calculation_using_a_suitably_modified_KPOINTS_file

We usually only want the non-weighted parts for our final plots.

Can banduppy be used with such hybrid functional VASP band calculations? If yes, could you add a tutorial that shows how to use it?

Edit: I recently also found that such KPOINTS are also required for calculations with metaGGAs, not only hybrids.

stepan-tsirkin commented 2 years ago

Hi @alpinnovianus

I think it should work with hybrids. when you get kpoints in this line

kpointsPBZ=unfold.kpoints_SBZ_str()

You may add it to the KPOINTS file, just set the weights to zero manually. After that you may run the hybrid calculation, and further read the WAVECAR via bands=banduppy.BandStructure(fWAV='WAVECAR',fPOS='POSCAR',spinor=False,code='vasp')

(spinor = True should also work )

Please try this manually first, if it works, I will add an option, smth like kpointsPBZ=unfold.kpoints_SBZ_str(weight=0) , or you may open a PR if you want. Please, tell me if it works.

I am not sure if any problems may arise, if some points are listed twice : as "weighted" and "unweighted". Probably no problem, but you may check.