Energy cutoff and FFT meshes
The plane-wave expansion of the orbitals and the associated mesh to perform the FFTs have a very large impact on the accuracy of a calculation. They are determined by the energy cutoff ENCUT, which is one of the most important parameters for the accuracy. ENCUT needs to be chosen large enough to ensure that the errors due to the basis-set truncation and finite mesh size are below the required accuracy. Some indications on how to choose ENCUT or other related tags like PREC are provided below.
How to
Energy cutoff
The energy cutoff ENCUT should be chosen according to the pseudopotential (POTCAR) and required accuracy. The default value for ENCUT is the largest among the ENMAX values found in the POTCAR file. Values smaller than the default should never be used, since they may possibly lead to large errors. This default minimal value should usually result in an error in the cohesive energy which is less than 10 meV.
| Mind: The recommended and usual procedure for choosing ENCUT is to perform a series of calculations with different ENCUT values (larger than the default one) and to monitor the results for the property of interest. |
Regarding the convergence of the total energy with respect to ENCUT, the distinction between the total energy and the total energy difference (e.g., between different geometries during a structure relaxation or of two polymorphs) should be made. Usually, the total energy difference converges much faster than the total energies. This is especially true if both geometries are rather similar (e.g., structure relaxation), and in this case the errors due to the finite energy cutoff should to some extent cancel each other when calculating the energies difference. However, if two configurations differ strongly from each other, e.g. for the calculation of the cohesive energy (bulk versus atom), the convergence of the energies difference with respect to ENCUT may be quite slow.
Important:
|
FFT mesh
Coarse mesh
The size of the coarse FFT mesh (NGX,NGY,NGZ) is determined by ENCUT and PREC. NGX, NGY and NGZ can also be set manually.
In order to avoid Wrap-around errors the FFT mesh should contain all wave vectors up to [math]\displaystyle{ 2G_{\rm cut} }[/math], where [math]\displaystyle{ G_{\rm cut} }[/math] is defined by
- [math]\displaystyle{ E_{\rm cut}=\frac{\hbar^2}{2m_e}G_{\rm cut}^2 }[/math]
with [math]\displaystyle{ E_{\rm cut} }[/math]=ENCUT. Nevertheless, it is not always possible and necessary to use such a large FFT mesh. Usually, only 'high quality' calculations (as defined in Technical errors) require a mesh that avoids any wrap-around error. Such calculations can be done with PREC=Accurate.
For most calculations, and in particular with standard pseudopotentials with their default cutoff energies, it is sufficient to set NGX, NGY and NGZ to [math]\displaystyle{ 3/4 }[/math] of the required values to avoid any wrap-around errors, i.e., to include only the wave vectors up to [math]\displaystyle{ (3/2)G_{\rm cut} }[/math]. This is the case when PREC=Normal, which is the default.
If NGX, NGY and NGZ are set manually to values that may lead to sizeable wrap-around errors, then a warning will be printed in OUTCAR (search for the string 'wrap').
A hint that the wrap around errors may be too large is given by the forces. If there is a considerable drift in the forces, the FFT mesh should be increased. Search for the string 'total drift' in the OUTCAR file that is located beneath the line TOTAL-FORCE:
total drift: -0.002730 0.010480 0.038560
The drift should definitely not exceed the magnitude of the forces, in general it should be smaller than the size of the forces you are interested in (usually 0.1 eV/Å).
Fine mesh
For the representation of the augmentation charges a second finer FFT mesh (NGXF,NGYF,NGZF) is used. With PREC=Normal and Accurate, this fine grid has a size (NGXF,NGYF,NGZF)=[math]\displaystyle{ 2\times }[/math](NGX,NGY,NGZ), twice larger than the coarse grid. NGX, NGY and NGZ can also be set manually.
This denser mesh is used only in some parts of the code, such that the increase in the computational time should be only moderate.
The drift in the forces, for instance, may also be reduced by increasing the number of points of the fine mesh.
Note that the ENAUG tag can also be used to set the size of the fine mesh, however this tag is deprecated and should not be used anymore. Furthermore, it is active only with the deprecated settings PREC=Low, Medium or High, otherwise it is ignored.
Support grid
When ADDGRID=.TRUE., an additional 'support' grid is used for the evaluation of the augmentation charges. This grid has a size of [math]\displaystyle{ 2\times }[/math](NGXF,NGYF,NGZF), i.e., it has twice more points that the 'fine' grid along each lattice vector. The support grid often helps to reduce the noise in the forces, however as explained in more detail at ADDGRID it should be used with caution.
Related tags and articles
ENCUT, PREC, ADDGRID, ENAUG, NGX, NGY, NGZ, NGXF, NGYF, NGZF, Wrap-around errors