correlation contribution in subroutine?

Queries about input and output files, running specific calculations, etc.


Moderators: Global Moderator, Moderator

Post Reply
Message
Author
subrata
Newbie
Newbie
Posts: 7
Joined: Tue Feb 21, 2017 10:33 am
License Nr.: 5-2085

correlation contribution in subroutine?

#1 Post by subrata » Wed Mar 19, 2025 9:04 am

Hi,
I am a bit confused with the use of AGGAC and ALDAC term.
For example, if I want to use 0.66*PBEc (66% of PBE correlation) then how to mention in the INCAR file

I can use

ALDAC=0.66
AGGAC=0.66

or I have to specify

AGGAC = 0.66

Especially, in xc_driver.F I do not find any ALDAC multiplied with ECLDA.

! wPBE
EXC =EC *AGGAC+ EXWPBE_SR/D*AGGAX +EXWPBE_LR/D +ECLDA
EXCD =ECD *AGGAC+ EXWPBED_SR*AGGAX+EXWPBED_LR+ECDLDA
EXCDD=ECDD*AGGAC+ EXWPBEDD_SR*AGGAX +EXWPBEDD_LR

Then how to use 66% of PBE correlation?

Subrata


martin.schlipf
Global Moderator
Global Moderator
Posts: 594
Joined: Fri Nov 08, 2019 7:18 am

Re: correlation contribution in subroutine?

#2 Post by martin.schlipf » Wed Mar 19, 2025 3:42 pm

Thank you for this interesting question.

The situation is actually a bit more complex because VASP has multiple routines that compute the exchange-correlation energies. For LDA in particular, the relevant routines are in setex.F where a table of the xc potential is constructed. There is also ldalib.F which is used for the augmentation spheres. If you inspect these routines, you will find that ALDAC is used, so the code works fine. The code branch that you referred to is actually never executed by VASP and users cannot trigger that.

Finally, if you want to mix functionals, you may also consider the new XC INCAR tag that allows to do this in a more convenient fashion.

Martin Schlipf
VASP developer


Post Reply