Error when using HSE hybrid functional and IVdW in version 6

Question on input files/tags, interpreting output, etc.

Please check whether the answer to your question is given in the VASP online manual or has been discussed in this forum previously!

Moderators: Global Moderator, Moderator

Post Reply
Message
Author
vvildosola
Newbie
Newbie
Posts: 3
Joined: Fri Jul 01, 2022 8:14 pm

Error when using HSE hybrid functional and IVdW in version 6

#1 Post by vvildosola » Wed Feb 21, 2024 2:10 pm

Dear all,
After updating vasp version from 5.4.4 to 6.3.2, we started to have an
error message when using VdW corrections together with HSE06.
The Error message is:
"Unsupported xc functional, please specify VDW_A1, VDW_A2, VDW_S8 in the
INCAR file."
This error didn't appear with the previous version of vasp.
Now it is necessary to include the S8 and S_R6 parameters by hand in the
INCAR file. And it is not obvious where to get the correct values.
Besides, in the wiki page it says the default values for the damping
function parameters should be available for hybrid functionals.
Is there a problem with the vasp-6.3.2 version in this respect?
Thanks in advance,
Veronica

fabien_tran1
Global Moderator
Global Moderator
Posts: 335
Joined: Mon Sep 13, 2021 11:02 am

Re: Error when using HSE hybrid functional and IVdW in version 6

#2 Post by fabien_tran1 » Thu Feb 22, 2024 9:09 am

Hi,

First comment: It seems that you are using DFT-D4 (IVDW=13), since this error message can only be produced if IVDW=13. At the time of vasp.5.4.4 (2017), DFT-D4 was not yet developed.

Besides, with vasp.6.3.2 I can run a calculation with HSE06 and the DFT-D4 vdW correction. The INCAR file contains
LHFCALC = .TRUE.
GGA = PE
HFSCREEN = 0.2
IVDW = 13

What did you specify in your INCAR file? Note that DFT-D4 is an external library that needs to be installed. Did you do it?

vvildosola
Newbie
Newbie
Posts: 3
Joined: Fri Jul 01, 2022 8:14 pm

Re: Error when using HSE hybrid functional and IVdW in version 6

#3 Post by vvildosola » Thu Feb 22, 2024 12:33 pm

Thank you very much for your answer.
I am using IVDW=12.
And
LHFCALC = .TRUE.
HFSCREEN = 0.2
PRECFOCK = Fast
TIME = 0.4

fabien_tran1
Global Moderator
Global Moderator
Posts: 335
Joined: Mon Sep 13, 2021 11:02 am

Re: Error when using HSE hybrid functional and IVdW in version 6

#4 Post by fabien_tran1 » Thu Feb 22, 2024 3:32 pm

Ok, sorry I was wrong, the error message can also be produced by DFT-D3 with the BJ damping function (IVDW=12). I have looked into the source code of versions 5.4.4 and 6.3.2 of VASP, and what is happening when HSE06 and IVDW=12 are selected is the following:

VASP.5.4.4:
The calculation does not stop with an error message, but wrong values for the parameters a1 (=VDW_A1), s8 (=VDW_S8) and a2 (=VDW_A2) are used. The PBE values (a1=0.4289, s8=0.7875, a2=4.4407) are used instead of the HSE06 values (a1=0.383, s8=2.310, a2=5.685). That means that the method HSE06-D3(BJ) was not programmed correctly in VASP.5.4.4.

VASP.6.3.2:
The calculation stops, which is the correct behavior because the HSE06 parameters for DFT-D3(BJ) were never programmed in VASP.

Thus, in order to do a proper HSE06-D3(BJ) calculation (with VASP.5.4.4 and VASP.6.3.2), one has to specify the parameters in INCAR:
VDW_A1 = 0.383
VDW_S8 = 2.310
VDW_A2 = 5.685
These HSE06 parameters can be found in https://www.chemie.uni-bonn.de/grimme/d ... /dftd3.tgz, but were apparently not included in VASP for some reason that I ignore.

vvildosola
Newbie
Newbie
Posts: 3
Joined: Fri Jul 01, 2022 8:14 pm

Re: Error when using HSE hybrid functional and IVdW in version 6

#5 Post by vvildosola » Thu Feb 22, 2024 4:14 pm

Thank you very much again for the explanation!!
Best regards
Veronica

hszhao.cn@gmail.com
Full Member
Full Member
Posts: 139
Joined: Tue Oct 13, 2020 11:32 pm

Re: Error when using HSE hybrid functional and IVdW in version 6

#6 Post by hszhao.cn@gmail.com » Tue Mar 05, 2024 7:02 am

Dear fabien_tran1,
VASP.6.3.2:
The calculation stops, which is the correct behavior because the HSE06 parameters for DFT-D3(BJ) were never programmed in VASP.

Thus, in order to do a proper HSE06-D3(BJ) calculation (with VASP.5.4.4 and VASP.6.3.2), one has to specify the parameters in INCAR:
VDW_A1 = 0.383
VDW_S8 = 2.310
VDW_A2 = 5.685
These HSE06 parameters can be found in https://www.chemie.uni-bonn.de/grimme/d ... /dftd3.tgz, but were apparently not included in VASP for some reason that I ignore.
Do you mean that versions higher than VASP.6.3.2 no longer require the above settings?

Regards,
Zhao

fabien_tran1
Global Moderator
Global Moderator
Posts: 335
Joined: Mon Sep 13, 2021 11:02 am

Re: Error when using HSE hybrid functional and IVdW in version 6

#7 Post by fabien_tran1 » Wed Mar 06, 2024 8:53 am

No. All versions of VASP released so far (including the upcoming one) require this setting.

hszhao.cn@gmail.com
Full Member
Full Member
Posts: 139
Joined: Tue Oct 13, 2020 11:32 pm

Re: Error when using HSE hybrid functional and IVdW in version 6

#8 Post by hszhao.cn@gmail.com » Sat Mar 09, 2024 12:02 am

Dear fabien_tran1,
VASP.6.3.2:
The calculation stops, which is the correct behavior because the HSE06 parameters for DFT-D3(BJ) were never programmed in VASP.

Thus, in order to do a proper HSE06-D3(BJ) calculation (with VASP.5.4.4 and VASP.6.3.2), one has to specify the parameters in INCAR:
VDW_A1 = 0.383
VDW_S8 = 2.310
VDW_A2 = 5.685
These HSE06 parameters can be found in https://www.chemie.uni-bonn.de/grimme/d ... /dftd3.tgz, but were apparently not included in VASP for some reason that I ignore.
In src/subdftd3.F of vasp.6.4.2, I noticed the following code snippet:

Code: Select all

      ELSE IF (version.eq.4) THEN !BJ-Damping
        CALL PROCESS_INCAR(LOPEN, IO%IU0, IO%IU5, 'VDW_A1', RDUM, IERR, WRITEXMLINCAR)
        IF (IERR==0) THEN
           IF ((RDUM>0.0).AND.(RDUM<10.0)) THEN
              rs6=RDUM
              user_defined = user_defined // '\nVDW_A1 = ' // str(rs6)
           ELSE
              CALL vtutor%alert('A1 parameter for BJ-damping (VDW_A1) is not reasonable. Taking default.')
           ENDIF
        ENDIF
 
        CALL PROCESS_INCAR(LOPEN, IO%IU0, IO%IU5, 'VDW_A2', RDUM, IERR, WRITEXMLINCAR)
        IF (IERR==0) THEN
           IF ((RDUM>0.0).AND.(RDUM<10.0)) THEN
              rs8=RDUM
              user_defined = user_defined // '\nVDW_A2 = ' // str(rs8)
           ELSE
              CALL vtutor%alert('A2 parameter for BJ-damping (VDW_A2) is not reasonable. Taking default.')
           ENDIF
        ENDIF
 
        CALL PROCESS_INCAR(LOPEN, IO%IU0, IO%IU5, 'VDW_S8', RDUM, IERR, WRITEXMLINCAR)
        IF (IERR==0) THEN
           IF ((RDUM>=0.0).AND.(RDUM<10.0)) THEN
              s18=RDUM
              user_defined = user_defined // '\nVDW_S8 = ' // str(s18)
           ELSE
              CALL vtutor%alert('VDW_S8 is not reasonable. Taking default.')
           ENDIF
        ENDIF
      ENDIF !version
If the parameters you mentioned above are not hardcoded to the Vasp source code at all, what is the significance of the Taking default processing above?

Regards,
Zhao

fabien_tran1
Global Moderator
Global Moderator
Posts: 335
Joined: Mon Sep 13, 2021 11:02 am

Re: Error when using HSE hybrid functional and IVdW in version 6

#9 Post by fabien_tran1 » Sat Mar 09, 2024 12:31 pm

The "Taking default" alerts are activated if the user provides in INCAR a parameter value that is physically unreasonable, i.e., negative or larger than 10.

hszhao.cn@gmail.com
Full Member
Full Member
Posts: 139
Joined: Tue Oct 13, 2020 11:32 pm

Re: Error when using HSE hybrid functional and IVdW in version 6

#10 Post by hszhao.cn@gmail.com » Sun Mar 10, 2024 5:04 am

In my understanding, the meaning of "Taking default" is not just an alert, but also setting a reasonable default value in this situation. However, if it is more reasonable to only set the corresponding parameters based on what the developers of DFTD3 provide, they should be hardcoded in the Vasp source code.

fabien_tran1
Global Moderator
Global Moderator
Posts: 335
Joined: Mon Sep 13, 2021 11:02 am

Re: Error when using HSE hybrid functional and IVdW in version 6

#11 Post by fabien_tran1 » Sun Mar 10, 2024 8:33 am

Ok, I can see that in the case of HSE06 if the value of a parameter specified in INCAR is outside the reasonable range [0, 10], then the PBE default value is used, which is an arbitrary and unjustified choice. In my opinion, the calculation should stop instead. I will discuss about that with my colleagues and also add the HSE06 parameters in subdftd3.F.

Post Reply