Update to enable range-separated hybrid vdW-DF2-ahbr

This commit is contained in:
hyldgaar 2022-10-19 15:45:34 +02:00
parent 2ec7ce84de
commit e4ec291274
6 changed files with 32 additions and 26 deletions

View File

@ -166,7 +166,7 @@ MODULE funct
! "ahps" PBE-sol based analytic hole igcx =35 ! PBESOL-AH (rHJS-PBEsol) at 0.20 - PH
! "cx14" Exporations igcx =36 reserved PH
! "cx15" Exporations igcx =37 reserved PH
! "br0" vdW-DF2-b86r+HF/4 (b86r-0) igcx =38
! "br0" vdW-DF2-b86r+HF/4 (b86r-0) igcx =38 ! Tested (2022)
! "cx16" Exporations igcx =39 reserved PH
! "c090" vdW-DF-c09+HF/4 (c09-0) igcx =40
! "b86x" B86b exchange * 0.75 igcx =41
@ -175,7 +175,7 @@ MODULE funct
! "hhnx" Hammer-Hansen-Norskov igcx =44
! "w31x" vdW-DF3-opt1 exchange igcx =45
! "w32x" vdW-DF3-opt2 exchange igcx =46
! "ahtr" vdW-DF2-ahtr exchange igcx =47 ! Test reserve called by vdW-DF2-ahtr - PH
! "ahbr" vdW-DF2-ahbr exchange igcx =47 ! for vdW-DF2-ahbr
! "ehpb" HSE variant igcx =48 ! Reserved PH
! "hjpb" HJS-type PBE cross check igcx =49 ! Reserved PH
! "hjps" HJS-type PBEsol crosscheck igcx =50 ! Reserved PH
@ -473,8 +473,8 @@ CONTAINS
CASE( 'VDW-DF2-BR0' )
dft_defined = xclib_set_dft_IDs(6,4,38,0,0,0)
inlc = 2
! Special case vdW-DF2-AHTR
CASE( 'VDW-DF2-AHTR' )
! Special case vdW-DF2-AHBR
CASE( 'VDW-DF2-AHBR' )
dft_defined = xclib_set_dft_IDs(1,4,47,0,0,0)
inlc = 2
! Special case vdW-DF-C090
@ -809,7 +809,7 @@ CONTAINS
ELSEIF (iexch==1 .AND. icorr==4 .AND. igcx==33 .AND. igcc==0) THEN
shortname = 'VDW-DF2-AH'
ELSEIF (iexch==1 .AND. icorr==4 .AND. igcx==47 .AND. igcc==0) THEN
shortname = 'VDW-DF2-AHTR'
shortname = 'VDW-DF2-AHBR'
ELSEIF (iexch==6 .AND. icorr==4 .AND. igcx==38 .AND. igcc==0) THEN
shortname = 'VDW-DF2-BR0'
ELSE

View File

@ -3209,9 +3209,12 @@ CONTAINS
WRITE(stdout,'(5x,"% * vdW-DF3 is now available. DOI: 10.1021/acs.jctc.0c00471 %")')
WRITE(stdout,'(5x,"% use with input_dft = ''vdW-DF3-opt1'' or ''vdW-DF3-opt2'' %")')
WRITE(stdout,'(5x,"% %")')
WRITE(stdout,'(5x,"% * Unscreened and range-separated vdW-DF hybrid functionals %")')
WRITE(stdout,'(5x,"% * Unscreened and range-separated hybrid vdW-DF-cx functionals %")')
WRITE(stdout,'(5x,"% DOI: 10.1063/1.4986522 and 10.1088/1361-648X/ac2ad2 %")')
WRITE(stdout,'(5x,"% use with input_dft = ''vdW-DF-cx0'' (etc) and ''vdW-DF-ahcx'' %")')
WRITE(stdout,'(5x,"% use with input_dft = ''vdW-DF-cx0'' and ''vdW-DF-ahcx'' %")')
WRITE(stdout,'(5x,"% * Unscreened and range-separated hybrid vdW-DF2-b86r functionals %")')
WRITE(stdout,'(5x,"% DOI: 10.1063/1.4986522 and DOI: 10.1103/PhysRevX.12.041003 %")')
WRITE(stdout,'(5x,"% use with input_dft = ''vdW-DF2-br0'' and ''vdW-DF2-ahbr'' %")')
WRITE(stdout,'(5x,"% %")')
WRITE(stdout,'(5x,"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%",//)')

View File

@ -519,12 +519,16 @@ CONTAINS
exx_fraction = 0.25_DP
screening_parameter = 0.106_DP
ENDIF
! AH-SERIES (vdW-DF-)ahcx (at 32), vdW-DF2-AH (at 33), (vdW-DF2-)ahtr (at
! 47) ! JPCM 34, 025902 (2022)
IF ( (igcx ==32 .OR. igcx ==33 .OR. igcx==47) .AND. .NOT.is_libxc(3) ) THEN
! First AH-SERIES (vdW-DF-)ahcx (at 32), vdW-DF2-AH (at 33) ! JPCM 34, 025902 (2022)
IF ( (igcx ==32 .OR. igcx ==33 ) .AND. .NOT.is_libxc(3) ) THEN
exx_fraction = 0.20_DP
screening_parameter = 0.106_DP
ENDIF
! vdW-DF2-ahbr (at 47) ! PRX 12, 041003 (2022)
IF ( (igcx==47) .AND. .NOT.is_libxc(3) ) THEN
exx_fraction = 0.25_DP
screening_parameter = 0.106_DP
ENDIF
! AH-CROSStest-SERIES PBE-AH (at 34), PBESOL-AH (at 35)
IF ( (igcx ==34 .OR. igcx==35) .AND. .NOT.is_libxc(3) ) THEN
exx_fraction = 0.20_DP

View File

@ -56,7 +56,7 @@ MODULE qe_dft_list
'OB86', 'EVX', 'B86R', 'CX13', 'X3LP', 'CX0', & !24 " 29
'R860', 'CX0P', 'AHCX', 'AHF2', 'AHPB', 'AHPS', & !30 " 35
'CX14', 'CX15', 'BR0', 'CX16', 'C090', 'B86X', & !36 " 41
'B88X', 'BEEX', 'HHNX', 'W31X', 'W32X', 'AHTR', & !42 " 47
'B88X', 'BEEX', 'HHNX', 'W31X', 'W32X', 'AHBR', & !42 " 47
'EHPB', 'HJPB', 'HJPS' / !48 " 50
! GGA correlation terms
DATA dft_GGAc_name / 'NOGC', 'P86', 'GGC', 'BLYP', 'PBC', 'HCTH', & ! 0 to 5

View File

@ -211,7 +211,7 @@ MODULE qe_dft_refs
DATA dft_GGAx(29)%ref / 'K. Berland, Y. Jiao, J.-H. Lee, T. Rangel, J. B. Neaton &
&and P. Hyldgaard, J. Chem. Phys. 146, 234106 (2017)' /
DATA dft_GGAx(29)%wrn / 'none' /
! rPW86+HF/4 (rw86-0) (for DF0)
! rPW86+HF/4 (rw86-0) (for DF2-0)
DATA dft_GGAx(30)%ref / 'K. Berland, Y. Jiao, J.-H. Lee, T. Rangel, J. B. Neaton &
&and P. Hyldgaard, J. Chem. Phys. 146, 234106 (2017)' /
DATA dft_GGAx(30)%wrn / 'none' /
@ -242,15 +242,15 @@ MODULE qe_dft_refs
DATA dft_GGAx(37)%ref / 'Reserved, no ref. available' /
DATA dft_GGAx(37)%wrn / 'never called in QE' /
! BR0
DATA dft_GGAx(38)%ref / 'vdW-DF2-b86r+HF/4 - framework defined by &
&Phys. Rev. B 89, 121103(R) (2014) + J. Chem. Phys. 146, 234106 (2017)' /
DATA dft_GGAx(38)%wrn / 'none' /
DATA dft_GGAx(38)%ref / 'vdW-DF2-b86r+HF/4: Phys. Rev. B 89, 121103(R) (2014)+&
&J. Chem. Phys. 146, 234106 (2017), PRX 12, 041003 (2022)' /
DATA dft_GGAx(38)%wrn / 'none'
! CX16 (reserved P.H.)
DATA dft_GGAx(39)%ref / 'Reserved, no ref. available' /
DATA dft_GGAx(39)%wrn / 'none' /
! C090
DATA dft_GGAx(40)%ref / 'vdW-DF-c09+HF/4 - framework defined by &
&Phys. Rev. B 81, 161104(R) (2010) + J. Chem. Phys. 146, 234106 (2017)' /
DATA dft_GGAx(40)%ref / 'vdW-DF-c09+HF/4: Phys. Rev. B 81, 161104(R) (2010)+&
&J. Chem. Phys. 146, 234106 (2017)' /
DATA dft_GGAx(40)%wrn / 'none' /
! B86X
DATA dft_GGAx(41)%ref / '[B86B exchange * 0.75]' /
@ -270,20 +270,19 @@ MODULE qe_dft_refs
! W32X vdW-DF3-opt2 exchange
DATA dft_GGAx(46)%ref / 'D. Chakraborty, K. Berland, and T. Thonhauser, JCTC 16, 5893 (2020)' /
DATA dft_GGAx(46)%wrn / 'none' /
! AHTR (reserved P.H., testing)
DATA dft_GGAx(47)%ref / 'Reserved, No ref. available' /
DATA dft_GGAx(47)%wrn / 'testing stage' /
! AHRR (reserved P.H., testing)
DATA dft_GGAx(47)%ref / 'V. Shukla et al, PRX 12, 041003 (2022)' /
! EHPB (reserved P.H.)
DATA dft_GGAx(48)%ref / 'Reserved, No ref. available' /
DATA dft_GGAx(48)%wrn / 'never called, ongoing development' /
DATA dft_GGAx(48)%wrn / 'none' /
! HJPB (Short-ranged PBE exchange by HJS08 parameters, cross-reference)
DATA dft_GGAx(49)%ref / 'Short-ranged pbe exchange as set by Henderson et al, &
&J. Chem. Phys. 128, 194105 (2008); Compare PBE-AH' /
DATA dft_GGAx(49)%wrn / 'never called, for cross-comparison' /
DATA dft_GGAx(49)%wrn / 'none' /
! HJPS (Short-ranged PBEsol exchange by HJS08 param, cross-reference)
DATA dft_GGAx(50)%ref / 'Short-ranged pbesol exchange as set by Henderson et al, &
& J. Chem. Phys. 128, 194105 (2008); Compare PBESOL-AH' /
DATA dft_GGAx(50)%wrn / 'never called, for cross-comparison' /
DATA dft_GGAx(50)%wrn / 'none' /
!
!
! ---- GGA correlation ----

View File

@ -211,7 +211,7 @@ SUBROUTINE gcxc( length, rho_in, grho_in, sx_out, sc_out, v1x_out, &
ELSEIF ( igcx == 33) THEN ! vdW-DF2-ah
CALL rPW86( rho, grho, sx, v1x, v2x )
iflag = 4 ! for rPW86 - analytical sr hole
ELSEIF ( igcx == 47) THEN ! vdW-DF2-ahtr
ELSEIF ( igcx == 47) THEN ! vdW-DF2-ahbr
CALL b86b( rho, grho, 3, sx, v1x, v2x )
iflag = 6 ! for test-reserve - analytical sr hole
ENDIF
@ -869,7 +869,7 @@ SUBROUTINE gcx_spin( length, rho_in, grho2_in, sx_tot, v1x_out, v2x_out, err_out
!
! igcx=32: vdw-df-ahcx
! igcx=33: vdw-df2-AH
! igcx=47: vdw-df2-ahtr
! igcx=47: vdw-df2-ahbr
!
iflag = 0
IF ( igcx == 32) THEN ! vdW-DF-ahcx
@ -880,7 +880,7 @@ SUBROUTINE gcx_spin( length, rho_in, grho2_in, sx_tot, v1x_out, v2x_out, err_out
CALL rPW86( rho_up, grho2_up, sx_up, v1x_up, v2x_up )
CALL rPW86( rho_dw, grho2_dw, sx_dw, v1x_dw, v2x_dw )
iflag = 4 ! for rPW86 - sr hole
ELSEIF ( igcx == 47) THEN ! vdW-DF2-ahtr
ELSEIF ( igcx == 47) THEN ! vdW-DF2-ahbr
CALL b86b( rho_up, grho2_up, 3, sx_up, v1x_up, v2x_up )
CALL b86b( rho_dw, grho2_dw, 3, sx_dw, v1x_dw, v2x_dw )
iflag = 6 ! for test-reserve - sr hole