deepmodeling / abacus-develop

An electronic structure package based on either plane wave basis or numerical atomic orbitals.
http://abacus.ustc.edu.cn
GNU Lesser General Public License v3.0
174 stars 136 forks source link

Bandgap values are not the same in running_nscf.log and energy band diagram #5527

Open yycx1111 opened 3 days ago

yycx1111 commented 3 days ago

Describe the bug

I did bandwidth calculation for GaN using PBE dft_functinal with out_bandgap 1. The bandgap is 4.39913 eV. But the band gap of GaN using PBE general function should be around 1.7eV. I used the output file BANDS_1.dat from the non-self-consistent calculations to plot the energy band diagram, and from the energy band diagram I observed that the band gap value is around 1.9eV.

Here is bandgap in running_nscf.log E_bandgap 4.39913 eV Here is energy band diagram band.zip

Expected behavior

The bandgap value in running_nscf.log should be the same as the bandgap value shown in the energy band plot

To Reproduce

No response

Environment

No response

Additional Context

No response

Task list for Issue attackers (only for developers)

ErjieWu commented 3 days ago

@yycx1111 I cannot reproduce your results. Instead, when I try to use INPUT_scf & KPT_scf first for scf calculation and then INPUT_nscf & KPT_nscf for nscf calculation (with files you given and additional setting out_bandgap=1 for nscf), the result given by running_nscf.log is E_bandgap 1.8716578909eV which matches the result in band plot. The version of ABACUS for my test is the latest one (v3.8.3). Please check whether you use true input files.

yycx1111 commented 1 day ago

@yycx1111 I cannot reproduce your results. Instead, when I try to use INPUT_scf & KPT_scf first for scf calculation and then INPUT_nscf & KPT_nscf for nscf calculation (with files you given and additional setting out_bandgap=1 for nscf), the result given by running_nscf.log is E_bandgap 1.8716578909eV which matches the result in band plot. The version of ABACUS for my test is the latest one (v3.8.3). Please check whether you use true input files.

I checked the input file and the input file should be right. And calculations using abacus 3.8.3 agree with the results you described. But the bandgap values in the output file running_nscf after calculating with abacus3.8.2 are indeed still wrong. Can you test it with abacus3.8.2?