abacus-develop icon indicating copy to clipboard operation
abacus-develop copied to clipboard

Unoccupied state energy mismatches with q-e results when using PBE functionals in LibXC in PW basis

Open Flying-dragon-boxing opened this issue 7 months ago • 6 comments

Describe the bug

When using LibXC for planewave basis, ABACUS and quantum espresso give similar total energies, but different unoccupied state energies, which is shown as below:

State energies:

# abacus
 STATE ENERGY(eV) AND OCCUPATIONS    NSPIN == 1
 1/1 kpoint (Cartesian) = 0.0000 0.0000 0.0000 (131155 pws)
       1       -25.4444        2.00000
       2       -13.2333        2.00000
       3       -9.26499        2.00000
       4       -7.20492        2.00000
       5      -0.871762        0.00000
# qe
   -25.4454 -13.2343  -9.2660  -7.2060  -0.9226

Energies

# abacus
----------------------------------------------------------
     Energy           Rydberg                 eV          
----------------------------------------------------------
 E_KohnSham     -34.2381003066       -465.8332528647      
 E_KS(sigma->0) -34.2381003066       -465.8332528647      
 E_Harris       -34.2377708751       -465.8287707194      
 E_band         -8.1065484418        -110.2952499219      
 E_one_elec     -69.2735108555       -942.5144680993      
 E_Hartree      36.0427508013        490.3867824917       
 E_xc           -8.4227089386        -114.5968341601      
 E_Ewald        7.4153686862         100.8912669031       
 E_entropy(-TS) -0.0000000000        -0.0000000000        
 E_descf        0.0000000000         0.0000000000         
 E_exx          0.0000000000         0.0000000000         
 E_Fermi        -0.2673299563        -3.6372106521        
----------------------------------------------------------
# qe
!    total energy              =     -34.23811682 Ry
     estimated scf accuracy    <          3.1E-10 Ry
     smearing contrib. (-TS)   =      -0.00000000 Ry
     internal energy E=F+TS    =     -34.23811682 Ry

     The total energy is F=E-TS. E is the sum of the following terms:
     one-electron contribution =     -69.27308544 Ry
     hartree contribution      =      36.04224887 Ry
     xc contribution           =      -8.42264894 Ry
     ewald contribution        =       7.41536869 Ry

Expected behavior

Same orbital energies

To Reproduce

Try the input given in the additional context.

Environment

OS: Archlinux latest Compiler: gcc 14.1.1

Additional Context

Input for q-e

&CONTROL
  calculation = 'scf',
  prefix = 'pwscf',
  outdir = './',
  pseudo_dir = '/Your/Pseudo/Dir',
  disk_io = 'low',
  max_seconds = 10000000,
  verbosity = 'low',
/

&SYSTEM
  ibrav = 0,
  celldm(1) = 1,
  nat = 3,
  ntyp = 2,
  nbnd = 5,
  ecutwfc = 50,
  occupations = 'smearing',
  smearing = 'gaussian',
  degauss = 0.015,
  input_dft = 'XC-000I-000I-101L-130L-000I-000I',
!  input_dft = 'pbe',
/

&ELECTRONS
  diagonalization = 'davidson',
  electron_maxstep = 100,
  mixing_mode = 'plain',
  mixing_beta = 0.4,
  conv_thr = 1.0D-9,
/

CELL_PARAMETERS alat
28.0 0.0 0.0
0.0 28.0 0.0
0.0 0.0 28.0

ATOMIC_SPECIES
  O  1.00 O_ONCV_PBE-1.0.upf
  H  1.00 H_ONCV_PBE-1.0.upf

ATOMIC_POSITIONS alat
  O 18.966810872100 14.638172355700 6.501255519660
  H 17.984104813700 16.155190833700 6.682561292200
  H 19.500958935300 14.612241615100 4.761862131010

K_POINTS automatic
  1 1 1 0 0 0

ABACUS INPUT

INPUT_PARAMETERS
calculation scf
suffix hse
ntype 2
ecutwfc 50.000000
scf_nmax 100
basis_type pw
dft_functional GGA_X_PBE+GGA_C_PBE
nbands 5
mixing_type broyden
mixing_beta 0.80000
symmetry 0
nspin 1

out_wfc_pw 1
# out_wfc_r true
out_chg 1

pseudo_mesh            1
pseudo_rcut            10

ABACUS STRU

ATOMIC_SPECIES
O 1.00 ./O_ONCV_PBE-1.0.upf
H 1.00 ./H_ONCV_PBE-1.0.upf


LATTICE_CONSTANT
1

LATTICE_VECTORS
28.0 0.0 0.0 
0.0 28.0 0.0 
0.0 0.0 28.0 

ATOMIC_POSITIONS
Cartesian

O
0.0
1
18.966810872100 14.638172355700 6.501255519660 0 0 0
H
0.0
2
17.984104813700 16.155190833700 6.682561292200 0 0 0
19.500958935300 14.612241615100 4.761862131010 0 0 0

ABACUS STRU

ATOMIC_SPECIES
O 1.00 ./O_ONCV_PBE-1.0.upf
H 1.00 ./H_ONCV_PBE-1.0.upf


LATTICE_CONSTANT
1

LATTICE_VECTORS
28.0 0.0 0.0 
0.0 28.0 0.0 
0.0 0.0 28.0 

ATOMIC_POSITIONS
Cartesian

O
0.0
1
18.966810872100 14.638172355700 6.501255519660 0 0 0
H
0.0
2
17.984104813700 16.155190833700 6.682561292200 0 0 0
19.500958935300 14.612241615100 4.761862131010 0 0 0

ABACUS KPT

K_POINTS
0
Gamma
1 1 1 0 0 0

Task list for Issue attackers (only for developers)

  • [ ] Verify the issue is not a duplicate.
  • [ ] Describe the bug.
  • [ ] Steps to reproduce.
  • [ ] Expected behavior.
  • [ ] Error message.
  • [ ] Environment details.
  • [ ] Additional context.
  • [ ] Assign a priority level (low, medium, high, urgent).
  • [ ] Assign the issue to a team member.
  • [ ] Label the issue with relevant tags.
  • [ ] Identify possible related issues.
  • [ ] Create a unit test or automated test to reproduce the bug (if applicable).
  • [ ] Fix the bug.
  • [ ] Test the fix.
  • [ ] Update documentation (if necessary).
  • [ ] Close the issue and inform the reporter (if applicable).

Flying-dragon-boxing avatar Jul 14 '24 09:07 Flying-dragon-boxing