PREC: Difference between revisions

From VASP Wiki
No edit summary
No edit summary
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
{{TAGDEF|PREC|Low {{!}} Medium {{!}} High {{!}} Normal {{!}} Single {{!}} Accurate}}
{{TAGDEF|PREC|Normal {{!}} Single {{!}} SingleN {{!}} Accurate {{!}} Low {{!}} Medium {{!}} High}}
{{DEF|PREC|Medium|for VASP.4.X|Normal|for VASP.5.X}}
{{DEF|PREC|Medium|for VASP.4.X|Normal|since VASP.5.X}}


Description: {{TAG|PREC}} specifies the "precision"-mode.
Description: {{TAG|PREC}} specifies the "precision" mode.
----
----
We recommend using {{TAG|PREC}}=Normal or {{TAG|PREC}}=Accurate.
{{TAG|PREC}} sets default values for the energy cutoff {{TAG|ENCUT}}, the FFT grids ({{TAG|NGX}},{{TAG|NGY}},{{TAG|NGZ}}) and ({{TAG|NGXF}},{{TAG|NGYF}},{{TAG|NGZF}}), and the accuracy of the projectors in real space {{TAG|ROPT}} (used only when {{TAG|LREAL}}=.TRUE.). Details are given below in the table.
The settings {{TAG|PREC}}=Medium and {{TAG|PREC}}=High (available already in VASP.4.4)
are no longer recommended. {{TAG|PREC}}=Normal can be used for most
routine calculations, whereas {{TAG|PREC}}=Accurate reduces egg-box effects
and errors even further.  Specifically,
{{TAG|PREC}}=Accurate strictly avoids any aliasing or wrap around errors and uses an augmentation grid ({{TAG|NGXF}}×{{TAG|NGYF}}×{{TAG|NGZF}}) that is exactly twice as large as the coarser grid ({{TAG|NGX}}×{{TAG|NGY}}×{{TAG|NGZ}}) used for the representation of the pseudo orbitals. {{TAG|PREC}}=Accurate increases the memory requirements somewhat, but it should be used if very accurate forces (phonons and second derivatives) are required. The accuracy of forces can be sometimes further improved by specifying {{TAG|ADDGRID}}=.TRUE. (but user reports are somewhat contradictory, whether
this really helps).


The use of {{TAG|PREC}}=High is no longer recommended (and is only available for compatibility). Essentially {{TAG|PREC}}=High only increases the energy cutoff
We recommend using {{TAG|PREC}}=Normal or {{TAG|PREC}}=Accurate. {{TAG|PREC}}=Normal can be used for most routine calculations. {{TAG|PREC}}=Accurate leads to a denser grid ({{TAG|NGX}},{{TAG|NGY}},{{TAG|NGZ}}). Thus, it reduces egg-box effects and strictly avoids any [[Wrap-around errors|aliasing/wrap-around errors]]. {{TAG|PREC}}=Normal and {{TAG|PREC}}=Accurate use an augmentation fine grid ({{TAG|NGXF}},{{TAG|NGYF}},{{TAG|NGZF}}) that is twice larger than the grid ({{TAG|NGX}},{{TAG|NGY}},{{TAG|NGZ}}) used for the representation of the pseudo-orbitals. {{TAG|PREC}}=Accurate increases the memory requirements somewhat, but it should be used (in combination with an increased value for {{TAG|ENCUT}}) when a very good accuracy is required, e.g., for accurate forces, for phonons and stress tensor or in general when second derivatives are computed. The accuracy of forces can also be sometimes further improved by specifying {{TAG|ADDGRID}}=.TRUE., however, reports from users are somewhat contradictory about whether this really helps.
by 30 %.  The same effect can be achieved by just manually increasing {{TAG|ENCUT}}
{{NB|mind|
in the INCAR file. If, additionally, very accurate forces are required, {{TAG|PREC}}=Accurate can be used in combination with an increased energy cutoff.
*The value of a parameter set by {{TAG|PREC}} (e.g., {{TAG|ENCUT}}) can be overridden by specifying explicitly the value of that parameter in the {{FILE|INCAR}} file.
*{{TAG|PREC}}{{=}}Normal and {{TAG|PREC}}{{=}}Accurate are only available in VASP.4.5 and newer versions. The setting {{TAG|PREC}}{{=}}Single is only available as of VASP.5.1, and has been updated in VASP.6.}}
{{NB|deprecated|The old settings {{TAG|PREC}}{{=}}Medium and {{TAG|PREC}}{{=}}High are no longer recommended and are available (as well as {{TAG|PREC}}{{=}}Low) only for backward compatibility. Essentially, {{TAG|PREC}}{{=}}High only increases the energy cutoff by 30 %, which can also be achieved by just manually increasing {{TAG|ENCUT}}.}}
{{NB|important|
*Setting {{TAG|PREC}}{{=}}Accurate does not necessarily mean that the results are converged. The convergence of the results with respect to the energy cutoff {{TAG|ENCUT}} has to be checked separately.
*We strongly recommend specifying the energy cutoff {{TAG|ENCUT}} always manually in the {{FILE|INCAR}} file to ensure the same accuracy between calculations. Otherwise, the default {{TAG|ENCUT}} may differ among the different calculations (e.g., for the calculation of the cohesive energy), with the consequence that the total energies, for instance, can not be compared.
*Setting {{TAG|ENAUG}} has an effect only if {{TAG|PREC}} is set to one of the deprecated settings (Low, Medium or High); otherwise, it is ignored.}}


'''Mind''': we recommend specifying the energy cutoff ({{TAG|ENCUT}}) always manually in the {{FILE|INCAR}} file, to avoid incompatibilities between calculations.
== Default values set by {{TAG|PREC}} ==
----
 
The {{TAG|PREC}} parameter sets the defaults for four sets of parameters ({{TAG|ENCUT}}; {{TAG|NGX}}, {{TAG|NGY}}, {{TAG|NGZ}}; {{TAG|NGXF}}, {{TAG|NGYF}}, {{TAG|NGZF}}, and {{TAG|ROPT}}):
Default values set by {{TAG|PREC}} for the parameters {{TAG|ENCUT}}, ({{TAG|NGX}},{{TAG|NGY}},{{TAG|NGZ}}), ({{TAG|NGXF}},{{TAG|NGYF}},{{TAG|NGZF}}) and {{TAG|ROPT}}:


::{| cellpadding="5" cellspacing="0" border="1"
::{| cellpadding="6" cellspacing="0" border="1"
|{{TAG|PREC}} ||align="center"|{{TAG|ENCUT}} || {{TAG|NGX}},[[NGY|Y]],[[NGZ|Z]] || {{TAG|NGXF}},[[NGYF|YF]],[[NGZF|ZF]] || {{TAG|ROPT}}
|{{TAG|PREC}} ||align="center"|{{TAG|ENCUT}} ||align="center"| {{TAG|NGX}},[[NGY|Y]],[[NGZ|Z]] ||align="center"| {{TAG|NGXF}},[[NGYF|YF]],[[NGZF|ZF]] ||align="center"| {{TAG|ROPT}} ({{TAG|LREAL}}=A) ||align="center"| {{TAG|ROPT}} ({{TAG|LREAL}}=O)
|-
|-
| Normal ||align="center"|max({{TAG|ENMAX}}) || 3/2&times;G<sub>cut</sub> ||align="center"|2&times;{{TAG|NGX}} ||-5&times;10<sup>-4</sup>
| Normal ||align="center"|max({{TAG|ENMAX}}) ||align="center"| 3/2&times;<math>G_{\rm cut}</math> ||align="center"|2&times;{{TAG|NGX}} ||align="center"|-5&times;10<sup>-4</sup> ||align="center"| 1.0
|-
|-
| Single (VASP.5) ||align="center"|max({{TAG|ENMAX}}) || 3/2&times;G<sub>cut</sub> ||align="center"|{{TAG|NGX}} ||-5&times;10<sup>-4</sup>
| Single (VASP.5) ||align="center"|max({{TAG|ENMAX}}) ||align="center"| 3/2&times;<math>G_{\rm cut}</math> ||align="center"|{{TAG|NGX}} ||align="center"|-5&times;10<sup>-4</sup> ||align="center"| 1.0
|-
|-
| Single (VASP.6) ||align="center"|max({{TAG|ENMAX}}) || 2 &times;G<sub>cut</sub> ||align="center"|{{TAG|NGX}} ||-5&times;10<sup>-4</sup>
| Single (VASP.6) ||align="center"|max({{TAG|ENMAX}}) ||align="center"| 2&times;<math>G_{\rm cut}</math> ||align="center"|{{TAG|NGX}} ||align="center"|-5&times;10<sup>-4</sup> ||align="center"| 1.0
|-
|-
|SingleN (VASP.6)
| SingleN (VASP.6) ||align="center"|max({{TAG|ENMAX}}) ||align="center"| 3/2&times;<math>G_{\rm cut}</math> ||align="center"|{{TAG|NGX}} ||align="center"| -5&times;10<sup>-4</sup> ||align="center"| 1.0
|align="center"|max({{TAG|ENMAX}})
|3/2&times;G<sub>cut</sub>
|align="center"|{{TAG|NGX}}
| -5&times;10<sup>-4</sup>
|-
|-
| Accurate ||align="center"|max({{TAG|ENMAX}}) ||align="center"|2&times;G<sub>cut</sub> ||align="center"|2&times;{{TAG|NGX}}||-2.5&times;10<sup>-4</sup>
| Accurate ||align="center"|max({{TAG|ENMAX}}) ||align="center"|2&times;<math>G_{\rm cut}</math> ||align="center"|2&times;{{TAG|NGX}}||align="center"|-2.5&times;10<sup>-4</sup> ||align="center"| 1.0
|-
|-
| colspan="5" | '''old settings:'''
| colspan="6" | '''Deprecated settings:'''
|-
|-
| Low ||align="center"|max({{TAG|ENMIN}}) || 3/2&times;G<sub>cut</sub> ||align="center"|3&times;G<sub>aug</sub> ||-1&times;10<sup>-2</sup>
| Low ||align="center"|max({{TAG|ENMIN}}) ||align="center"| 3/2&times;<math>G_{\rm cut}</math> ||align="center"|3&times;<math>G_{\rm aug}</math> ||align="center"|-1&times;10<sup>-2</sup> ||align="center"| 2/3
|-
|-
| Medium ||align="center"|max({{TAG|ENMAX}}) || 3/2&times;G<sub>cut</sub> ||align="center"|4&times;G<sub>aug</sub> ||-2&times;10<sup>-3</sup>
| Medium ||align="center"|max({{TAG|ENMAX}}) ||align="center"| 3/2&times;<math>G_{\rm cut}</math> ||align="center"|4&times;<math>G_{\rm aug}</math> ||align="center"|-2&times;10<sup>-3</sup> ||align="center"| 1.0
|-
|-
| High || 1.3&times;max({{TAG|ENMAX}}) ||align="center"|2&times;G<sub>cut</sub> ||align="center"|16/3&times;G<sub>aug</sub> ||-4&times;10<sup>-4</sup>
| High || 1.3&times;max({{TAG|ENMAX}}) ||align="center"|2&times;<math>G_{\rm cut}</math> ||align="center"|16/3&times;<math>G_{\rm aug}</math> ||align="center"|-4&times;10<sup>-4</sup> ||align="center"| 1.5
|}
|}
where max({{TAG|ENMAX}}) and max({{TAG|ENMIN}}) are the maximum {{TAG|ENMAX}} and {{TAG|ENMIN}} found on the {{FILE|POTCAR}} file, and
where max({{TAG|ENMAX}}) and max({{TAG|ENMIN}}) are the maxima of {{TAG|ENMAX}} and {{TAG|ENMIN}} found in the {{FILE|POTCAR}} file, and <math>G_{\rm cut}</math> and <math>G_{\rm aug}</math> are defined by
:<math>E_{\rm cut}=\frac{\hbar^2}{2m_e}G_{\rm cut}^2 \qquad E_{\rm aug}=\frac{\hbar^2}{2m_e}G_{\rm aug}^2</math>
:<math>E_{\rm cut}=\frac{\hbar^2}{2m_e}G_{\rm cut}^2 \qquad E_{\rm aug}=\frac{\hbar^2}{2m_e}G_{\rm aug}^2</math>
with E<sub>cut</sub>={{TAG|ENCUT}} and E<sub>aug</sub>={{TAG|ENAUG}}.
with <math>E_{\rm cut}</math>={{TAG|ENCUT}} and <math>E_{\rm aug}</math>={{TAG|ENAUG}}.
 
'''Mind''': the settiLow ||align="center"|max({{TAG|ENMIN}}) || 3/2&times;G<sub>cut</sub> ||align="center"|3&times;G<sub>aug</sub> ||-1&times;10<sup>-2</sup>ngs {{TAG|PREC}}=Normal and {{TAG|PREC}}=Accurate are only available in VASP.4.5 and newer versions. The setting {{TAG|PREC}}=Single is only available as of VASP.5.1, and has been updated in VASP.6.


*Plane wave kinetic energy cutoff ({{TAG|ENCUT}}):
== Further remarks ==
:The {{TAG|PREC}}-tag determines the energy cutoff {{TAG|ENCUT}}, if {{TAG|ENCUT}} is not specified in the {{FILE|INCAR}} file. For {{TAG|PREC}}=Low, {{TAG|ENCUT}} will be set to the maximal {{TAG|ENMIN}} value found on the {{FILE|POTCAR}} file. For {{TAG|PREC}}=Medium and {{TAG|PREC}}=Accurate, {{TAG|ENCUT}} will be set to maximal {{TAG|ENMAX}} value found on the {{FILE|POTCAR}} file. Finally for {{TAG|PREC}}=High, {{TAG|ENCUT}} is set to the maximal {{TAG|ENMAX}} value on the {{FILE|POTCAR}} file plus 30%. {{TAG|PREC}}=High guarantees that the absolute energies are converged to a few meV, and it ensures that the stress tensor is converged within a few kBar. In general, an increased energy cutoff is only required for accurate evaluation of quantities related to the stress tensor (e.g. elastic properties).


*FFT grids ({{TAG|NGX}},{{TAG|NGY}},{{TAG|NGZ}},{{TAG|NGXF}},{{TAG|NGYF}},{{TAG|NGZF}}):
*With {{TAG|PREC}}=Normal, Single, and Accurate the grid ({{TAG|NGXF}},{{TAG|NGYF}},{{TAG|NGZF}}) representing the augmentation charges, charge densities and potentials has either the same size ({{TAG|PREC}}=Single) or the double size ({{TAG|PREC}}=Normal or Accurate) as the grid ({{TAG|NGX}},{{TAG|NGY}},{{TAG|NGZ}}). With the deprecated (and no longer recommended) settings for {{TAG|PREC}} (Low, Medium and High), the grid ({{TAG|NGXF}},{{TAG|NGYF}},{{TAG|NGZF}}) is determined by some heuristic formula from {{TAG|ENAUG}}.
:For {{TAG|PREC}}=High and {{TAG|PREC}}=Accurate, wrap around errors are avoided, all ''G''-vectors that are twice as large as the vectors included in the basis set are taken into account in the FFT's. For {{TAG|PREC}}=Low, {{TAG|PREC}}=Medium or {{TAG|PREC}}=Normal, the FFT grids are reduced, and 3/4 of the required values are used. Usually {{TAG|PREC}}=Medium and {{TAG|PREC}}=Normal, are sufficiently accurate with errors less than 1 meV/atom.


:In addition, the {{TAG|PREC}} tag determines the spacing for the grids representing the augmentation charges, charge densities and potentials ({{TAG|NGXF}}, {{TAG|NGYF}}, {{TAG|NGZF}}). For {{TAG|PREC}}=Accurate and {{TAG|PREC}}=Normal, the support grid contains twice as many points in each direction as the grids for the orbitals ({{TAG|NGXF}}=2&times;{{TAG|NGX}}, {{TAG|NGYF}}=2&times;{{TAG|NGY}}, {{TAG|NGZF}}=2&times;{{TAG|NGZ}}). In all other cases, {{TAG|NGXF}}, {{TAG|NGYF}}, and {{TAG|NGZF}} are determined by some heuristic formula from {{TAG|ENAUG}} (these settings should be avoided).
*{{TAG|PREC}}=Single uses the same grid ({{TAG|NGX}},{{TAG|NGY}},{{TAG|NGZ}}) as {{TAG|PREC}}=Normal in VASP.5, but the same grid as {{TAG|PREC}}=Accurate in VASP.6. However, the double grid technique is not used, i.e., ({{TAG|NGXF}},{{TAG|NGYF}},{{TAG|NGZF}})=({{TAG|NGX}},{{TAG|NGY}},{{TAG|NGZ}}). This is convenient if one needs to cut down on storage demands or if one wants to reduce the size of the files {{FILE|CHG}} and {{FILE|CHGCAR}}. Furthermore, {{TAG|PREC}}=Single avoids high-frequency oscillations caused by the double-grid technique and the resulting Fourier interpolation. It is often expedient for scanning tunneling simulations or other calculations where high-frequency wiggles of the charge density in the vacuum region are undesirable.


:{{TAG|PREC}}=Single uses the same FFT grids as  {{TAG|PREC}}=Normal in VASP.5 and the same FFT grids as {{TAG|PREC}}=Accurate in  VASP.6. The double grid technique is not used. This is convenient, if one needs to cut down on storage demands, or if one wants to reduce the size of the files {{FILE|CHG}} and {{FILE|CHGCAR}}. Furthermore, {{TAG|PREC}}=Single avoids high-frequency oscillations caused by the double-grid technique and the resulting Fourier interpolation. It is often expedient for scanning tunneling simulations or other calculations where high-frequency wiggles of the charge density in the vacuum region are undesirable.
*{{TAG|PREC}}=Medium and {{TAG|PREC}}=Normal should usually be sufficiently accurate and lead to errors of less than 1 meV/atom.


*Real space projectors ({{TAG|ROPT}}):
*{{TAG|PREC}}=High should guarantee that the absolute energies are converged to a few meV and the stress tensor converged within a few kBar.
 
::{|cellpadding="5" cellspacing="0" border="1"
|colspan="2" align="center"|{{TAG|LREAL}}=O||||colspan="2" align="center"|{{TAG|LREAL}}=A
|-
|{{TAG|PREC}}||{{TAG|ROPT}}||||{{TAG|PREC}}||{{TAG|ROPT}}
|-
| Low || 0.67 || || Low || -1&times;10<sup>-2</sup>
|-
| Med || 1.0|| || Med || -2&times;10<sup>-3</sup>
|-
| Normal || 1.0 || || Normal || -5&times;10<sup>-4</sup>
|-
| Single || 1.0 || || Single || -5&times;10<sup>-4</sup>
|-
| Accurate || 1.0 || || Accurate || -2.5&times;10<sup>-4</sup>
|-
| High || 1.5 || || High || -4&times;10<sup>-4</sup>
|}


== Related tags and articles ==
== Related tags and articles ==
Line 90: Line 64:
{{TAG|ENCUT}},
{{TAG|ENCUT}},
{{TAG|ENAUG}},
{{TAG|ENAUG}},
{{TAG|ENMIN}},
{{TAG|ENMAX}},
{{TAG|ENMAX}},
{{TAG|ROPT}},
{{TAG|LREAL}},
{{TAG|ADDGRID}},
{{TAG|PRECFOCK}}
{{TAG|PRECFOCK}}


{{sc|PREC|Examples|Examples that use this tag}}  
{{sc|PREC|Examples|Examples that use this tag}}
----


[[Category:INCAR tag]][[Category:Electronic minimization]][[Category:Memory]]
[[Category:INCAR tag]][[Category:Projector-augmented-wave method]][[Category:Memory]]

Latest revision as of 11:57, 17 October 2024

PREC = Normal | Single | SingleN | Accurate | Low | Medium | High 

Default: PREC = Medium for VASP.4.X
= Normal since VASP.5.X

Description: PREC specifies the "precision" mode.


PREC sets default values for the energy cutoff ENCUT, the FFT grids (NGX,NGY,NGZ) and (NGXF,NGYF,NGZF), and the accuracy of the projectors in real space ROPT (used only when LREAL=.TRUE.). Details are given below in the table.

We recommend using PREC=Normal or PREC=Accurate. PREC=Normal can be used for most routine calculations. PREC=Accurate leads to a denser grid (NGX,NGY,NGZ). Thus, it reduces egg-box effects and strictly avoids any aliasing/wrap-around errors. PREC=Normal and PREC=Accurate use an augmentation fine grid (NGXF,NGYF,NGZF) that is twice larger than the grid (NGX,NGY,NGZ) used for the representation of the pseudo-orbitals. PREC=Accurate increases the memory requirements somewhat, but it should be used (in combination with an increased value for ENCUT) when a very good accuracy is required, e.g., for accurate forces, for phonons and stress tensor or in general when second derivatives are computed. The accuracy of forces can also be sometimes further improved by specifying ADDGRID=.TRUE., however, reports from users are somewhat contradictory about whether this really helps.

Mind:
  • The value of a parameter set by PREC (e.g., ENCUT) can be overridden by specifying explicitly the value of that parameter in the INCAR file.
  • PREC=Normal and PREC=Accurate are only available in VASP.4.5 and newer versions. The setting PREC=Single is only available as of VASP.5.1, and has been updated in VASP.6.
Deprecated: The old settings PREC=Medium and PREC=High are no longer recommended and are available (as well as PREC=Low) only for backward compatibility. Essentially, PREC=High only increases the energy cutoff by 30 %, which can also be achieved by just manually increasing ENCUT.
Important:
  • Setting PREC=Accurate does not necessarily mean that the results are converged. The convergence of the results with respect to the energy cutoff ENCUT has to be checked separately.
  • We strongly recommend specifying the energy cutoff ENCUT always manually in the INCAR file to ensure the same accuracy between calculations. Otherwise, the default ENCUT may differ among the different calculations (e.g., for the calculation of the cohesive energy), with the consequence that the total energies, for instance, can not be compared.
  • Setting ENAUG has an effect only if PREC is set to one of the deprecated settings (Low, Medium or High); otherwise, it is ignored.

Default values set by PREC

Default values set by PREC for the parameters ENCUT, (NGX,NGY,NGZ), (NGXF,NGYF,NGZF) and ROPT:

PREC ENCUT NGX,Y,Z NGXF,YF,ZF ROPT (LREAL=A) ROPT (LREAL=O)
Normal max(ENMAX) 3/2× NGX -5×10-4 1.0
Single (VASP.5) max(ENMAX) 3/2× NGX -5×10-4 1.0
Single (VASP.6) max(ENMAX) NGX -5×10-4 1.0
SingleN (VASP.6) max(ENMAX) 3/2× NGX -5×10-4 1.0
Accurate max(ENMAX) NGX -2.5×10-4 1.0
 Deprecated settings:
Low max(ENMIN) 3/2× -1×10-2 2/3
Medium max(ENMAX) 3/2× -2×10-3 1.0
High 1.3×max(ENMAX) 16/3× -4×10-4 1.5

where max(ENMAX) and max(ENMIN) are the maxima of ENMAX and ENMIN found in the POTCAR file, and and are defined by

with =ENCUT and =ENAUG.

Further remarks

  • With PREC=Normal, Single, and Accurate the grid (NGXF,NGYF,NGZF) representing the augmentation charges, charge densities and potentials has either the same size (PREC=Single) or the double size (PREC=Normal or Accurate) as the grid (NGX,NGY,NGZ). With the deprecated (and no longer recommended) settings for PREC (Low, Medium and High), the grid (NGXF,NGYF,NGZF) is determined by some heuristic formula from ENAUG.
  • PREC=Single uses the same grid (NGX,NGY,NGZ) as PREC=Normal in VASP.5, but the same grid as PREC=Accurate in VASP.6. However, the double grid technique is not used, i.e., (NGXF,NGYF,NGZF)=(NGX,NGY,NGZ). This is convenient if one needs to cut down on storage demands or if one wants to reduce the size of the files CHG and CHGCAR. Furthermore, PREC=Single avoids high-frequency oscillations caused by the double-grid technique and the resulting Fourier interpolation. It is often expedient for scanning tunneling simulations or other calculations where high-frequency wiggles of the charge density in the vacuum region are undesirable.
  • PREC=Medium and PREC=Normal should usually be sufficiently accurate and lead to errors of less than 1 meV/atom.
  • PREC=High should guarantee that the absolute energies are converged to a few meV and the stress tensor converged within a few kBar.

Related tags and articles

NGX, NGY, NGZ, NGXF, NGYF, NGZF, ENCUT, ENAUG, ENMIN, ENMAX, ROPT, LREAL, ADDGRID, PRECFOCK

Examples that use this tag