Long-range hybrid functionals
Moderators: Global Moderator, Moderator
-
- Newbie
- Posts: 10
- Joined: Sun Jun 17, 2018 12:45 pm
- License Nr.: 5-2542
Long-range hybrid functionals
Dear All,
Can general range-separated hybrid functionals be used in VASP? For example, the SRSH functional ( S. Refaely-Abramsonet al., Gap renormalization of molecular crystals from density-functional theory.Phys. Rev. B88, 081204 (2013) ) with a certain fraction of short-range Fock exchange and a different fraction of long-range fock exchange. I saw that the functionals of libxc can be used in VASP 6.3 Does that include long-range separated hybrid functionals? Does it include functionals such as SRSH ? Does it include wb97x-v?
I've been using a long-range separated hybrid in VASP 5.4.4 with:
LHFCALC = .TRUE.
HFSCREEN = 0.048
LRHFCALC = .TRUE.
AEXX = 1.0
ALDAC = 1.0
Which works when the fraction of short-range fock exchange fraction is zero and long-range fock exchange fraction is 1. I saw that this had been implemented in xclib.F by Iann Gerber.
How does one set-up the input parameters for a general SRSH, or can one only use the functionals specified explicitly in libxc? The manual was not so clear on this : https://www.vasp.at/wiki/index.php/LIBXC1
Thank you,
Dr. Helen Eisenberg,
Fritz Haber Center for Molecular Dynamics,
Hebrew University of Jerusalem
Can general range-separated hybrid functionals be used in VASP? For example, the SRSH functional ( S. Refaely-Abramsonet al., Gap renormalization of molecular crystals from density-functional theory.Phys. Rev. B88, 081204 (2013) ) with a certain fraction of short-range Fock exchange and a different fraction of long-range fock exchange. I saw that the functionals of libxc can be used in VASP 6.3 Does that include long-range separated hybrid functionals? Does it include functionals such as SRSH ? Does it include wb97x-v?
I've been using a long-range separated hybrid in VASP 5.4.4 with:
LHFCALC = .TRUE.
HFSCREEN = 0.048
LRHFCALC = .TRUE.
AEXX = 1.0
ALDAC = 1.0
Which works when the fraction of short-range fock exchange fraction is zero and long-range fock exchange fraction is 1. I saw that this had been implemented in xclib.F by Iann Gerber.
How does one set-up the input parameters for a general SRSH, or can one only use the functionals specified explicitly in libxc? The manual was not so clear on this : https://www.vasp.at/wiki/index.php/LIBXC1
Thank you,
Dr. Helen Eisenberg,
Fritz Haber Center for Molecular Dynamics,
Hebrew University of Jerusalem
-
- Global Moderator
- Posts: 419
- Joined: Mon Sep 13, 2021 11:02 am
Re: Long-range hybrid functionals
Hi,
Regarding range-separated functionals, the main limitation in VASP is that it is not possible to use two types of HF exchange at the same time. One can use full HF (HFSCREEN=0), SR-HF (HFSCREEN>0) or LR-HF (LRHFCALC=.TRUE., HFSCREEN>0), but not a combination of them. That means that the SRSH and w-B97X-V functionals can not be used with VASP.
Concerning Libxc, it provides only the semilocal part of a hybrid functional, and all codes using Libxc need their own implementation of the (SR/LR)-HF exchange.
Making general range-separated functionals available in VASP is something that we will keep in mind.
Regarding range-separated functionals, the main limitation in VASP is that it is not possible to use two types of HF exchange at the same time. One can use full HF (HFSCREEN=0), SR-HF (HFSCREEN>0) or LR-HF (LRHFCALC=.TRUE., HFSCREEN>0), but not a combination of them. That means that the SRSH and w-B97X-V functionals can not be used with VASP.
Concerning Libxc, it provides only the semilocal part of a hybrid functional, and all codes using Libxc need their own implementation of the (SR/LR)-HF exchange.
Making general range-separated functionals available in VASP is something that we will keep in mind.
-
- Newbie
- Posts: 10
- Joined: Sun Jun 17, 2018 12:45 pm
- License Nr.: 5-2542
Re: Long-range hybrid functionals
Thank you for your reply, it was very helpful.
I've been looking at the code for xclib.F and fock.F and I think with the current code I could use a range separated functional where the range separation is 1/r = AEXX*erf(HFSCREEN*r)/r +(1-AEXX*erf(HFSCREEN*r))/r. i.e SRSH with a zero fraction of short-range Hartree Fock.
I think implementing the full SRSH with a fraction (BEXX) of exact-exchange also in the short-range would require me to add to the fock.F routine in a similar way to the L_MODEL_HF:
POTFAK(NI)=SCALE/GSQU*(BEXX-AEXX*EXP(-GSQU*(TPI*TPI/(4*HFSCREEN*HFSCREEN))))
and elsewhere that L_MODEL_HF is called in fock.F
Does this look correct and sufficient?
Thank you,
Dr. Helen Eisenberg,
Fritz Haber Center for Molecular Dynamics
Hebrew University of Jerusalem
I've been looking at the code for xclib.F and fock.F and I think with the current code I could use a range separated functional where the range separation is 1/r = AEXX*erf(HFSCREEN*r)/r +(1-AEXX*erf(HFSCREEN*r))/r. i.e SRSH with a zero fraction of short-range Hartree Fock.
I think implementing the full SRSH with a fraction (BEXX) of exact-exchange also in the short-range would require me to add to the fock.F routine in a similar way to the L_MODEL_HF:
POTFAK(NI)=SCALE/GSQU*(BEXX-AEXX*EXP(-GSQU*(TPI*TPI/(4*HFSCREEN*HFSCREEN))))
and elsewhere that L_MODEL_HF is called in fock.F
Does this look correct and sufficient?
Thank you,
Dr. Helen Eisenberg,
Fritz Haber Center for Molecular Dynamics
Hebrew University of Jerusalem
-
- Global Moderator
- Posts: 419
- Joined: Mon Sep 13, 2021 11:02 am
Re: Long-range hybrid functionals
I'm not familiar with the HF implementation in VASP, but what you proposed seems plausible, except that it concerns only the plane-wave part. For the PAW spheres, you should have a look at pawfock.F. I can try to get some more info from colleagues if necessary.
-
- Newbie
- Posts: 10
- Joined: Sun Jun 17, 2018 12:45 pm
- License Nr.: 5-2542
Re: Long-range hybrid functionals
Thank you, I'd really appreciate that
-
- Global Moderator
- Posts: 419
- Joined: Mon Sep 13, 2021 11:02 am
Re: Long-range hybrid functionals
Hi,
I can also just mention that in pawfock.F the parameters have different names: RMU, BEXX and BRSEXX (see subroutine RSPARAMETERS in fock.F).
I can also just mention that in pawfock.F the parameters have different names: RMU, BEXX and BRSEXX (see subroutine RSPARAMETERS in fock.F).
-
- Newbie
- Posts: 1
- Joined: Mon Nov 11, 2019 6:54 pm
Re: Long-range hybrid functionals
Hello!
I was wondering if there are any updates on the status of SRSH or general hybrid functionals in VASP?
I was wondering if there are any updates on the status of SRSH or general hybrid functionals in VASP?