Most of the modern condensed matter computer codes implement periodic boundary conditions (PBC). These are used not only in calculating the crystal bulk, but also for calculating single molecules, surfaces, molecules adsorbed on surfaces, and so on. Care is needed when working in PBC, especially if complex structures are to be modelled, such e.g. as steps, kinks, dislocations. On the other hand, a calculation of the electronic DOS or previewing electronic densities require specific tools that understand PBC and the way the DFT codes output their data.
Many workers in the field have their own little routines that do the job. I also started from those. However, I quickly realised that I cannot remember what was in each of the routines let along their names, input file formats, etc. That is why it became apparent that there is a need for a single user-friendly code that would do everything you might want in a way that would not require input files and remembering how to run it, would understand the input and output files of the DFT codes and would have a lot of useful features.
Initially, I combined all my little codes into a package that included
-point and unit cell generator and a DOS calculator.
At the time, only the CASTEP code was supported. As
the new features being developed and new problems arose, a lot of
useful functrionality have been added. Most importantly, the interface
in the package codes has been completely rewritten to allow for different
formats. This way support for VASP and SIESTA
has been allowed and was eventually added. I can now say that the
real purpose of the package is to accompany any grid based plane wave
or local basis set DFT code that utilise periodic boundary conditions,
the codes like thos ementioned above.
The two most important codes in the package are tetr
and lev00. The first one is mainly to be used for
pre-processing of the input data, e.g. complex modifications
of your geometry input files, including the -points,
i.e. before a DFT run. The second code is used for the post-processing,
i.e. calculating electronic DOS and charge density maps after
the DFT run. As one particular application has been recently added,
namely the phonon calculation engine, the tetr has
gone long way beyond its initial simple pre-processing purpose and
now does both things: it creates the necessary input files for VASP
and SIESTA, and then, after the calculation is performed
with those codes, the tetr is run again to calculate
the frequencies, eigenvectors and phonon DOS.
The most sophisticated support is provided for the old CASTEP/CETEP code. These are now redundant and their support was stopped a while ago. Presently, VASP and SIESTA are supported only. Still, at the end of this manual some information on CASTEP is also provided (may be not working though), mainly for historical purposes.