[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