chkprim and unit cell multiplicity

Some of the most commonly heard questions in the Abinit Community, along with answers. (Read only)
Posts: 655
Joined: Wed Aug 19, 2009 12:01 pm

chkprim and unit cell multiplicity

Post by mverstra » Sun May 16, 2010 1:48 am

In highly symmetric crystals you may end up with the following error message from abinit:

chkprimit : ERROR -
According to the symmetry finder, the unit cell is
NOT primitive. The multiplicity is 4 .
The use of non-primitive unit cells is allowed
only when the input variable chkprim is 0.
Action : either change your unit cell (rprim or angdeg),
or set chkprim to 0.

leave_new : decision taken to exit ...

By default abinit checks that the unit cell is primitive and contains the smallest possible number of atoms. For example, instead of the conventional cubic FCC unit cell with 4 atoms
1 0 0
0 1 0
0 0 1
natom 4
0 0 0
0 0.5 0.5
0.5 0 0.5
0.5 0.5 0

you should be using the following unit cell vectors:
0.0 0.5 0.5
0.5 0.0 0.5
0.5 0.5 0.0
natom 1
0 0 0

to get a primitive unit cell with 3 axes separated by angles of 60 degrees.
Another possibility is:
angdeg 3*60.
natom 1
0 0 0

Using the primitive cell ensures the fastest calculation and the best use of symmetry operations, so in general you should listen to abinit and reduce your unit cell.

If you have a good reason to do so, you can override abinit and force it to use a non-primitive unit cell, by setting chkprim 1 in the input file. This will, however, disable symmetry operations in certain places.

One possible reason to do this is, for example, making a large supercell of a crystal (say 3x3x3 primitive unit cells) in which you want to introduce a defect. Doing the pristine crystal calculation in the 3x3x3 supercell is possible, but not useful (you will just get 27 times the energy). Once you have introduced the defect, of course, you will lower the supercell's symmetry and abinit will no longer complain that the cell is not primitive. chkprim 1 is no longer to be used for the defected cell, in which you want all possible symmetries to be exploited once again.
Matthieu Verstraete
University of Liege, Belgium