WIEN2k-FAQ: How to set a good RKmax value?
©2001 by P. Blaha, K. Schwarz and J. Luitz
Back to:
RKmax stands for the product of the smallest atomic sphere radius
RMT times the largest K-vector Kmax (of the plane wave
expansion of the
wave function). It thus determines the size of the basis set (number of PWs),
i.e. the accuracy, but also the amount of necessary computer time. Clearly,
larger values lead to more accurate calculations, but there is a limit due to
"approximate numerical linear dependency" of the basis set, which is usually
around RKmax=9-11.
Note, that the basis set scales with RKmax3 !!! This means that an
increase of RKmax by only 10 % increases the basis set by about 30% and the
computing time by about a factor of 2 !!!! Thus a "large-scale" calculation will run for
two weeks instead of one ......
Proper RKmax values depend on:
- the desired accuracy for a specific property
(e.g. geometry optimization of internal parameters does not need such high precision
as lattice parameters accurate to 3 digits).
- the available computer power (both
cpu-time AND memory).
- The specific atom with the smallest RMT.
- The size of the spheres. Typically the same atom converges a bit faster with
RKmax with a smaller sphere.
The init_lapw script provides a switch -prec 0-3, which will set
automatically proper RKmax (and other parameters) according to your
desired precision and it is highly recommended to follow these suggestions.
The following rough guideline applies for low-medium convergence (provided you have used the new
setrmt_lapw script):
RKmax smallest atom
3.0 H
4.5 Li
5.0 Be, B, Si
5.5 C, P
6.0 N, S
6.5 O, Cl, Na, K, Rb, Cs, Mg, Ca, Sr, Ba, Al
7.0 F
7.5 Sc-Cr, Ga-Br, Y-Mo
8.0 Mn-Zn, Ru-Cd, In-I, La, Ce, Hf-Re
8.5 Os-At, Pr-Lu, Ac-Lr
Note: these values may be different for your specific case. Change them by +/-
10 % to get more accurate / faster calculations.
As an example: Suppose you want to run MgO and Mg(OH)2 in a "constistent way"
(comparing total energies for formation energies, reaction enthalpies, ...).
Because of the small OH-distance, you may have to choose the following spheres:
Mg=1.6, O=1.2 and H=0.5. Of course you should use identical Mg+O spheres for
MgO and Mg(OH)2 for consistency, although you can crosscheck with bigger
spheres (scaled) for MgO.
Now lets choose RKmax= 3.0 for Mg(OH)2 (since H is the smallest sphere, and
considering the Table above). This choice "implies" a "RKmax(O)"=3.0*1.2/0.5 = 7.2.
Therefore for the MgO calculations (where O is the smallest sphere) you should
run the calculations with RKmax=7.2 in case.in1.
NOTE: In addition GMAX (case.in2) should be adapted for MgO to the value used
in Mg(OH)2.
Peter Blaha,