Where can I obtain reliable pseudopotentials?

Keith Refson has packaged up a set of pseudopotentials for the most common elements, available here.



The best, most easily available generator code suitable for producing recpot pseudopotentials is probably the OPIUM code, available here:


Other versions of the libraries of pseudopotentials for most common elements from the Rappe & Bennet group at U Penn are available here:



Older versions of CASTEP code contained a full library of suitable .recpot potentials, but this Library is owned by BIOVIA and we cannot distribute it with the Academic version. Note also that the older CASTEP recpots are very old (20+ years), and were designed with softness in mind rather than accuracy, so may not always be the best choice in ONETEP where softness isn’t so important. The 20-year old “*00.recpot” potentials are strongly deprecated and discouraged for use in both ONETEP and CASTEP (and furthermore are LDA only).

What about Projector Augmented Wave Datasets?

The PAW dataset library we would recommend most strongly is the JTH library, produced by the developers of ABINIT


The direct links from the above page are only available as .xml files, which ONETEP cannot read, but library has been converted to a format suitable for ONETEP, available here for PBE and LDA:

JTH v1.0 PAW datasets generated with PBE using AtomPAW (with libxc) in .abinit format

JTH v1.0 PAW datasets generated with LDA using AtomPAW (with libxc) in .abinit format

If you use these, please ensure you cite the original authors: Jollet F., Torrent M., Holzwarth N., Computer Physics Communications 185, 1246 (2014).

A library of pseudopotentials has recently been released by Kevin Garrity, Joseph Bennett, Karin Rabe, and David Vanderbilt which are in a suitable format for use with ONETEP and (from a limited amount of testing) appear to work well:


There is also a library by the developers of ATOMPAW


which are also available in appropriate format. Contact the ONETEP mailing list if you are unsure what to use.

What does ONETEP require to run in parallel?

ONETEP supports parallelism through both MPI (MPI-2 is currently not required but may be required in the future) and OpenMP. Neither are strictly required, but there is not much that can usefully be done with ONETEP on a single core. Hybrid MPI+OpenMP parallelism is supported, and does not, in the current version, require a multi-threaded implementation of the MPI library.

Different architectures are best utilised by ONETEP by different combinations of OpenMP threading and MPI: A document will be available soon detailing best practice in various common systems.

There are some notes on how to set up and run ONETEP with MPI and/or OpenMP.

Do you have any plans to implement the code on GPUs?

We are currently working on a GPU implementation of the code.

Does ONETEP run on windows?

For real production runs, that actually harness the power of linear-scaling approaches, the code should always be running on large clusters with fast interconnect. In practice, all such clusters use Linux. However, if you are just interested in testing an input file or other small benchmarks, the code can be made to compile on almost any architecture that presents a standard unix environment. This now includes Windows 10 or later, since the release of the Windows Subsystem for Linux in August 2016. To get ONETEP up-and-running requires the following steps:

1) Follow the instructions to install the Windows Subsystem for Linux (WSL). Note, you must be running the Anniversary Update or later of Windows 10. You can also refer to some documentation about using the WSL.

2) Update the Linux installation, then install the necessary compilers, libraries and tools:

sudo apt-get update && sudo apt-get dist-upgrade
sudo apt-get install make subversion gfortran
sudo apt-get install libopenmpi-dev libblas-dev liblapack-dev fftw3-dev openmpi-bin

3) Unpack the ONETEP tarball in a subdirectory within your Linux home directory, e.g.

tar xvf onetep_AXXXX.tar.gz -C ONETEP_WSL

Alternatively, check out a copy via svn if you have access.

4) Create a simple config file in config/conf.windows containing the following:

F90 = mpif90 -fopenmp
DEBUGFLAGS = -g -fcheck=all -Wall -pedantic
LIBS = -lblas -llapack -lfftw3_omp -lfftw3
COMPILER = GNU-gfortran-on-LINUX

5) Compile ONETEP

make -j onetep ARCH=windows

The -j flag allows make to run with multiple threads, speeding up compilation.

6) Enjoy!

For academic distributions, you may want to run the ONETEP test suite. You can do this by entering the test/ directory and executing

make ARCH=windows

If everything has worked, ONETEP should now run a number of small self-tests.