LIBMBD METHOD: Difference between revisions

From VASP Wiki
No edit summary
No edit summary
 
(25 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{DISPLAYTITLE:LIBMBD_METHOD}}
{{DISPLAYTITLE:LIBMBD_METHOD}}
{{TAGDEF|LIBMBD_METHOD|[string]}}
{{TAGDEF|LIBMBD_METHOD|[string]|mbd-rsscs (default in libMBD)}}


Description: {{TAG|LIBMBD_METHOD}} selects one of the van der Waals methods available in the library libMBD of many-body dispersion methods{{cite|libmbd_1}}{{cite|libmbd_2}}{{cite|hermann:jcp:2023}}.
Description: {{TAG|LIBMBD_METHOD}} selects one of the methods available in the library libMBD of many-body dispersion methods{{cite|libmbd_1}}{{cite|libmbd_2}}{{cite|hermann:jcp:2023}}.
----
----
{{NB|important| This feature is available from VASP.6.3.0 onwards that needs to be compiled with [[Precompiler_options#-DUSELIBXC|-DUSELIBXC]].}}
{{TAG|LIBMBD_METHOD}} can be set to a label (string) corresponding to one of the methods listed on the libMBD website (see '''method''' at the page {{cite|libmbd_input}}).
{{TAG|LIBXC1}} and {{TAG|LIBXC2}} can be set to a label (string) or number (integer) associated with a functional listed on the Libxc website{{cite|libxc_list}}, e.g., <code>GGA_X_PBE</code> and <code>101</code> for PBE exchange. The label indicates if this is an exchange (X), correlation (C), or exchange-correlation (XC) functional, and which family it belongs to, namely LDA (LDA or HYB_LDA), GGA (GGA or HYB_GGA) or meta-GGA (MGGA or HYB_MGGA). If {{TAG|LIBXC1}} corresponds to an exchange functional, then it can be used in combination with {{TAG|LIBXC2}} for the correlation functional.
{{NB|mind| Note that the use of the mbd-nl method{{cite|hermann:prl:2020}} is currently not possible, since the associated atomic polarizabilities and semilocal functional are currently not implemented in VASP.}}
 
{{NB|important| This feature is available from VASP.6.4.3 onwards that needs to be compiled with [[Precompiler_options#-DLIBMBD|-DLIBMBD]].}}
Libxc is a separate library package that has to be downloaded{{cite|libxc}} and compiled before VASP is compiled with the corresponding [[Precompiler_options#-DUSELIBXC|precompiler options]] and [[Makefile.include#Libxc_.28optional.29|links to the libraries]].
libMBD is a separate library package that has to be downloaded{{cite|libmbd_2}} and compiled before VASP is compiled with the corresponding [[Precompiler_options#-DLIBMBD|precompiler options]] and [[Makefile.include#LIBMBD_.28optional.29|links to the libraries]].
 
Calculations with Laplacian-dependent meta-GGA functionals and meta-GGA-based hybrid functionals are possible since VASP.6.4.0.
{{NB|warning|Do not use the Libxc functionals that are hybrid-MGGA-exchange-only, i.e., those whose label starts with HYB_MGGA_X, since the results will be wrong.}}
{{NB|important|To get correct results with meta-GGA functionals (see discussion at {{TAG|LTBOUNDLIBXC}}), it is necessary to use Libxc from version 5.2.0 onwards (or the master version for the latest implemented functionals) and to [[Makefile.include#Libxc_.28optional.29|compile it with the option <code>--disable-fhc</code>]].}}
 
== How to ==
 
The allowed possibilities for {{TAG|LIBXC1}} and {{TAG|LIBXC2}} are the following:
*Both {{TAGDEF|LIBXC1}} and {{TAG|LIBXC2}} are specified and correspond to exchange and correlation functionals, respectively.
*Only {{TAGDEF|LIBXC1}} is specified and corresponds to an exchange or exchange-correlation functional. {{NB|warning|If {{TAGDEF|LIBXC1}} is an exchange-correlation functional, then {{TAGDEF|LIBXC2}} can not be used.|:}}
*{{TAGDEF|LIBXC1}} and {{TAG|LIBXC2}} can correspond to functionals of different families, e.g., a meta-GGA and a GGA, respectively.
 
Regarding other tags in {{FILE|INCAR}} related to Libxc:
*One also has to specify {{TAG|GGA}} = LIBXC for LDA, GGA and GGA-based hybrid functionals or {{TAG|METAGGA}} = LIBXC for meta-GGA functionals and meta-GGA-based hybrid functionals. Note that if one of the tags ({{TAGDEF|LIBXC1}} or {{TAGDEF|LIBXC2}}) corresponds to a meta-GGA, while the other corresponds to a GGA or LDA, then {{TAG|METAGGA}} = LIBXC (and not {{TAG|GGA}} = LIBXC) has to be specified.
*Many of the functionals implemented in Libxc have parameters that can be modified. This can be done via the tags {{TAG|LIBXC1_Pn}} and {{TAG|LIBXC2_Pn}}, where <math>n=1, 2, \ldots</math>.
*The tag {{TAG|LTBOUNDLIBXC}}, which is .FALSE. by default, allows to enforce the lower bound on the kinetic-energy density (<math>\tau_{\sigma}^{\mathrm{W}}<\tau_{\sigma}</math>) with <math>\tau_{\sigma}=\max(\tau_{\sigma},\tau_{\sigma}^{\mathrm{W}})</math> before <math>\tau_{\sigma}</math> is used in a meta-GGA functional from Libxc.
 
For calculations with hybrid functionals ({{TAG|LHFCALC}}=True), the following provides some explanations:
*The Libxc functionals whose tag starts with HYB already include the mixing parameter. Therefore, for them, the {{TAG|ALDAX}}, {{TAG|ALDAC}}, {{TAG|AGGAX}}, {{TAG|AGGAC}}, {{TAG|AMGGAX}}, and {{TAG|AMGGAC}} tags can not be used (more information on how to modify the mixing and screening parameters can be found at {{TAG|LIBXC1_Pn}}).
*If the semilocal component of the hybrid functional is constructed using Libxc functionals that do not contain HYB in the tag, then {{TAG|ALDAX}}, {{TAG|AGGAX}}, {{TAG|ALDAC}}, and {{TAG|AGGAC}} will be used and multiply
:<math>E_{\mathrm{x}}^{\mathrm{LDA}}=\int\epsilon_{\mathrm{x}}^{\mathrm{LDA}}(n)d^{3}r</math>
:<math>\Delta E_{\mathrm{x}}^{\mathrm{GGA}}=\int\left(\epsilon_{\mathrm{x}}^{\mathrm{GGA}}(n,\nabla n) - \epsilon_{\mathrm{x}}^{\mathrm{LDA}}(n)\right)d^{3}r</math>
:<math>E_{\mathrm{c}}^{\mathrm{LDA}}=\int\epsilon_{\mathrm{c}}^{\mathrm{LDA}}(n)d^{3}r</math>
:<math>\Delta E_{\mathrm{c}}^{\mathrm{GGA}}=\int\left(\epsilon_{\mathrm{c}}^{\mathrm{GGA}}(n,\nabla n) - \epsilon_{\mathrm{c}}^{\mathrm{LDA}}(n)\right)d^{3}r</math>
:respectively, where <math>\epsilon_{\mathrm{x}}^{\mathrm{LDA}}(n)=-\left(3/4\right)\left(3/\pi\right)^{1/3}n^{4/3}</math> and <math>\epsilon_{\mathrm{c}}^{\mathrm{LDA}}(n)=\epsilon_{\mathrm{c}}^{\mathrm{GGA}}(n,\nabla n=0)</math>.
 
== Examples of {{FILE|INCAR}} ==
 
*PBE{{cite|perdew:prl:1996}}
{{TAG|GGA}} = LIBXC
{{TAG|LIBXC1}} = GGA_X_PBE # or 101
{{TAG|LIBXC2}} = GGA_C_PBE # or 130
 
*SCAN{{cite|sun:prl:15}}
{{TAG|METAGGA}} = LIBXC
{{TAG|LIBXC1}} = MGGA_X_SCAN # or 263
{{TAG|LIBXC2}} = MGGA_C_SCAN # or 267
 
*PBEh (PBE0){{cite|adamo:jcp:1999}}
{{TAG|LHFCALC}} = .TRUE.
{{TAG|AEXX}} = 0.25
{{TAG|GGA}} = LIBXC
{{TAG|LIBXC1}} = HYB_GGA_XC_PBEH # or 406
 
*SCAN0
{{TAG|LHFCALC}} = .TRUE.
{{TAG|AEXX}} = 0.25
{{TAG|METAGGA}} = LIBXC
{{TAG|LIBXC1}} = MGGA_X_SCAN # or 263
{{TAG|LIBXC1}} = MGGA_C_SCAN # or 267


== Related tags and articles ==
== Related tags and articles ==
{{TAG|LIBXC2}},
{{TAG|LIBMBD_XC}},
{{TAG|LIBXC1_Pn}},
{{TAG|LIBMBD_TS_D}},
{{TAG|LIBXC2_Pn}},
{{TAG|LIBMBD_TS_SR}},
{{TAG|LTBOUNDLIBXC}},
{{TAG|LIBMBD_MBD_A}},
{{TAG|GGA}},
{{TAG|LIBMBD_MBD_BETA}},
{{TAG|METAGGA}},
{{TAG|LIBMBD_VDW_PARAMS_KIND}},
{{TAG|LHFCALC}},
{{TAG|LIBMBD_ALPHA}},
{{TAG|AEXX}},
{{TAG|LIBMBD_C6AU}},
{{TAG|ALDAX}},
{{TAG|LIBMBD_R0AU}},
{{TAG|ALDAC}},
{{TAG|LIBMBD_N_OMEGA_GRID}},
{{TAG|AGGAX}},
{{TAG|LIBMBD_K_GRID}},
{{TAG|AGGAC}},
{{TAG|LIBMBD_K_GRID_SHIFT}},
{{TAG|AMGGAX}},
{{TAG|LIBMBD_PARALLEL_MODE}},
{{TAG|AMGGAC}},
[[Tkatchenko-Scheffler_method|Tkatchenko-Scheffler method]],
[[list_of_hybrid_functionals|List of hybrid functionals]]
[[Many-body dispersion energy|Many-body dispersion energy]]


{{sc|LIBXC1|Examples|Examples that use this tag}}
{{sc|LIBMBD_METHOD|Examples|Examples that use this tag}}


== References ==
== References ==
Line 82: Line 32:


----
----
[[Category:INCAR tag]][[Category:Exchange-correlation functionals]][[Category:GGA]][[Category:meta-GGA]][[Category:Hybrid_functionals]]
[[Category:INCAR tag]][[Category:Exchange-correlation functionals]][[Category:van der Waals functionals]]

Latest revision as of 14:01, 19 March 2024

LIBMBD_METHOD = [string]
Default: LIBMBD_METHOD = mbd-rsscs (default in libMBD) 

Description: LIBMBD_METHOD selects one of the methods available in the library libMBD of many-body dispersion methods[1][2][3].


LIBMBD_METHOD can be set to a label (string) corresponding to one of the methods listed on the libMBD website (see method at the page [4]).

Mind: Note that the use of the mbd-nl method[5] is currently not possible, since the associated atomic polarizabilities and semilocal functional are currently not implemented in VASP.
Important: This feature is available from VASP.6.4.3 onwards that needs to be compiled with -DLIBMBD.

libMBD is a separate library package that has to be downloaded[2] and compiled before VASP is compiled with the corresponding precompiler options and links to the libraries.

Related tags and articles

LIBMBD_XC, LIBMBD_TS_D, LIBMBD_TS_SR, LIBMBD_MBD_A, LIBMBD_MBD_BETA, LIBMBD_VDW_PARAMS_KIND, LIBMBD_ALPHA, LIBMBD_C6AU, LIBMBD_R0AU, LIBMBD_N_OMEGA_GRID, LIBMBD_K_GRID, LIBMBD_K_GRID_SHIFT, LIBMBD_PARALLEL_MODE, Tkatchenko-Scheffler method, Many-body dispersion energy

Examples that use this tag

References