[Pw_forum] correction to functional.f90 (4.1): optx identified as a meta-GGA functional
Latévi Max LAWSON DAKU
Max.Lawson at unige.ch
Fri Jul 24 14:22:26 CEST 2009
Dear Paolo,
Thanks a lot for your answer and explanations.
Please find attached the changes I made to the file
"Modules/functionals.f90".
With these changes, the olyp functional can be input using either its
shortname or its raw definition "nox+lyp+optx+blyp".
Regards,
Max
On 23. 07. 09 10:56, Paolo Giannozzi wrote:
> Latévi Max LAWSON DAKU wrote:
>
>
>> the OPTX functional was flagged as a meta-GGA.
>>
>
> thank you for reporting this
>
>
>> By the way, the following comment is written in functional.90.
>>
>> ! "olyp" = "nox+lyp+optx+blyp"!!! UNTESTED !!!
>>
>> Does this mean, simply, that the olyp shortname is not well tested?
>>
>
> exactly. It should work, because it has been working in some version
> in the past, but if you have the possibility to verify it, please do
> it, report if that comment can be removed
>
>
>> By the way, I noticed that the keyword "blyp" is used for designating
>> both the blyp XC functional and the lyp gradient correction to
>> correlation.
>>
>
> the logic used to label XC functionals, based on four keywords,
> seemed a smart method years ago, but it has been outsmarted by
> the ever-increasing number of XC functionals, and by a choice
> for the meaning of "blyp" that turned out not to be a good one.
> Changing the way XC functionals are labelled (in particular,
> fixing the "blyp" inconsistency you mention) might break old
> pseudopotentials (the XC functional is read from pseudopotential
> files).
>
>
>> Finally, I've inserted the following lines in the subroutine dft_name(),
>> Line 609:
>>
>> else if (iexch_==0.and.icorr_==3.and.igcx_==6.and.igcc_==3) then
>> shortname_ = 'OLYP'
>>
>
> that's a good solution...your changes will go in the next version
>
> Paolo
>
--
***********************************************
Latevi Max LAWSON DAKU
Departement de chimie physique
Universite de Geneve - Sciences II
30, quai Ernest-Ansermet
CH-1211 Geneve 4
Switzerland
Tel: (41) 22/379 6548 ++ Fax: (41) 22/379 6103
***********************************************
-------------- next part --------------
--- BAK_functionals.f90 2009-07-23 16:35:14.000000000 +0200
+++ functionals.f90 2009-07-23 18:39:16.000000000 +0200
@@ -258,7 +258,12 @@
enddo
! special case : BLYP => B88 for gradient correction on exchange
- if (matches ('BLYP', dftout) ) call set_dft_value (igcx, 1)
+ ! warning: the keyword BLYP is used for both the XC functional
+ ! "BLYP" and the Lee-Yang-Parr gradient correction to
+ ! correlation => in the former case, iexch and igcx
+ ! shouldn't have been set
+ if (matches('BLYP', dftout) .and. (iexch == notset .and. igcx == notset)) &
+ call set_dft_value (igcx, 1)
! special case : revPBE
if (matches ('REVPBE', dftout) ) then
@@ -396,7 +401,7 @@
logical, external :: matches
isgradient = (igcx > 0) .or. (igcc > 0)
- ismeta = (igcx == 7) .or. (igcx == 6 )
+ ismeta = (igcx == 7)
! PBE0
IF ( iexch==6 .or. igcx ==8 ) exx_fraction = 0.25_DP
@@ -606,6 +611,8 @@
else if (iexch_==7.and.(icorr_==10.or.icorr_==2).and.igcx_==9.and. &
igcc_==7) then
shortname_ = 'B3LYP'
+ else if (iexch_==0.and.icorr_==3.and.igcx_==6.and.igcc_==3) then
+ shortname_ = 'OLYP'
else
shortname_ = ' '
end if
More information about the users
mailing list