New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Draft] MP2-F12 #3110
base: master
Are you sure you want to change the base?
[Draft] MP2-F12 #3110
Conversation
Thanks for the PR, Erica! I pushed some lines to the Azure CI so that einsums is enabled and your code has a chance of running :-) . It won't always be this ugly -- ultimately Einsums will be req'd. There's also a blas dependency detail (mkl=2022 vs. 2023) I need to work out to get rid of that openblas pkg. |
This might be something dumb on my part, but I cannot get this build to run on our Linux system:
I installed einsums from conda-forge. What else do I need to do? |
@konpat you may need to |
@loriab this did the trick, thank you! |
Fantastic job on this PR, @EricaCMitchell! It took me a while (I apologize), but I finally translated @mkodrycka 's dispersion-F12 code to an MP2-F12 one and, after some tweaking, was able to reproduce your DF-MP2-F12 correlation energy exactly. I learned quite a bit in the process: initially, our implementations (both based on the formulas from the same Werner-Adler-Manby paper) gave minimally different results, and I found out that our programmed expressions differ by several terms that vanish in the GBC approximation. This approximation is pretty good but neither one of us makes it explicitly in the implementation (no elements of the Fock matrix are zeroed). I think this is completely OK. One avenue to possibly speed up the code is fully exploiting the fact that our F12 amplitudes are diagonal and we don't need to compute off-diagonal elements of some matrices. For example, out of the entire B matrix, we only use terms of the form Finally, I know this was not directly a part of this PR, but do you happen to know the source of the 6-Gaussian fit of the Slater correlation factor? Here's what Psi4 uses for psi4/psi4/src/psi4/libmints/mintshelper.cc Lines 930 to 933 in f20a7c6
and this is what Molpro 2012.1 prints out (I don't have a newer version): This discrepancy, if not removed, does lead to small differences in the final results. |
Thank you @konpat for trying out my code! :) I will look into speeding up the F12 intermediate matrices by computing only the diagonal elements. I am also looking into speeding up the integral overhead by taking advantage of permutational symmetry of the integrals, but that affects the The 6-Gaussian fit comes from Tew and Klopper. These are close to the coefficients and exponents they reported and are the ones given by MPQC4 and ORCA, which use a linear solve similar to Molpro. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for all your work on this!
I was looking for why windows was failing on CI, and I think I have a fix. Noticed a couple other things along the way.
Co-authored-by: Lori A. Burns <lori.burns@gmail.com>
Thanks @loriab for looking into the CI failure! I haven't had a lot of time to to focus on computing just the diagonal elements of the F12 intermediates, so that's on the backburner. |
Description
New feature to compute the explicitly correlated MP2 energy. Only computes the specific case of MP2-F12/3C(FIX) which has been shown to be the most robust of all versions of MP2-F12. Includes conventional and density-fitted versions of the code and also allows choice between a in-core and disk implementation. Relies on the tensor library Einsums.
Equations come from:
Werner, Adler, and Manby
Kong, Bischoff, and Valeev
Manby
Example Input
Timings
Timings and maxvmem are an average over 50 runs.
Orbital basis set (OBS) is cc-pVTZ-F12 (VTZ-F12) and CABS is cc-pVTZ-F12-OPTRI. For DF, auxiliary basis set (AUX) is aug-cc-pVTZ-RI.
Timings and Max RAM Usage for MP2-F12/3C(FIX):
Timings and Max RAM Usage for DF-MP2-F12/3C(FIX):
VTune Analysis for MP2-F12/3C(FIX)
Memory consumption is most egregious in the
form_teints
where the allocation of the AO ERI is quite large with the largest AO being (NOBS, NOBS, NRI, NRI) e.g. CH4 would be (125, 125, 364, 364)CPU Time all goes back to the
form_teints
function and specifically thetwo_body_ao_computer
User API & Changelog headlines
Dev notes & details
Questions
Checklist
Status