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 130 forks source link

Bug: XCs with nonlocal dispersion correction from libxc now will give wrong results #5353

Open kirk0830 opened 5 days ago

kirk0830 commented 5 days ago

For users who work in chemistry, they often care more about dispersion, which will play a crucial role when evaluating weak interaction between molecules. However, for functionals like BEEF-vdw, SCAN_rVV10, etc, involving dispersion correction term distinct with Grimme-D2/D3 series, need additional implementation of nonlocal dispersion correction support. Presently the use like

dft_functional GGA_XC_BEEF_VDW

will not trigger any warnings from ABACUS, but there will be dispersion correction term in total energy absent, thus user cannot get correct results!

QuantumMisaka commented 4 days ago

I confirm this with tests by testing with both MGGA_X_SCAN+MGGA_C_SCAN and MGGA_X_SCAN+MGGA_C_SCAN_RVV10, test results are below

------------------------------------------------------------
+        ABACUSTEST
+ version: v0.4.17
+ GITHUB: https://github.com/pxlxingliang/abacus-test/tree/develop
+ BohriumApp: https://bohrium.dp.tech/apps/abacustest
------------------------------------------------------------

Read the parameters from /lustre/home/2201110432/example/abacus/param.json
Handle no-rvv10
Handle rvv10
Write the results to metrics.json
                                                    version  natom        kpt  \
no-rvv10  v3.7.5(732c2b877 (Mon Sep 9 14:41:02 2024 +0800))    120  [3, 1, 2]   
rvv10     v3.7.5(732c2b877 (Mon Sep 9 14:41:02 2024 +0800))    120  [3, 1, 2]   

          ibzk                                       element_list   nelec  \
no-rvv10     4  [H, H, C, C, C, C, C, C, C, C, C, C, C, C, C, ...  1436.0   
rvv10        4  [H, H, C, C, C, C, C, C, C, C, C, C, C, C, C, ...  1436.0   

          normal_end  converge  scf_steps relax_converge  relax_steps  \
no-rvv10        True      True        112           None            1   
rvv10           True      True        113           None            1   

         largest_gradient total_mag  absolute_mag         energy  \
no-rvv10             None      None        216.08 -263726.421731   
rvv10                None      None        216.08 -263726.421731   

                                                      force  \
no-rvv10  [0.031132097, 0.1075834643, 0.0308904571, -0.0...   
rvv10     [0.0308552057, 0.1048753775, 0.0307628442, -0....   

                                                     stress  band_gap  \
no-rvv10  [-48.0553958072, -3.1049321799, -2.9041373665,...         0   
rvv10     [-48.0655416562, -3.0936104961, -2.9052967238,...         0   

            efermi  ncore  total_time  scf_time force_time  stress_time  \
no-rvv10  5.702932     16     6357.64   6233.13       None   111.642774   
rvv10     5.702932     16     6398.13   6272.98       None   112.167654   

         INPUT/ks_solver  INPUT/mixing_beta  INPUT/scf_thr  \
no-rvv10         genelpa                0.4   1.000000e-07   
rvv10            genelpa                0.4   1.000000e-07 

and the energy table in running_scf.log from SCAN+rvv10 do not have any vdw correction information

Image

It seems that rVV10 did not affect DFT calculation

Attachments:

FeCHO-CO-SCAN-rvv10-lowsize.tar.gz