Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
basis_set_extrapolation [2022/08/05 19:36] – [Basis set incompleteness error correction using a DFT model of short-ranged electron interactions] hesselmann | basis_set_extrapolation [2024/01/24 12:22] (current) – toulouse | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Basis set extrapolation ====== | ||
+ | |||
+ | Basis set extrapolation can be carried out for correlation consistent basis sets using | ||
+ | |||
+ | '' | ||
+ | |||
+ | where basislist is a list of at least two basis sets separated by colons, e.g. AVTZ: | ||
+ | |||
+ | The simplest way to perform extraplations for standard methods like MP2 or CCSD(T) is to use, e.g. | ||
+ | |||
+ | < | ||
+ | ***,H2O | ||
+ | memory,32,m | ||
+ | gthresh, | ||
+ | |||
+ | r = | ||
+ | geometry={O; | ||
+ | H1,O,r; | ||
+ | H2, | ||
+ | |||
+ | basis=avtz | ||
+ | hf | ||
+ | ccsd(t) | ||
+ | extrapolate, | ||
+ | |||
+ | table, | ||
+ | head, | ||
+ | </ | ||
+ | This will perform the first calculation with AVTZ basis, and then compute the estimated basis set limit using the AVQZ and AV5Z basis sets. The correlation energy obtained in the calculation that is performed immediately before the extrapolate command will be extrapolated (in this case the CCSD(T) energy), and the necessary sequence of calculations [here HF;CCSD(T)] will be automatically carried out. | ||
+ | |||
+ | The resulting energies are returned in variables ENERGR (reference energies), ENERGY (total energies), and ENERGD (Davidson corrected energy if available); the corresponding basis sets are returned in variable BASISSETS. The results can be printed, e.g., in a table as shown above, or used otherwise. The above input produces the table | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | The extrapolated total energy is also returned in variable ECBS (ECBSD for Davidson corrected energy if available). | ||
+ | |||
+ | In order to extrapolate the HF energy as well (using exponential extrapolation), | ||
+ | |||
+ | '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | Rather than using the default procedure as above, one can also specify a procedure used to carry out the energy calculation, | ||
+ | |||
+ | < | ||
+ | extrapolate, | ||
+ | |||
+ | procedure runccsd | ||
+ | hf | ||
+ | ccsd(t) | ||
+ | endproc | ||
+ | </ | ||
+ | Alternatively, | ||
+ | |||
+ | ===== Options ===== | ||
+ | |||
+ | The possible options and extrapolation methods are: | ||
+ | |||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | |||
+ | ===== Extrapolation functionals ===== | ||
+ | |||
+ | The extrapolation functional is chosen by a keyword with the '' | ||
+ | |||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | |||
+ | The following example shows various possibilities for extrapolation: | ||
+ | |||
+ | <code - examples/ | ||
+ | ***,h2o | ||
+ | |||
+ | gthresh, | ||
+ | basis=avtz | ||
+ | |||
+ | r = | ||
+ | geometry={!nosym | ||
+ | O; | ||
+ | H1,O,r; | ||
+ | H2, | ||
+ | |||
+ | hf | ||
+ | {ccsd(t)} | ||
+ | text, | ||
+ | extrapolate, | ||
+ | |||
+ | ehf=energr(1: | ||
+ | etot=energy(1: | ||
+ | |||
+ | text, | ||
+ | extrapolate, | ||
+ | |||
+ | text, | ||
+ | extrapolate, | ||
+ | |||
+ | text, | ||
+ | extrapolate, | ||
+ | |||
+ | text, | ||
+ | extrapolate, | ||
+ | </ | ||
+ | |||
+ | The second example shows extrapolations of MRCI energies. In this case both the MRCI and the MRCI+Q energies are extrapolated. | ||
+ | |||
+ | <code - examples/ | ||
+ | ***,h2o | ||
+ | |||
+ | gthresh, | ||
+ | basis=avtz | ||
+ | |||
+ | r = | ||
+ | geometry={ | ||
+ | O; | ||
+ | H1,O,r; | ||
+ | H2, | ||
+ | |||
+ | hf | ||
+ | multi | ||
+ | mrci | ||
+ | text, | ||
+ | text,The Davidson corrected energy is also extraplated | ||
+ | extrapolate, | ||
+ | |||
+ | emc=energr | ||
+ | ecorr_mrci=energy-emc | ||
+ | ecorr_mrciq=energd-emc | ||
+ | |||
+ | text, | ||
+ | text,The Davidson corrected energy is also extraplated | ||
+ | extrapolate, | ||
+ | </ | ||
+ | |||
+ | ===== Geometry optimization using extrapolated energies ===== | ||
+ | |||
+ | Geometry optimizations are possible by using numerical gradients obtained from extrapolated energies. Analytical energy gradients cannot be used. | ||
+ | |||
+ | The following possibilities exist: | ||
+ | |||
+ | 1.) If '' | ||
+ | |||
+ | Examples: | ||
+ | |||
+ | Extrapolating the energy for the last command: | ||
+ | |||
+ | <code - examples/ | ||
+ | geometry={o; | ||
+ | theta=102 | ||
+ | r=0.96 ang | ||
+ | basis=vtz | ||
+ | |||
+ | hf | ||
+ | ccsd(t) | ||
+ | extrapolate, | ||
+ | |||
+ | optg | ||
+ | </ | ||
+ | |||
+ | Extrapolating the energy computed in a procedure: | ||
+ | |||
+ | <code - examples/ | ||
+ | geometry={o; | ||
+ | theta=102 | ||
+ | r=0.96 ang | ||
+ | |||
+ | proc ccsdt | ||
+ | hf | ||
+ | ccsd(t) | ||
+ | endproc | ||
+ | |||
+ | extrapolate, | ||
+ | |||
+ | optg | ||
+ | </ | ||
+ | |||
+ | Note that this is not possible if '' | ||
+ | |||
+ | 2.) Using a procedure for the extrapolation: | ||
+ | |||
+ | By default, variable '' | ||
+ | |||
+ | <code - examples/ | ||
+ | geometry={o; | ||
+ | theta=102 | ||
+ | r=0.96 ang | ||
+ | basis=vtz | ||
+ | |||
+ | proc cbs34 | ||
+ | hf | ||
+ | ccsd(t) | ||
+ | extrapolate, | ||
+ | endproc | ||
+ | |||
+ | optg, | ||
+ | </ | ||
+ | |||
+ | <code - examples/ | ||
+ | geometry={o; | ||
+ | theta=102 | ||
+ | r=0.96 ang | ||
+ | |||
+ | proc cbs34 | ||
+ | basis=vtz | ||
+ | hf | ||
+ | ccsd(t) | ||
+ | eref(1)=energr | ||
+ | ecc(1)=energy | ||
+ | |||
+ | basis=vqz | ||
+ | hf | ||
+ | ccsd(t) | ||
+ | eref(2)=energr | ||
+ | ecc(2)=energy | ||
+ | extrapolate, | ||
+ | endproc | ||
+ | |||
+ | optg, | ||
+ | </ | ||
+ | |||
+ | ===== Harmonic vibrational frequencies using extrapolated energies ===== | ||
+ | |||
+ | This is possible by defining the extrapolation in a procedure: | ||
+ | |||
+ | <code - examples/ | ||
+ | geometry={o; | ||
+ | theta=102 | ||
+ | r=0.96 ang | ||
+ | basis=vtz | ||
+ | |||
+ | proc cbs34 | ||
+ | hf | ||
+ | ccsd(t) | ||
+ | extrapolate, | ||
+ | endproc | ||
+ | |||
+ | optg, | ||
+ | freq, | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== Basis set incompleteness error correction using a DFT model of short-ranged electron interactions ===== | ||
+ | |||
+ | As an alternative to basis set extrapolations or using F12 correlation methods, the BSIE (basis set incompleteness error) to electron correlation energies can also be corrected by using a density based model by Giner //et al.//, see: | ||
+ | |||
+ | |||
+ | $[1]$ E. Giner, B. Pradines, A. Ferté, R. Assaraf, A. Savin, and J. Toulouse, //Curing basis-set convergence of wave-function theory using density-functional theory: A systematically improvable approach//, [[https:// | ||
+ | $[2]$ P.-F. Loos, B. Pradines, A. Scemama, J. Toulouse, and E. Giner, //A density-based basis-set correction for wave function theory//, [[https:// | ||
+ | $[3]$ E. Giner, A. Scemama, P.-F. Loos, and J. Toulouse, //A basis-set error correction based on density-functional theory for strongly correlated molecular systems//, [[https:// | ||
+ | |||
+ | This basis-set correction relies on a mapping between wave-function calculations in a finite basis set and range-separated DFT (RSDFT) through the definition of an effective non-divergent interaction corresponding to the electron–electron Coulomb interaction projected in the finite basis set. This enables the use of RSDFT-type complementary correlation density functionals to recover the dominant part of the short-range correlation effects missing in this finite basis set. | ||
+ | |||
+ | For example, to compute the extrapolated MP2 energy with the DFT correction the following input can be used for Molpro | ||
+ | < | ||
+ | !water molecule | ||
+ | r=0.9575 ANG | ||
+ | theta=104.51 | ||
+ | geometry={O; | ||
+ | |||
+ | !small basis set with diffuse functions | ||
+ | basis=avdz | ||
+ | |||
+ | !hf calculation | ||
+ | hf | ||
+ | eref=energy !save reference energy | ||
+ | |||
+ | !mp2 calculation for this small basis set | ||
+ | mp2 | ||
+ | ecorr=energy-eref !save mp2 correlation energy | ||
+ | |||
+ | !compute DFT correction | ||
+ | bascorr, | ||
+ | |||
+ | !add correction to total energy (DFT correction stored in ecmd variable | ||
+ | etot=eref+ecorr+ecmd | ||
+ | </ | ||
+ | |||
+ | Note that the DFT correction may be used in conjunction with any wave function correlation method which suffers from the wrong description of the interelectronic cusp with finite basis sets, so in the above example the MP2 method could be replaced with any other electron correlation method available in Molpro. | ||
+ | |||
+ | The reference energy term is not corrected for the BSIE in the example above. One may do so by using either the basis set extrapolation | ||
+ | approach described in this section: | ||
+ | |||
+ | < | ||
+ | hf | ||
+ | extrapolate, | ||
+ | eref=energr(4) !the last element in the array (first 3 elements are the avdz/ | ||
+ | </ | ||
+ | |||
+ | or by adding the CABS singles correction to the HF energy computed in the small basis set | ||
+ | |||
+ | < | ||
+ | hf | ||
+ | eref0=energy | ||
+ | df-mp2-f12, | ||
+ | eref=eref0+ef12_singles | ||
+ | </ | ||
+ | |||
+ | see also the corresponding subsection in [[Explicitly correlated methods# | ||
+ | |||
+ | In general the density based BSIE correction can be called as | ||
+ | |||
+ | < | ||
+ | bascorr,< | ||
+ | </ | ||
+ | |||
+ | with the following options | ||
+ | |||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | * **'' | ||
+ | |||
+ | Since the calculation of the BSIE correction requires a numerical integration on a quadrature grid, the grid setting described | ||
+ | [[The density functional program# | ||
+ | however, the default settings for DFT integrations should be adequate. | ||
+ | |||
+ | The density-based BSIE correction involves the calculation of a 4-indexed quantity on the quadrature grid. For larger molecules this step can therefore become very expensive and it is strongly advised to use the corresponding density fitting implementation of the method which can drastically reduce the computation time. The DF implemention currently can not generate the fitting basis sets automatically, | ||
+ | |||
+ | < | ||
+ | basis={ | ||
+ | set, | ||
+ | set,jkfit; default, | ||
+ | set,mp2fit; default, | ||
+ | } | ||
+ | |||
+ | df-hf, | ||
+ | {cfit, | ||
+ | df-bascorr | ||
+ | </ | ||
+ | |||
+ | where the MP2Fit fitting basis set is used for the '' | ||
+ | |||
+ | By default the PBE correlation functional '' | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||