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
171 stars 129 forks source link

HSE can not converge #3832

Open Shen-Zhen-Xiong opened 7 months ago

Shen-Zhen-Xiong commented 7 months ago

Describe the bug

v20240327_hse_case.tar.gz I calculate a 2D CrTe2 system with HSE, it is can not converged for 500 scf steps.

Expected behavior

No response

To Reproduce

No response

Environment

No response

Additional Context

No response

Task list for Issue attackers (only for developers)

QuantumMisaka commented 6 months ago

@Shen-Zhen-Xiong I'm trying to testing your system with the newest LibRI. but your system is much large and complex, it is common to have hard convergence.

For reference. issue #3343 contain some calculation example of myself.

QuantumMisaka commented 6 months ago

@Shen-Zhen-Xiong I've changed your input setting by:

INPUT_PARAMETERS
#Parameters (1.General)
suffix                         Cr
stru_file                      STRU
kpoint_file                    KPT
pseudo_dir                     /lustre/home/2201110432/example/abacus/PP
orbital_dir                    /lustre/home/2201110432/example/abacus/ORB
calculation                    scf
ntype                          2
nspin                          2
# kspacing                       0
symmetry                       0
noncolin                       0
lspinorb                       0
out_mul                        1

#Parameters (2.PW)
ecutwfc                        100
scf_thr                        1.0e-6
init_chg                       atomic
out_chg                        0
out_dos                        0
out_band                       0
restart_save                  true
restart_load                 false

#Parameters (4.Relaxation)
ks_solver                      genelpa
#scf_nmax                       500
out_bandgap                    0

#Parameters (5.LCAO)
basis_type                     lcao
gamma_only                     1

#Parameters (6.Smearing)
smearing_method                mp
smearing_sigma                 0.010

#Parameters (7.Charge Mixing)
mixing_type                    broyden
mixing_beta                    0.4
mixing_gg0                     0.0

#Parameters (14.exx)
dft_functional                 hse
exx_pca_threshold              0.0001
exx_c_threshold                0.0001
exx_dm_threshold               0.0001
exx_cauchy_threshold           0
exx_ccp_rmesh_times            1.5
exx_real_number                1
exx_separate_loop              1
exx_hybrid_alpha               0.25

And use the separate_loop method to do HSE calculation.

the SCF performance is good at the beginning, but after some EXX step and inner loop, the SCF convergence is also bad, with the first electronic step out of EXX loop always have the 1.5e-05 DRHO and the SCF process is stuck there. Luckily it will finally converge

 GE1    1.14e+02  2.23e+02  -3.452026e+05  0.000000e+00   3.039e-06  2.039e+01  
 GE4    1.14e+02  2.23e+02  -3.452026e+05  1.848227e-07   5.182e-07  1.950e+01  
 Updating EXX and rerun SCF     7.362e+01 (s)
 GE1    1.14e+02  2.23e+02  -3.452026e+05  0.000000e+00   1.046e-05  2.027e+01  
 GE5    1.14e+02  2.23e+02  -3.452026e+05  6.369800e-07   6.699e-07  1.982e+01  
 Updating EXX and rerun SCF     7.364e+01 (s)
 GE1    1.14e+02  2.23e+02  -3.452026e+05  0.000000e+00   1.417e-05  1.988e+01  
 GE5    1.14e+02  2.23e+02  -3.452026e+05  -2.331815e-07  4.239e-07  1.982e+01  
 Updating EXX and rerun SCF     7.398e+01 (s)
 GE1    1.14e+02  2.23e+02  -3.452026e+05  0.000000e+00   8.308e-06  2.026e+01  
 GE5    1.14e+02  2.23e+02  -3.452026e+05  7.340441e-08   5.620e-07  1.977e+01  
 Updating EXX and rerun SCF     7.371e+01 (s)
 GE1    1.14e+02  2.23e+02  -3.452026e+05  0.000000e+00   1.176e-05  2.089e+01  
 GE5    1.14e+02  2.23e+02  -3.452026e+05  -7.297873e-07  2.323e-07  1.971e+01  
 Updating EXX and rerun SCF     7.353e+01 (s)
 GE1    1.14e+02  2.23e+02  -3.452026e+05  0.000000e+00   3.715e-06  2.107e+01  
 GE4    1.14e+02  2.23e+02  -3.452026e+05  3.157429e-07   5.746e-07  2.033e+01  
 Updating EXX and rerun SCF     7.379e+01 (s)
 GE1    1.14e+02  2.23e+02  -3.452026e+05  0.000000e+00   1.227e-05  2.045e+01   
 GE5    1.14e+02  2.23e+02  -3.452026e+05  -8.523425e-08  6.043e-07  2.019e+01  
 Updating EXX and rerun SCF     7.428e+01 (s)
 GE1    1.14e+02  2.23e+02  -3.452026e+05  0.000000e+00   1.298e-05  2.054e+01  
 GE5    1.14e+02  2.23e+02  -3.452026e+05  2.542178e-07   5.851e-07  2.035e+01  
 Updating EXX and rerun SCF     7.403e+01 (s)
 GE1    1.14e+02  2.23e+02  -3.452026e+05  0.000000e+00   1.228e-05  2.060e+01  
 GE5    1.14e+02  2.23e+02  -3.452026e+05  -4.296361e-08  6.761e-07  2.005e+01  
 Updating EXX and rerun SCF     7.370e+01 (s)
 GE1    1.14e+02  2.23e+02  -3.452026e+05  0.000000e+00   1.427e-05  2.017e+01    
 GE5    1.14e+02  2.23e+02  -3.452026e+05  7.958661e-07   6.627e-07  2.028e+01  
 Updating EXX and rerun SCF     7.367e+01 (s)
 GE1    1.14e+02  2.23e+02  -3.452026e+05  0.000000e+00   1.330e-05  2.090e+01  
 GE5    1.14e+02  2.23e+02  -3.452026e+05  8.077950e-07   7.922e-07  1.956e+01  
 Updating EXX and rerun SCF     7.416e+01 (s)
 GE1    1.14e+02  2.23e+02  -3.452026e+05  0.000000e+00   1.648e-05  2.070e+01   
 GE5    1.14e+02  2.23e+02  -3.452026e+05  1.552728e-07   7.870e-07  2.049e+01  
 Updating EXX and rerun SCF     7.392e+01 (s)
 GE1    1.14e+02  2.23e+02  -3.452026e+05  0.000000e+00   1.501e-05  2.032e+01  
 GE5    1.14e+02  2.23e+02  -3.452026e+05  1.145614e-06   9.506e-07  1.992e+01  
 Updating EXX and rerun SCF     7.350e+01 (s)
 GE1    1.14e+02  2.23e+02  -3.452026e+05  0.000000e+00   1.966e-05  2.033e+01  
 GE4    1.14e+02  2.23e+02  -3.452026e+05  -7.663658e-07  4.298e-06  2.013e+01  
 Updating EXX and rerun SCF     7.365e+01 (s)
 GE1    1.14e+02  2.23e+02  -3.452026e+05  0.000000e+00   1.725e-05  2.035e+01  
 GE2    1.14e+02  2.23e+02  -3.452026e+05  7.049210e-04   1.424e-04  2.015e+01  
 GE3    1.14e+02  2.23e+02  -3.452026e+05  -9.186698e-04  8.566e-06  2.007e+01  
 GE4    1.14e+02  2.23e+02  -3.452026e+05  -1.376865e-06  3.675e-06  2.067e+01  
 GE5    1.14e+02  2.23e+02  -3.452026e+05  7.568128e-08   1.135e-06  2.040e+01  
 GE6    1.14e+02  2.23e+02  -3.452026e+05  -1.169620e-07  4.917e-08  2.015e+01  
 Updating EXX and rerun SCF     7.409e+01 (s)
 GE1    1.14e+02  2.23e+02  -3.452026e+05  0.000000e+00   8.419e-07  2.005e+01  

abacus.log

@PeizeLin @WHUweiqingzhou Do you have any comment ? I consider the convergence performance have some improvement space.

Shen-Zhen-Xiong commented 6 months ago

Thanks you very much, when changing to exx_separate_loop 1 and mixing_beta 0.2 is ok, but there are some performance improvement. Updating EXX and rerun SCF 2.248e+02 (s) GE1 1.14e+02 2.23e+02 -3.452026e+05 0.000000e+00 8.356e-06 3.347e+01 GE2 1.14e+02 2.23e+02 -3.452026e+05 -8.133090e-06 9.886e-06 3.401e+01 GE3 1.14e+02 2.23e+02 -3.452026e+05 -2.786447e-06 2.557e-06 3.223e+01 GE4 1.14e+02 2.23e+02 -3.452026e+05 -1.670532e-07 1.360e-06 3.299e+01 GE5 1.14e+02 2.23e+02 -3.452026e+05 2.860941e-07 5.901e-07 3.054e+01 Updating EXX and rerun SCF 2.271e+02 (s) GE1 1.14e+02 2.23e+02 -3.452026e+05 0.000000e+00 7.191e-06 3.343e+01 GE2 1.14e+02 2.23e+02 -3.452026e+05 -4.966999e-06 8.505e-06 3.228e+01 GE3 1.14e+02 2.23e+02 -3.452026e+05 -2.142934e-06 2.305e-06 3.153e+01 GE4 1.14e+02 2.23e+02 -3.452026e+05 4.472571e-07 1.268e-06 3.263e+01 GE5 1.14e+02 2.23e+02 -3.452026e+05 -2.782240e-07 6.843e-07 3.095e+01 Updating EXX and rerun SCF 2.237e+02 (s) GE1 1.14e+02 2.23e+02 -3.452026e+05 0.000000e+00 8.765e-06 3.269e+01 GE2 1.14e+02 2.23e+02 -3.452026e+05 -8.133189e-06 1.071e-05 3.224e+01 GE3 1.14e+02 2.23e+02 -3.452026e+05 -3.274886e-06 2.545e-06 3.176e+01 GE4 1.14e+02 2.23e+02 -3.452026e+05 -5.635261e-07 1.219e-06 3.153e+01 GE5 1.14e+02 2.23e+02 -3.452026e+05 4.004822e-07 7.397e-07 3.076e+01

job.log