You will need to download and compile the code before you can use it; we do not supply binaries.


CONQUEST is accessed from the GitHub repository; it can be cloned:

git clone destination-directory

where destination-directory should be set by the user. Alternatively, it can be downloaded from GitHub as a zip file and unpacked:


Once you have the distribution, you will need to compile the main Conquest code (found in the src/ directory), along with the ion file generation code (found in the tools/ directory). Conquest requires a working MPI installation including a Fortran90 compiler (often mpif90 but this can vary), along with a few standard libraries:

  • BLAS and LAPACK (normally provided by the system vendor)

  • FFTW 3.x (more detail can be found at

  • ScaLAPACK (often provided as part of an HPC system; the source code can be obtained from the netlib repository if you need to compile it)

Additionally, Conquest can use LibXC if it is available (v2.x or later).

The library locations are set in the system.make file in the src/ directory, along with other parameters needed for compilation.

  • FC (typically FC=mpif90 will be all that is required)

  • COMPFLAGS (set these to specify compiler options such as optimisation)

  • BLAS (specify the BLAS and LAPACK libraries)

  • SCALAPACK (specify the ScaLAPACK library)

  • FFT_LIB (must be left as FFTW)

  • XC_LIBRARY (choose XC_LIBRARY=CQ for the internal Conquest library, otherwise XC_LIBRARY=LibXC_v2or3 for LibXC v2.x or v3.x, or XC_LIBRARY=LibXC_v4 for LibXC v4.x)

  • Two further options need to be set for LibXC:

    • XC_LIB (specify the XC libraries)

    • XC_COMPFLAGS (specify the location of the LibXC include and module files, e.g. -I/usr/local/include)

Once these are set, you should make the executable using make.

The ion file generation code is compiled using the same options required for the main code.