CASTEP's .check file

What is in Castep's .check file? To a first approximation, it is a binary-format file containing everything that the Human-readable .castep file contains, as well as the charge density, spin density and wavefunctions. It thus contains almost a complete description of a calculation. Almost, because it lacks the pseudopotentials. All of its numeric data are stored in double-precision, so it may contain more significant figures than a .castep file.

The file starts with the basic parameters of the calculation: unit cell, atoms, k-points, symmetry operations, whether the calculation is spin-polarised, the number of bands to calculate, the cut-off energy, etc.

It then stores the wavefunctions. This is generally by far the biggest part, for there is one wavefunction per band, per spin, per k-point. These are stored as plane wave co-efficients, so need to be FFTed to be visualised in real space.

There follow band eigenvalues and occupancies.

Then the charge density is stored, on a real space grid. The units are electrons per unit cell, which c2x rescales to electrons per cubic Angstrom.

If the calculation uses linear spins, the spin density is stored, interleaved with the charge density.

Finally, the calculated forces on the atoms are stored.

The precise description of the data present depends on both the calculation being performed, and the version of Castep used.

If restarting calculations, or comparing different calculations, one is strongly advised to use the same pseudopotentials for all. Castep's "on the fly" pseudopotential generator is very good, but it should not be assumed that it will always produce absolutely identical pseudopotentials for the same input data, or that different versions of Castep will use the same parameters to the OTF generator for the same atom.


A close relative of the .check file is the .castep_bin file. This is very similar, save that it lacks the wavefunctions, and thus is a lot smaller.

By default Castep currently writes both a .check and a .castep_bin file. There is no need for the .castep_bin file, which contains no information not in the .check file. To write just the .castep_bin file, one can set write_checkpoint to minimal in the .param file. If set to none neither of these files will be written.