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

additional XC superfunctionals #877

Merged
merged 14 commits into from Jan 17, 2018

Conversation

Projects
None yet
6 participants
@hokru
Contributor

hokru commented Dec 6, 2017

Description

Defines couple new XC functionals in the driver and adds few D3BJ parameters

Todos

Notable points that this PR has either accomplished or will accomplish.

  • User-Facing for Release Notes

    • Double-Hybrids: B2GPPLYP, PWPB95, PTPSS, DSD-BLYP
    • hybrid-GGAs: PW6B95
    • mega-GGAs: TPSS, revTPSS
    • GGAs: mPWPW
    • tests
    • adding of some reference outputs
    • clean-up
    • praying libxc 4.0 switch does not break the tweaking options.
  • Developer notes/issues

    • tests put into dft-custom-gga/mgga/hybrid/dhdf
      supersedes a number of older tests (removed only from CMakeLists.txt):
      -dft-dsd + dft-pbe0-2moved into dft-custom-dhdf
      -dft-dldf moved into dft-custom-mgga
    • new tests for mgga_ms0/1/2 based on libxc test data.
    • incomplete dft-custom-hybrid test: missing wpbe, wpbe0, b5050lyp

Status

  • Ready to go
@loriab

This comment has been minimized.

Show comment
Hide comment
@loriab

loriab Dec 6, 2017

Member

Thanks! Yes, a single test file will be fine (unless multiple is more convenient for you). Just make a dir in /tests/, copy in a CMakeLists.txt from another test and modify at least the name. Then add your new dir name to the long list in /tests/CMakeLists.txt. Model on any of the dft tests and feel free to check in output files from other programs into the test directory for future consultation. If you're trying to do anything that isn't obvious, just post. Are you on the slack channel?

Member

loriab commented Dec 6, 2017

Thanks! Yes, a single test file will be fine (unless multiple is more convenient for you). Just make a dir in /tests/, copy in a CMakeLists.txt from another test and modify at least the name. Then add your new dir name to the long list in /tests/CMakeLists.txt. Model on any of the dft tests and feel free to check in output files from other programs into the test directory for future consultation. If you're trying to do anything that isn't obvious, just post. Are you on the slack channel?

@dgasmith

This comment has been minimized.

Show comment
Hide comment
@dgasmith

dgasmith Dec 6, 2017

Member

I think what we need to do is organize the non-XC custom functionals into a series of tests like tests/test-custom-gga where all of the custom functionals that we build in gga_superfuncs.py should be there. Similar folders for hybrid/double hybrid. Right now its kind of scattered all over the place. If you could start your tests in that manner it would be very helpful. This could be a good project for a new-dev to clean up.

@susilehtola One more example why we need access to parameters in LibXC.

Member

dgasmith commented Dec 6, 2017

I think what we need to do is organize the non-XC custom functionals into a series of tests like tests/test-custom-gga where all of the custom functionals that we build in gga_superfuncs.py should be there. Similar folders for hybrid/double hybrid. Right now its kind of scattered all over the place. If you could start your tests in that manner it would be very helpful. This could be a good project for a new-dev to clean up.

@susilehtola One more example why we need access to parameters in LibXC.

@dgasmith

This comment has been minimized.

Show comment
Hide comment
@dgasmith

dgasmith Dec 6, 2017

Member

Also @hokru you might want to check out the tests/libxc folder for a list of tests and see if your new functionals are present. We need to hook this up to long tests at some point as well.

@bwb314 At some point you added many DFT LibXC tests against Q-Chem that missed the rebasing and was finally closed here. Do you still have these tests that we can add to Psi4?

Member

dgasmith commented Dec 6, 2017

Also @hokru you might want to check out the tests/libxc folder for a list of tests and see if your new functionals are present. We need to hook this up to long tests at some point as well.

@bwb314 At some point you added many DFT LibXC tests against Q-Chem that missed the rebasing and was finally closed here. Do you still have these tests that we can add to Psi4?

@susilehtola

This comment has been minimized.

Show comment
Hide comment
@susilehtola

susilehtola Dec 7, 2017

Contributor

@dgasmith bad example, since these should go in libxc proper ;)

Contributor

susilehtola commented Dec 7, 2017

@dgasmith bad example, since these should go in libxc proper ;)

@hokru

This comment has been minimized.

Show comment
Hide comment
@hokru

hokru Dec 7, 2017

Contributor

@susilehtola @dgasmith They should maybe be included, yes, but exposing functional parameters to the python layer is a dream for functional development in general!

Contributor

hokru commented Dec 7, 2017

@susilehtola @dgasmith They should maybe be included, yes, but exposing functional parameters to the python layer is a dream for functional development in general!

@susilehtola

This comment has been minimized.

Show comment
Hide comment
@susilehtola

susilehtola Dec 7, 2017

Contributor

@hokru as if the world needs more functionals :P

Contributor

susilehtola commented Dec 7, 2017

@hokru as if the world needs more functionals :P

@hokru

This comment has been minimized.

Show comment
Hide comment
@hokru

hokru Jan 12, 2018

Contributor

I think what we need to do is organize the non-XC custom functionals into a series of tests like tests/test-custom-gga where all of the custom functionals that we build in gga_superfuncs.py should be there.

I added tests this way. I still want to add some reference outputs.

Are you on the slack channel?

I am not, I also don't see it mentioned anywhere? I can join if that helps.

Contributor

hokru commented Jan 12, 2018

I think what we need to do is organize the non-XC custom functionals into a series of tests like tests/test-custom-gga where all of the custom functionals that we build in gga_superfuncs.py should be there.

I added tests this way. I still want to add some reference outputs.

Are you on the slack channel?

I am not, I also don't see it mentioned anywhere? I can join if that helps.

@dgasmith

Thanks for all of these changes. Starting to look really good!

sup.set_c_alpha(1.0)
sup.set_c_os_alpha(0.46)
sup.set_c_ss_alpha(0.43)
sup.set_c_ss_alpha(0.40)

This comment has been minimized.

@dgasmith

dgasmith Jan 13, 2018

Member

Hmm, was this always wrong? It doesn't seem to flip a test.

@dgasmith

dgasmith Jan 13, 2018

Member

Hmm, was this always wrong? It doesn't seem to flip a test.

This comment has been minimized.

@hokru

hokru Jan 14, 2018

Contributor

dsd-blyp was commented out. So i guess something was up.

@hokru

hokru Jan 14, 2018

Contributor

dsd-blyp was commented out. So i guess something was up.

This comment has been minimized.

@dgasmith

dgasmith Jan 15, 2018

Member

Ah ok, good to know it was never live :)

@dgasmith

dgasmith Jan 15, 2018

Member

Ah ok, good to know it was never live :)

This comment has been minimized.

@loriab

loriab Jan 15, 2018

Member

IIRC, the SCS DH plus variants were alive c. beta3. Chris Cook had charge of them, as he was trying out the different -D parameterizations. Then SCS DH were disabled for years after DH were reformed. If there was any uncertainty, esp. in -D parameters, I? didn't uncomment them after the libxc reform. Glad the dust has settled on some of these DSD variations, and thanks for sorting them out, @hokru.

@loriab

loriab Jan 15, 2018

Member

IIRC, the SCS DH plus variants were alive c. beta3. Chris Cook had charge of them, as he was trying out the different -D parameterizations. Then SCS DH were disabled for years after DH were reformed. If there was any uncertainty, esp. in -D parameters, I? didn't uncomment them after the libxc reform. Glad the dust has settled on some of these DSD variations, and thanks for sorting them out, @hokru.

Show outdated Hide outdated psi4/driver/procrouting/dft_funcs/double_hyb_superfuncs.py Outdated
Show outdated Hide outdated psi4/driver/procrouting/dft_funcs/double_hyb_superfuncs.py Outdated
Show outdated Hide outdated psi4/driver/procrouting/dft_funcs/gga_superfuncs.py Outdated
Show outdated Hide outdated psi4/driver/procrouting/dft_funcs/hyb_superfuncs.py Outdated
Show outdated Hide outdated psi4/driver/procrouting/dft_funcs/mgga_superfuncs.py Outdated
Show outdated Hide outdated psi4/driver/procrouting/dft_funcs/mgga_superfuncs.py Outdated
Show outdated Hide outdated tests/dft-custom-gga/input.dat Outdated
@hokru

This comment has been minimized.

Show comment
Hide comment
@hokru

hokru Jan 15, 2018

Contributor

I added your requested changes @dgasmith, including running yapf. I did all my planned changes. Pending further review this is ready to go, i think.

Contributor

hokru commented Jan 15, 2018

I added your requested changes @dgasmith, including running yapf. I did all my planned changes. Pending further review this is ready to go, i think.

@dgasmith

Awesome! Thanks for all of new functionals and testing infrastructure.

@dgasmith

This comment has been minimized.

Show comment
Hide comment
@dgasmith

dgasmith Jan 15, 2018

Member

@psi4/maintainers Lets get a few more eyes on this.

Member

dgasmith commented Jan 15, 2018

@psi4/maintainers Lets get a few more eyes on this.

@loriab

loriab approved these changes Jan 15, 2018

Looks great! Thanks for all the ref outputs from other codes.

Show outdated Hide outdated tests/dft-custom-hybrid/input.dat Outdated
edft = energy('dldf+d09')
val = -153.8046388583318276 #TEST
compare_values(val, edft, 8, "dlDF+D09 (2009 +D correction)") #TEST

This comment has been minimized.

@loriab

loriab Jan 15, 2018

Member

Are ref val coming from psi runs of this input file? If so, the ref value only good to ~6 decimal places (default e_conv for energy), so checking to 8 won't be reliable. If this is the case, need to generate the val with e_/d_conv 10 or so, save that to val, then set e_/d_conv to 8 in this file, and continue checking to 8.

@loriab

loriab Jan 15, 2018

Member

Are ref val coming from psi runs of this input file? If so, the ref value only good to ~6 decimal places (default e_conv for energy), so checking to 8 won't be reliable. If this is the case, need to generate the val with e_/d_conv 10 or so, save that to val, then set e_/d_conv to 8 in this file, and continue checking to 8.

This comment has been minimized.

@hokru

hokru Jan 15, 2018

Contributor

All dldf related lines are copy & paste from the individual test (dft-dldf). Unknown to me when the ref values were generated.

@hokru

hokru Jan 15, 2018

Contributor

All dldf related lines are copy & paste from the individual test (dft-dldf). Unknown to me when the ref values were generated.

This comment has been minimized.

@loriab

loriab Jan 15, 2018

Member

Ok, then we'll leave the ref as-is. May have to turn down the number of decimal places in test case in future.

@loriab

loriab Jan 15, 2018

Member

Ok, then we'll leave the ref as-is. May have to turn down the number of decimal places in test case in future.

@loriab

This comment has been minimized.

Show comment
Hide comment
@loriab

loriab Jan 16, 2018

Member

@dgasmith and @bwb314, the libxc test case looks like the one mentioned #877 (comment) . Is it, or does that still need to be added?

Member

loriab commented Jan 16, 2018

@dgasmith and @bwb314, the libxc test case looks like the one mentioned #877 (comment) . Is it, or does that still need to be added?

@dgasmith

This comment has been minimized.

Show comment
Hide comment
@dgasmith

dgasmith Jan 17, 2018

Member

@loriab They are a different kind of test, there may be some overlap however.

Member

dgasmith commented Jan 17, 2018

@loriab They are a different kind of test, there may be some overlap however.

@dgasmith dgasmith merged commit 43b5ac2 into psi4:master Jan 17, 2018

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details

@loriab loriab added this to the Psi4 1.2 milestone Apr 13, 2018

@dgasmith dgasmith referenced this pull request Apr 13, 2018

Closed

Psi4 1.2 Release Notes #959

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment