Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
the_density_functional_program [2023/05/22 15:03] – [The density functional program] hesselmannthe_density_functional_program [2024/01/27 11:33] (current) – [Empirical damped dispersion correction] hesselmann
Line 307: Line 307:
 |                           | ''NEESE_INT_ACC''                         | 4.67          | Neese parameter for number of radial points for Neese type grid when ''NEESE_INDEX'' < 3  |  | ✔ | |                           | ''NEESE_INT_ACC''                         | 4.67          | Neese parameter for number of radial points for Neese type grid when ''NEESE_INDEX'' < 3  |  | ✔ |
 | other                     | ''WEIGHT_CUT|WCUT''                    | 1d-20         | threshold value to discard grid points with small integration weights | ✔ | ✔ |  | other                     | ''WEIGHT_CUT|WCUT''                    | 1d-20         | threshold value to discard grid points with small integration weights | ✔ | ✔ | 
 +|                           | ''ORIENT''                             | 2             | orientation of atomic grids | ✔ | |  
  
  
Line 469: Line 470:
  
 Grid points very close to the nucleus can have very small grid weights which can drop below machine precsion (~10d-16) when the radial grid is very large. These can be discarded with the option ''WEIGHT_CUT''=//thr//, i.e., grid points with weights smaller than //thr// will then not be used in the numerical integration anymore. While this can make the integration a little bit more efficient, a truncation of the grid with this option can prevent to achieve high accuracies in the numerical integration below, e.g., micro-hartree accuracies for energies. Therefore by default ''WEIGHT_CUT'' is set to a very small number that is well below machine precision (''WEIGHT_CUT''=1d-20) so that effectively all grid points close to the nucleus are taken into account for the integration.  Grid points very close to the nucleus can have very small grid weights which can drop below machine precsion (~10d-16) when the radial grid is very large. These can be discarded with the option ''WEIGHT_CUT''=//thr//, i.e., grid points with weights smaller than //thr// will then not be used in the numerical integration anymore. While this can make the integration a little bit more efficient, a truncation of the grid with this option can prevent to achieve high accuracies in the numerical integration below, e.g., micro-hartree accuracies for energies. Therefore by default ''WEIGHT_CUT'' is set to a very small number that is well below machine precision (''WEIGHT_CUT''=1d-20) so that effectively all grid points close to the nucleus are taken into account for the integration. 
-==== Grid caching (GRIDSAVE, NOGRIDSAVE) ==== 
- 
-''NOGRIDSAVE'' 
- 
-disables the disk caching of the grid, i.e, forces the recalculation of the grid each time it is needed. 
- 
-''GRIDSAVE'' 
- 
-forces the use of a grid cache where possible. 
  
 ==== Grid symmetry (GRIDSYM,NOGRIDSYM) ==== ==== Grid symmetry (GRIDSYM,NOGRIDSYM) ====
Line 495: Line 487:
 controls printing of the grid, which by default is not done. At present, the only possible value for //key// is ''GRID'', and //value// should be specified as an integer. ''GRID=0'' causes the total number of integration points to be evaluated and reported; ''GRID=1'' additionally shows the number of points on each atom; ''GRID=2'' causes the complete set of grid points and weights to be printed. controls printing of the grid, which by default is not done. At present, the only possible value for //key// is ''GRID'', and //value// should be specified as an integer. ''GRID=0'' causes the total number of integration points to be evaluated and reported; ''GRID=1'' additionally shows the number of points on each atom; ''GRID=2'' causes the complete set of grid points and weights to be printed.
  
 +==== Orientation of atomic grids (ORIENT) ====
 +
 +The orientation of the atomic grids can be controled with the option ''ORIENT'' that can take the values 0, 1 and 2. ''ORIENT''=0 means that the grids are not oriented with respect to the atomic coordinates. This, however, can lead to non-invariant KS energies with respect to rotations of the molecule which is particularly significant for small grids. The setting ''ORIENT''=1 uses the method of B. G. Johnson //et al.// [[https://doi.org/10.1016/0009-2614(94)00199-5|Chem. Phys. Lett.]] **220**, 377 (1994) which constructs rotationally invariant DFT grids. The method of Johnson //et al.// uses, however, the whole molecule to determine the orientation on each atom which might not be ideal for very large molecules or molecular clusters in various applications (determination of conformer energy differences, potential energy surfaces, or geometry optimisations). This can be resolved by the setting ''ORIENT''=2 which emphasises the local environment in the orientation of the atomic grids. This is the current default in Molpro (version 2023.1 and higher).
 ===== Adaptive Molpro Grid (AMG) ==== ===== Adaptive Molpro Grid (AMG) ====
 By default Molpro generates a quadrature grid which prunes the angular grid using an adaptive scheme which takes the molecular environment into account. Several pruning methods and functions can be set. The pruning method used can be controled via the option By default Molpro generates a quadrature grid which prunes the angular grid using an adaptive scheme which takes the molecular environment into account. Several pruning methods and functions can be set. The pruning method used can be controled via the option
Line 509: Line 504:
  
 A detailed description of the AMG method can be found in [[https://doi.org/10.1063/5.0119622|J. Chem. Phys.]] **157**, 234106 (2022) which also compares the accuracy yielded by the AMG grids to a range of other fixed grid methods for thermochemical properties. A detailed description of the AMG method can be found in [[https://doi.org/10.1063/5.0119622|J. Chem. Phys.]] **157**, 234106 (2022) which also compares the accuracy yielded by the AMG grids to a range of other fixed grid methods for thermochemical properties.
 +
 +**Important note for calculations of open-shell atoms:**
 +The adaptive grid method can not properly set the angular grids for open-shell atoms, because the pruning function is spherically symmetric and so very small angular grids are assigned for each radial grid point. This, however, is not sufficient for describing the spin orbitals properly on the grid. Therefore it is necessary to explicitly change the grid settings for such cases in the input file, using either
 +
 +<code>
 + {grid,...; lmin,31,31,31,31}
 +</code>
 +
 +which raises the lowest possible angular momenta to $L=31$ (which seems sufficient for, e.g., triplet carbon) or by using a fixed grid, e.g.:
 +
 +<code>
 + {grid,...,anglevel=4}
 +</code>
 +
 +with ''anglevel=4'' using a medium sized grid, see section [[the density functional program#Angular integration grid (ANGULAR)|Angular integration grid]] for details.
 +
 +
 +
 +
  
 ===== Fixed standard grids =====  ===== Fixed standard grids ===== 
Line 1012: Line 1026:
 </content> </content>
 </code> </code>
 +
 +
 +==== Note on Minnesota Density Functionals ====
 +It has been observed by Mardirossian and Head-Gordon that several density functionals from the Minnesota group, including M06, M11, M06-L, M06-HF and M11-L, exhibit a very slow convergence of intermolecular interaction energies with respect to the basis set, see [[https://pubs.acs.org/doi/10.1021/ct400660j|JCTC 9 (2013) 4453]]. Apparently, this problem can not be cured by larger integration grids and originates from a contribution to the exchange enhancement factor whose shape can strongly depend on the chosen basis set. Based on these observations it is recommended to use basis sets which were originally employed to develop these functionals.
 +
 +==== Note on MK00 and MK00B functionals ===
 +The MK00 and MK00B functionals (termed MGGA_X_MK00 and MGGA_X_MK00B in LibXC) [[https://doi.org/10.1063/1.481298|J. Chem. Phys. 112, 7002–7007 (2000)]] should better not be used in general calculations with Molpro due to the problem that the denominators $\tau-\upsilon/4$ in the functional can be zero or even turn negative, producing unphysical results.
 +
 +
 +
 +
 +
 +
 +
 ==== Implementing new hybrid-functionals ==== ==== Implementing new hybrid-functionals ====
  
Line 1351: Line 1379:
  
 Gradient contributions from the D3 and D4 dispersion correction are automatically computed in DFT geometry optimisations. Gradient contributions from the D3 and D4 dispersion correction are automatically computed in DFT geometry optimisations.
 +
 +Note that not all functionals implemented in Molpro (and Libxc) are known to the D4 program (and vice versa). And in some cases the functionals supported by D4 might have a different identifier than used in Molpro. To see which functionals can be used with D4, see the documentation at [[https://github.com/dftd4/dftd4]]. Most functionals supported by D4 can also be given by their Libxc names, for example
 +<code> ks,gga_x_b88,gga_c_p86,disp=d4 </code>
 +using the ''B88'' exchange and ''P86'' correlation functional names as defined in the Libxc library. For compound functionals like B+P86 it is important to //insert the exchange functional first and the correlation functional second//!
 +
 +
  
 References:\\ References:\\