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:

  1. 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).
  2. the available computer power (both cpu-time AND memory).
  3. The specific atom with the smallest RMT.
  4. 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,