igor-1982 / xDH4Gau

A python script to obtain XYG3-type doubly hybrid (xDH) results using the standard Gaussian xx package (xx=03, 09 and/or 16)
MIT License
13 stars 4 forks source link

Can XGY3-family functional be used in other DFT software? #5

Open scott-5 opened 1 year ago

scott-5 commented 1 year ago

Is there the double hybrid function of XYG3-family included in libxc? In other words, can I use XYG3-family in other DFT programs by compiling with libxc? Or is there a recommended way to use it? I'm interested in application for surface catalytic reaction.

igor-1982 commented 1 year ago

Thank you for being so interested in our work. In fact, the XYG3-family doubly hybrid (xDH) functionals have been implemented in Q-Chem, FHI-aims, and Crystal. Although the periodic implementation of xDHs has been done recently using FHI-aims (see "Doubly Hybrid Functionals Close to Chemical Accuracy for Both Finite and Extended Systems: Implementation and Test of XYG3 and XYGJ-OS" JACS Au 2021 1:543; 10.1021/jacsau.1c00011), its computation cost is not yet suitable in the routine use. Recently, we combined the xDH method with the XO@PBE scheme to provide an accurate description of molecular crystals (XO-PBC: An Accurate and Efficient Method for Molecular Crystals, J. Chem. Theory Comput. 10.1021/acs.jctc.0c00232) and also the electrocatalytic CO2 reduction on the copper surfaces (Nature Communications, 10.1038/s41467-023-36695-7)

scott-5 commented 1 year ago

I don't understand whether it is the interface that causes the computation cost, or the code itself. Also, there are already solutions to speed up the computation of hybrid functional (LIBRI, which are already embedded in ABACUS). ABACUS is open-source DFT also using NAO's , perhaps you can collaborate or test on it for promoting XYG3.

igor-1982 commented 1 year ago

I'm sorry for not getting back to you sooner. The brief answer is that our XYG3 implementation for solids in FHI-aims is very efficient.

The chief computation cost for xDH methods comes from the MP2 correlation calculated under the periodic boundary condition. The RI algorithm used in ABACUS was first developed and proposed in FHI-aims, and has been used in our XYG3 implementation. Please see (Zhang, I. Y.; Logsdail, A. J.; Ren, X.; Levchenko, S. V.; Ghiringhelli, L.; Scheffler, M. Main-Group Test Set for Materials Science and Engineering with User-Friendly Graphical Tools for Error Analysis: Systematic Benchmark of the Numerical and Intrinsic Errors in State-of-the-Art Electronic-Structure Approximations. New J. Phys. 2019, 21 (1), 013025. https://doi.org/10.1088/1367-2630/aaf751.) for more details.

igor-1982 commented 1 year ago

The technical details of the local RI implementation can be found in (Ihrig, A. C.; Wieferink, J.; Zhang, I. Y.; Ropo, M.; Ren, X.; Rinke, P.; Scheffler, M.; Blum, V. Accurate Localized Resolution of Identity Approach for Linear-Scaling Hybrid Density Functionals and for Many-Body Perturbation Theory. New Journal of Physics 2015, 17 (9), 093020. https://doi.org/10.1088/1367-2630/17/9/093020.)

igor-1982 commented 1 year ago

Return back to your first question. Recently, I developed a home-made electronic-structure code using the Rust language. The key feature of our REST code (Rust-based Electronic Structure Toolkit) is to provide all sophisticated xDH methods developed by me and my cooperators, including XYG3 (PNAS, 2009, 106:4963), XYGJ-OS (PNAS, 2011, 108:19896), ZRPS (PRL, 2016, 117:133002), scsRPA (JPCL, 2019, 10:2617), and XYG7 (JPCL, 2021, 12:2638).

If you are interested in this project, you can take a look at another project (rest_workspace and rest) I am maintaining.

scott-5 commented 1 year ago

Cool. I'll try REST code for xDH methods.

hebrewsnabla commented 1 year ago

We have also developed a PySCF extension for XYG3 family: ajz34/dh. It is now moved to ajz34/pyscf-forge and under re-factoring.