Error when using HSE hybrid functional and IVdW in version 6
Moderators: Global Moderator, Moderator
-
- Newbie
- Posts: 3
- Joined: Fri Jul 01, 2022 8:14 pm
Error when using HSE hybrid functional and IVdW in version 6
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
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
-
- Global Moderator
- Posts: 419
- Joined: Mon Sep 13, 2021 11:02 am
Re: Error when using HSE hybrid functional and IVdW in version 6
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?
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?
-
- Newbie
- Posts: 3
- Joined: Fri Jul 01, 2022 8:14 pm
Re: Error when using HSE hybrid functional and IVdW in version 6
Thank you very much for your answer.
I am using IVDW=12.
And
LHFCALC = .TRUE.
HFSCREEN = 0.2
PRECFOCK = Fast
TIME = 0.4
I am using IVDW=12.
And
LHFCALC = .TRUE.
HFSCREEN = 0.2
PRECFOCK = Fast
TIME = 0.4
-
- Global Moderator
- Posts: 419
- Joined: Mon Sep 13, 2021 11:02 am
Re: Error when using HSE hybrid functional and IVdW in version 6
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.
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.
-
- Newbie
- Posts: 3
- Joined: Fri Jul 01, 2022 8:14 pm
Re: Error when using HSE hybrid functional and IVdW in version 6
Thank you very much again for the explanation!!
Best regards
Veronica
Best regards
Veronica
-
- Full Member
- Posts: 191
- Joined: Tue Oct 13, 2020 11:32 pm
Re: Error when using HSE hybrid functional and IVdW in version 6
Dear fabien_tran1,
Regards,
Zhao
Do you mean that versions higher than VASP.6.3.2 no longer require the above settings?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.
Regards,
Zhao
-
- Global Moderator
- Posts: 419
- Joined: Mon Sep 13, 2021 11:02 am
Re: Error when using HSE hybrid functional and IVdW in version 6
No. All versions of VASP released so far (including the upcoming one) require this setting.
-
- Full Member
- Posts: 191
- Joined: Tue Oct 13, 2020 11:32 pm
Re: Error when using HSE hybrid functional and IVdW in version 6
Dear fabien_tran1,
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
In src/subdftd3.F of vasp.6.4.2, I noticed the following code snippet: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.
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
Regards,
Zhao
-
- Global Moderator
- Posts: 419
- Joined: Mon Sep 13, 2021 11:02 am
Re: Error when using HSE hybrid functional and IVdW in version 6
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.
-
- Full Member
- Posts: 191
- Joined: Tue Oct 13, 2020 11:32 pm
Re: Error when using HSE hybrid functional and IVdW in version 6
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.
-
- Global Moderator
- Posts: 419
- Joined: Mon Sep 13, 2021 11:02 am
Re: Error when using HSE hybrid functional and IVdW in version 6
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.