Default for LREAL | .FALSE. |
.FALSE. | projection done in reciprocal space |
.TRUE. | projection done in real space, (old, superseded by LREAL=O) |
On or O | projection done in real space, |
projection operators are re-optimized | |
Auto or A | projection done in real space, |
fully automatic optimization of projection operators | |
no user interference required |
Determines whether the projection operators are evaluated in real-space or in reciprocal space: The non local part of the pseudopotential requires the evaluation of an expression . The ``projected wavefunction character'' is defined as:
This expression can be evaluated in reciprocal or real space: In reciprocal space (second line) the number of operations scales with the size of the basis set (i.e. number of plane-waves). In real space (first line) the projection-operators are confined to spheres around each atom. Therefore the number of operations necessary to evaluate one does not increase with the system size (usually the number of grid points within the cut-off-sphere is between 500 and 2000). For VASP.3.X, the parameter IRMAX in the param.inc file determines the size of the work-arrays, and the maximum number of points allowed within the cut-off-sphere around each central atom (see also section 6.8). One of the major obstacle of the method working in real space is that the projection operators must be optimized, i.e. all high frequency components must be removed from the projection operators. If this is not done 'aliasing' can happen (i.e. the high frequency components of the projection operators are aliased to low frequency components and a random noise is introduced).
Currently vasp supports three different schemes to remove the high frequency components from the projectors. LREAL=.TRUE. is the simplest one. If LREAL=.TRUE. is selected the real space projectors which have been generated by the pseudopotential generation code are used. This requires no user interference. For LREAL=On the real space projectors are optimized by vasp using an algorithm proposed by King-Smith et al. [44]. For LREAL= Auto an new scheme [45] is used which is considerably better (resulting in more localized) projector functions than the King-Smith et al. method. To fine tune the optimization procedure the flag ROPT can be used if LREAL=Auto or LREAL=On is use.
We recommend to use the real-space projection scheme for systems containing more than 20 atoms. We also recommend to use only LREAL= Auto (for version vasp.4.4 and newer releases) and LREAL= On (for all other versions). Version 4.4 also supports the old mode LREAL= O to allow calculations that are fully compatible to vasp.4.3 (and vasp.3.2). The best performance is generally achieved with LREAL = Auto, but if performance is not that important you can also use LREAL=.TRUE. which requires generally less user interference. You can skip the rest of the paragraph, if you use only LREAL=.TRUE..
For LREAL= O and LREAL= A the projection operators are optimized by VASP on the fly (i.e. on startup). Several flags influence the optimization
For LREAL=On
PREC= Low | 700 points in the real space sphere (ROPT=0.67) |
PREC= Med | 1000 points in the real space sphere (ROPT=1.0) |
PREC= High | 1500 points in the real space sphere (ROPT=1.5) |
PREC= Low | accuracy (ROPT=0.01) |
PREC= Med | accuracy 2 (ROPT=0.002) |
PREC= High | accuracy 2 (ROPT=2E-4) |
ROPT = one_number_for_each_speciesin the INCAR file. For instance
ROPT = 0.7 1.5will set the number of real space points within the cutoff sphere for the first species to approximately 700, and that for the second species to 1500. In vasp.4.4 alternatively the ``precision'' of the operators can be specified writing i.e.
ROPT = 1E-3 1E-3In that case the real space operators will be optimized for an accuracy of approximately 1meV/atom ( ). The ``precision'' mode works both for LREAL=On and LREAL=Auto (but to maintain compatibility with older vasp version it is only selected if LREAL= Auto is specified in the INCAR file). The precision mode is generally switched on if the value for ROPT is smaller than 0.1. The ``precision'' mode and the conventional mode can be intermixed, i.e. it is possible to specify
ROPT = 0.7 1E-3in that case the number of real space points within the cutoff sphere for the first species will be approximately 700, whereas the real space projector functions for the second species are optimized for an accuracy of approximately 1 meV. We recommend to use the ``precision'' mode with a target accuracy of around eV/atom if your version supports this.
If you use the mode in which the number of grid points in the real space projection sphere is specified you have to select ROPT carefully, especially if a hard species is mixed with a soft. species. In that case the following lines in the OUTCAR file must be checked (here is the output for LREAL=On, but that one for LREAL=Auto is quite similar )
Optimization of the real space projectors maximal supplied Q-value = 12.85 optimization between [QCUT,QGAM] = [ 4.75, 9.51] = [ 6.33, 25.32] Ry Optimized for a Real-space Cutoff 2.30 Angstroem l X(QCUT) X(cont) X(QGAM) max X(q) W(q)/X(q) e(spline) 0 9.518 9.484 -.004 18.582 .11E-03 .16E-06 0 -2.149 -2.145 .001 3.059 .17E-03 .25E-06 1 8.957 8.942 .003 9.950 .14E-03 .34E-06 1 1.870 1.870 .001 1.837 .95E-03 .51E-06 2 3.874 3.866 .000 4.764 .15E-03 .68E-07The meaning of QCUT and QGAM is explained in Sec. 13.5.6. The most important information is given in the column W(q)/X(q) (respectively the column W(low)/X(q) for LREAL=Auto). The values in these columns must be as small as possible. If these values are too large increase the ROPT tag from the default value. As a rule of thumb the maximum allowed value in this column is for PREC=Med. (For PREC=Low errors might be around and for PREC=High errors should be smaller than ). If W(q)/X(q) is larger than the errors introduced by the real space projections can be substantial. In this case ROPT must be specified in the INCAR file to avoid incorrect results. If the new precision mode is used in vasp.4.4 (ROPT<0.1) the code automatically selects the real-space cutoff so that the required precision is reached.
MIND (vasp.3.2 only): Please keep in mind that the real space optimization (LREAL=On) works only correctly if you have used the makeparam utility for the creation of the param.inc file. The optimization parameters for the real space optimization are retrieved from the ENCUT and PREC tags, the FFT meshes (i.e. NGX,Y,Z) are not checked for compatibility.
A few comments for non-experts and experts: Real space optimization (LREAL=.TRUE., LREAL=On or LREAL=Auto) always results in a small (not necessarily negligible) error (the error is usually a constant energy shift for each atom). If you are interested in energy differences of a few meV use only calculations with the same setup (i.e. same ENCUT, PREC, LREAL and ROPT setting) for all calculations. For example, if you want to calculate surface energies recalculate the bulk groundstate energy with exactly the same setting you are going to use for the surface. Another possibility is to relax the surface with real space projection, and to do one final total energy calculation with LREAL=.FALSE. to get exact energies. Anyway, for LREAL=Med, the errors introduced by the real space projection are usually of the same order magnitude as those introduced by the wrap around errors. For LREAL=High errors are usually less than 1 meV. PREC=Low should be used only for high speed MD's if computer resources are really a problem.
A few notes for experts: There are three parameters for the real space optimization (see Sec. 13.5.6). First the energy-cutoff (equivalent to QCUT in Sec. 13.5.6) then a value which specifies from which energy-cutoff the projection operator should be zero (equivalent to QGAM in Sec. 13.5.6) and the maximal radial extend of the real space projection operator (equivalent to RMAX in Sec. 13.5.6). The first parameter QCUT is fixed by the energy cutoff, the second one is set to QGAM=2*QCUT for PREC= Low and PREC= Med, and to QGAM=3*QCUT for PREC= High. These setting are correct if the makeparam utility is used for creating the param.inc file. But these setting are not correct if you set NGX,Y,Z by hand in the param.inc file (or the INCAR file in vasp.4.X) There is no way (except editing main.F by hand) to influence QGAM. Finally the maximal radial extend of the projector funcations is determined by ROPT (respectively by PREC if ROPT is not specified in the INCAR file).