DF2 van der Waals (vdW) and XC functionals

242 views
Skip to first unread message

Ronald Cohen

unread,
Feb 12, 2019, 9:02:47 AM2/12/19
to cp2k
I am quite confused about the (lack of) documentation for the XC functionals and non-local vdW. I find examples such as:

&XC

&XC_FUNCTIONAL NO_SHORTCUT

&LIBXC T

FUNCTIONAL XC_GGA_X_RPW86

&END LIBXC 

&VWN T 

&END VWN

&END XC_FUNCTIONAL &VDW_POTENTIAL

POTENTIAL_TYPE NON_LOCAL &NON_LOCAL

TYPE LMKLL

VERBOSE_OUTPUT T KERNEL_FILE_NAME ./vdW_kernel_table.dat CUTOFF 160

&END NON_LOCAL &END VDW_POTENTIAL

&END XC


(from http://archer.ac.uk/training/course-material/2014/08/CP2K/Slides/NSCCS_2014_Sanliang_Ling.pdf )


and similar even in the regtests.

This seems to call both XC_GGA_X_RPW86 and VWN (lda) .

What does it mean to call two different xc potentials in cp2k, and why would one do it?

Tracing this in the code is not so easy either.


Ins eom docs it seems to suggest that LDA only should be used for correlation. Is that because GGA is included 

in the vDW function in cp2k? Also there is the question which pseudopotentials to use.


It seems to me that  XC_GGA_X_RPW86 is correct without the VMN, and this would correapond to what is done for DF2 in

quantum espresso it seems.


I note some related problems with the documentation. I find examples like for LIBXC:

FUNCTIONAL XC_MGGA_X_M06_L XC_MGGA_C_M06_L

but the docs at 

say

  • FUNCTIONAL
  • This keyword cannot be repeated and it expects precisely one word.

Yet there are "two words" 

and including VWN afterwards also seems like more than one functional, as I said above.


Thank you!


Ronald Cohen


 

Patrick Gono

unread,
Feb 12, 2019, 12:13:14 PM2/12/19
to cp...@googlegroups.com
Dear Ronald,

it is true that documentation can be sparse. I suggest following the articles cited in the manual for more information.

I note some related problems with the documentation. I find examples like for LIBXC:

FUNCTIONAL XC_MGGA_X_M06_L XC_MGGA_C_M06_L

but the docs at 

say

  • FUNCTIONAL
  • This keyword cannot be repeated and it expects precisely one word.

Yet there are "two words" 

and including VWN afterwards also seems like more than one functional, as I said above.


In older versions (prior to 6.1), the FUNCTIONAL keyword accepted a list of words. In the newest version (6.1), this keyword only accepts a single word. Note, however, that the section &LIBXC can be repeated. So, instead of:

&LIBXC
  FUNCTIONAL XC_MGGA_X_M06_L XC_MGGA_C_M06_L
&END LIBXC

you can do:

&LIBXC
  FUNCTIONAL XC_MGGA_X_M06_L
&END LIBXC
&LIBXC
  FUNCTIONAL XC_MGGA_C_M06_L
&END LIBXC

You can also mix different correlation or exchange functionals, like so:

&XC_FUNCTIONAL
  &LIBXC
    FUNCTIONAL  XC_GGA_X_RPW86 
  &END LIBXC
  &LIBXC
    FUNCTIONAL  GGA_C_PBE
  &END LIBX
&END XC_FUNCTIONAL
&vdW_POTENTIAL
  DISPERSION_FUNCTIONAL NON_LOCAL
  &NON_LOCAL
    TYPE RVV10
    PARAMETERS  9.3   0.0093
    KERNEL_FILE_NAME  ./rVV10_kernel_table.dat
    CUTOFF      400
  &END NON_LOCAL
&END vdW_POTENTIAL



where I used RPW86 exchange and PBE correlation. The reason behind that is that I am trying to use the (modified) rVV10 nonlocal van der Waals functional. In the original paper: https://journals.aps.org/prb/abstract/10.1103/PhysRevB.87.041108 the authors define the total exchange-correlation as:
XC_rVV10 = X_RPW86 + C_PW_LDA + C_non-local_vdW

However, in later work it was found that the non-local vdW correction from the rVV10 works quite well with other combinations of correlation and exchange functionals. Hence, I am now using
XC_rVV10 = X_RPW86 + C_PBE + C_non-local_vdW
with a specific choice of the b parameter in the vdW correction.

What I am trying to say is that you can mix and match the non-local vdW correction with different exchanges and correlations. The specific choice will always depend on the system you are trying to study. There are many papers testing and comparing various combinations, such as this one https://pubs.acs.org/doi/10.1021/ct4003527 where the VV10 corrections is added to various exchanges and correlations.

In your input file you use the Lee-Murray-Kong-Lundqvist-Langreth (LMKLL) nonlocal van der Waals density functional (via the keyword TYPE LMKLL). If you look up the relevant publication, you will find what correlation and exchange functional it is supposed to be used with. You may also find benchmark papers that use this non-local correction on top of other-than-originally-intended exchange and correlation functionals. This allows one to choose the best combination for the system at hand (large system vs small; periodic vs isolated; metals vs semiconductors vs small molecules; etc.).

Hope this helps.
Yours sincerely,
Patrick Gono

--
You received this message because you are subscribed to the Google Groups "cp2k" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cp2k+uns...@googlegroups.com.
To post to this group, send email to cp...@googlegroups.com.
Visit this group at https://groups.google.com/group/cp2k.
For more options, visit https://groups.google.com/d/optout.

Ronald Cohen

unread,
Feb 12, 2019, 12:39:26 PM2/12/19
to cp...@googlegroups.com
Dear Patrick Gono,

Thank you so much for your help. What you write makes perfect sense. However, I am still stymied by the example, as it seems to include two exchanges and two correlations.
XC_GGA_X_RPW86 includes both exchange and correlations
and so does VWN.
So what does the code do? It seems, at least in the energy, to ADD GGA and LDA xc (both x and c), 
and that is certainly not what is wanted.

There is also the issue of using pseudopotentials that correspond to the xc for the bands.There are limitless combinations of XC possible, but only a few are represented in the cp2k pseudopotentials/\

Sincerely,

Ron


&XC

&XC_FUNCTIONAL NO_SHORTCUT

&LIBXC T

FUNCTIONAL XC_GGA_X_RPW86

&END LIBXC 

&VWN T 

&END VWN

&END XC_FUNCTIONAL &VDW_POTENTIAL

POTENTIAL_TYPE NON_LOCAL &NON_LOCAL

TYPE LMKLL

VERBOSE_OUTPUT T KERNEL_FILE_NAME ./vdW_kernel_table.dat CUTOFF 160

&END NON_LOCAL &END VDW_POTENTIAL

&END XC

---
Ron Cohen
reco...@gmail.com
skypename: ronaldcohen
twitter: @recohen3




You received this message because you are subscribed to a topic in the Google Groups "cp2k" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cp2k/_1FupbyRLPA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cp2k+uns...@googlegroups.com.
signature.asc

Patrick Gono

unread,
Feb 13, 2019, 10:17:53 AM2/13/19
to cp...@googlegroups.com
Dear Ronald,

Thank you so much for your help. What you write makes perfect sense. However, I am still stymied by the example, as it seems to include two exchanges and two correlations.
XC_GGA_X_RPW86 includes both exchange and correlations

Please, feel free to ignore the leading XC_. Only the _X_ or _C_ in the middle of the value specify exchange or correlation, respectively. You can find all the available functionals (be it exchange, correlation, or both) here:

You can run the exact same calculation leaving out the leading XC_ in your functional specifications. I am not entirely sure why it is like this, probably some holdover from an older version of LibXC or CP2K? Nevertheless, I hope this clears up the issue.

Yours sincerely
Patrick Gono
Reply all
Reply to author
Forward
0 new messages