Page 1 of 1

Error when using HSE hybrid functional and IVdW in version 6

Posted: Wed Feb 21, 2024 2:10 pm
by vvildosola
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

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

Posted: Thu Feb 22, 2024 9:09 am
by fabien_tran1
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?

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

Posted: Thu Feb 22, 2024 12:33 pm
by vvildosola
Thank you very much for your answer.
I am using IVDW=12.
And
LHFCALC = .TRUE.
HFSCREEN = 0.2
PRECFOCK = Fast
TIME = 0.4

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

Posted: Thu Feb 22, 2024 3:32 pm
by fabien_tran1
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.

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

Posted: Thu Feb 22, 2024 4:14 pm
by vvildosola
Thank you very much again for the explanation!!
Best regards
Veronica

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

Posted: Tue Mar 05, 2024 7:02 am
by hszhao.cn@gmail.com
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

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

Posted: Wed Mar 06, 2024 8:53 am
by fabien_tran1
No. All versions of VASP released so far (including the upcoming one) require this setting.

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

Posted: Sat Mar 09, 2024 12:02 am
by hszhao.cn@gmail.com
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

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

Posted: Sat Mar 09, 2024 12:31 pm
by fabien_tran1
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.

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

Posted: Sun Mar 10, 2024 5:04 am
by hszhao.cn@gmail.com
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.

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

Posted: Sun Mar 10, 2024 8:33 am
by fabien_tran1
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.